c1850662655324c82b0364abb49a9972e3b7aacd
[mono.git] / mono / metadata / ChangeLog
1
2 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
3
4         * image.c: fix locking in mono_image_load_file_for_image ().
5
6 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
7
8         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
9         used only as a cache: added an icall to fill it.
10
11 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
12
13         * reflection.h: exposed mono_reflection_free_type_info
14         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
15         since mono_reflection_bind_generic_parameters makes a copy of it.
16         * reflection.c (free_type_info): subinfos should be freed.
17         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
18         made non static.
19         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
20         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
21         this fixes #82695 and #81726.
22    
23
24 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
25
26         * process.h, process.c:  added support for user profile/info in
27           ProcessStartInfo. For now only Windows works.
28
29 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
30
31         * metadata.c: consider the generic arguments when comparing
32         signatures (bug #82614).
33
34 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
35
36         * cil-coff.h, image.c: updated assembly loader to cope with the
37         PE32+ 64 bit file format.
38
39 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
40
41         * assembly.c, class.c, domain.c, loader.c: remove useless
42         inclusion of cil-coff.h.
43
44 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
45
46         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
47         if interface is marked with CoClassAttribute. 
48    
49         Code is contributed under MIT/X11 license.
50
51 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
52
53         * sgen-gc.c: ensure no object from the to space is copied again or finalized
54         if it's seen twice in major collections.
55
56 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
57
58         * sgen-gc.c: big objects are not copied to the gray area, but they
59         need to be considered for scanning, too, if they are brought alive
60         by an object ready for finalizations or a survived one.
61
62 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
63
64         * sgen-gc.c: properly account the number of disappearing links when
65         they are nullified.
66
67 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
68
69         * sgen-gc.c: share the code to scan the registered roots between the
70         different types of collections.
71
72 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
73
74         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
75
76 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
77
78         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
79         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
80
81 2007-08-28  Mark Probst  <mark.probst@gmail.com>
82
83         * security-manager.c (mono_security_manager_get_methods):
84         LinkDemandSecurityException now has 2 arguments instead of 3.
85
86 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
87
88         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
89         platforms which need it.
90
91 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
92
93         * sgen-gc.c: unregister thread data structures with a pthread_key_t
94         dtor.
95
96 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
97
98         * threads.c: free the thread static data on thread exit.
99
100 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
101
102         * class.c: walk the hierarchy to find the generic definition for
103         a class (fixes runtime part of bug #82498).
104
105 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
106
107         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
108         ...
109
110         * image.c (mono_image_close): Here. Hopefully fixes #82510.
111
112 2007-08-24  Mark Probst  <mark.probst@gmail.com>
113
114         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
115
116 2007-08-24  Robert Jordan  <robertj@gmx.net>
117
118         * appdomain.c: don't perform the ':'->';' substitution on Win32.
119
120 2007-08-24  Jb Evain  <jbevain@novell.com>
121
122         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
123         for byref types.
124
125 2007-08-24  Mark Probst  <mark.probst@gmail.com>
126
127         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
128         #82286.
129
130 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
131
132         * assembly.c: Fix a warning.
133         
134 2007-08-23  Marek Habersack  <mhabersack@novell.com>
135
136         * appdomain.c: parse the <runtime> section looking for the probing
137         element with the 'privatePath' attribute, which sets additional
138         directories in which the runtime should look for assemblies.
139
140 2007-08-23  Robert Jordan  <robertj@gmx.net>
141
142         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
143         Fixes #82499.
144
145 2007-08-23  Martin Baulig  <martin@ximian.com>
146
147         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
148         _mono_debug_init_corlib() and remove it from the header file.
149
150 2007-08-23  Martin Baulig  <martin@ximian.com>
151
152         * mono-debug-debugger.c
153         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
154         don't notify the debugger about it.
155
156         * mono-debug-debugger.h
157         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
158
159 2007-08-23  Robert Jordan  <robertj@gmx.net>
160
161         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
162         Code is contributed under MIT/X11 license.
163
164 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
165
166         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
167
168 2007-08-22  Martin Baulig  <martin@ximian.com>
169
170         * mono-debug.c: Store debugging info on a per-domain basis and
171         free it on domain unload.  Add support for unloading symbol files.
172
173         * mono-debug.h
174         (MonoDebugList): New typedef.
175         (MonoSymbolTable):
176         - add `data_tables and `type_table'.
177         - replace 'symbol_files' and `num_symbol_files' with a
178           `MonoDebugList *'.
179         (mono_debug_data_table): Removed.
180         (mono_debug_list_add): New public function.
181         (mono_debug_list_remove): New public function.
182         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
183         (mono_debug_init_2_memory): Renamed into
184         mono_debug_open_image_from_memory().
185         (mono_debug_close_image): New public function.
186         (mono_debug_domain_create): Likewise.
187         (mono_debug_domain_unload): Likewise.
188         (MONO_DEBUGGER_VERSION): Bump to 60.
189
190         * mono-debug-debugger.h
191         (MonoDebuggerEvent):
192         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
193         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
194         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
195         - rename `THREAD_CREATED' and `THREAD_EXITED' into
196           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
197         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
198           meaning.
199         (mono_debugger_add_symbol_file): Removed.
200         (mono_debugger_add_type): Removed.
201         (mono_debugger_lookup_type): Removed.
202         (mono_debugger_lookup_assembly): Removed.
203
204         * domain.c
205         (mono_domain_create): Call mono_debug_domain_create().
206         (mono_init_internal): Call mono_debug_init_corlib().
207
208         * assembly.c
209         (mono_assembly_close): Call mono_debug_close_image().
210
211 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
212
213         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
214         mmap call.
215
216 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
217
218         * sgen-gc.c: ensure section->pin_queue_end is initialized
219         correctly when non pinning objects in the section have been found.
220
221 2007-08-22  Marek Habersack  <mhabersack@novell.com>
222
223         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
224         containing a list of directories separated by ':'. MSDN docs say
225         the directories should be separated with ';'. Part of a bugfix for
226         bug #81446
227
228 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
229
230         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
231         it should MonoType and not MonoClass.
232
233 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
234
235         * culture-info-table.h : regenerated.
236
237 2007-08-20  William Holmes  <billholmes54@gmail.com>
238
239         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
240          to call ReplaceFile Kernel32 on windows or in io-layer.
241         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
242         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
243          as an internal call.
244
245         Code is contributed under MIT/X11 license.
246
247 2007-08-20  Jb Evain  <jbevain@novell.com>
248
249         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
250         and MONO_EXCEPTION_FIELD_ACCESS.
251
252         * debug-helpers.[c|h]: new mono_field_full_name function.
253
254 2007-08-20  Mark Probst  <mark.probst@gmail.com>
255
256         * class.c: Removed class_security_level() and moved it to
257         security-core-clr.c.
258
259         * security-core-clr.c, security-core-clr.h: class_security_level()
260         is now public and renamed to mono_security_core_clr_class_level().
261         It also looks for security attributes in the classes a class is
262         nested in.
263
264 2007-08-20  Mark Probst  <mark.probst@gmail.com>
265
266         * security-core-clr.c, security-core-clr.h: CoreCLR security
267         utility functions.
268
269         * Makefile.am: Added security-core-clr.[ch].
270
271         * security-manager.c, security-manager.h: Functions and enum for
272         setting and getting the security mode.
273
274         * class.c: CoreCLR security checks.
275
276 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
277
278         * icall-def.h, process.c, process.h: implemented icall to get
279         user/system processor times.
280
281 2007-08-17  Mark Probst  <mark.probst@gmail.com>
282
283         * domain.c, threads.c, class-internals.h, domain-internals.h: New
284         reader-lock-free jit_info_table.
285
286 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
287
288         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
289
290         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
291
292         * object-internals.h (MonoException): Add missing _data member.
293
294 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
295
296         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
297         checking that only methods with matching qname or fqname are picked
298         from implemented interfaces.
299
300 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
301
302         * verify.c (do_newarr):added, do type verification of
303         newarr ops, push the right value on the eval stack.
304         * verify.c (mono_method_verify): use do_newarr
305
306
307 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
308
309         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
310         factored the common code into get_boxable_mono_type, which
311         is now using mono_type_get_full, this fixed byref related tests.
312
313 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
314
315         * class.c: added mono_type_get_full, this function has the same
316         behavior of mono_class_get_full but the returned MonoType has
317         all metadata of the associated token in case of a typespec token.
318         * class.c: added mono_type_retrieve_from_typespec, used by 
319         mono_type_get_full to retrieve the token type.
320         * class.c (mono_class_create_from_typespec): changed to use
321         mono_type_retrieve_from_typespec.
322         * class.c (mono_ldtoken): changed to use mono_type_get_full
323         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
324         * class-internals.h: exported mono_type_get_full for internal use.
325
326 2007-08-16  Jb Evain  <jbevain@novell.com>
327
328         * domain.c (supported_runtimes): add entry for
329         the 'moonlight' runtime version.
330
331 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
332
333         * verify.c (mono_method_verify): small typo sliped in.  
334
335 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
336
337         * verify.c (do_unbox_value): added, do type verification of
338         unboxing ops
339         * verify.c (mono_method_verify): use do_unbox_value
340
341
342 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
343
344         * verify.c (dump_stack_value): fixed typo, was printing string
345         instead of object on stack.
346         * verify.c (do_box_value): moved the byref check up as it leads
347         to invalid code and should be done earlier.
348         * verify.c: improved error messages for and ldobj
349
350 2007-08-15  William Holmes  <billholmes54@gmail.com>
351
352         * marshal.c (emit_marshal_custom): Omit the call to 
353           marshal_native_to_managed when calling native to managed 
354           and the argument is specified as an out argument.
355
356         Code is contributed under MIT/X11 license.
357
358 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
359
360         * verify.c: fixed the type checks for generics, function pointers and vectors.
361         Added type verification for ldobj and ldtoken. The verifier
362         would segfault if header or signature of a method contained references
363         to non-existant types.
364
365 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
366
367         * marshal.c (cominterop_get_ccw): Patch from
368         Bill Holmes to no walk up interface hierarchy. 
369         All parent methods should be present in the interface for COM.
370    
371         Code is contributed under MIT/X11 license.
372
373 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
374
375         * marshal.c (emit_marshal_com_interface): Patch from
376         Bill Holmes to handle COM Interfaces as return values
377         for native->managed calls.
378    
379         Code is contributed under MIT/X11 license.
380
381 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
382
383         * marshal.c (cominterop_get_idispatch_for_object): Implement
384         for runtime callable wrappers.
385    
386         Code is contributed under MIT/X11 license.
387
388 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
389
390         * pedump.c (main): changed from mono_init to mono_init_from_assembly
391         so 2.0 types are accessible
392
393
394 2007-08-13  Miguel de Icaza  <miguel@novell.com>
395
396         * domain.c (mono_init_internal): Call mono_assembly_load_friends
397         once we load mscorlib.   Due to the order in which we initialize,
398         the mono_assembly_load_full routine that loads mscorlib did not
399         load friends.   We now load it once we load the
400         mono_defaults.internals_visible_class class. 
401
402         * assembly.c: Expose the mono_load_friend_assemblies method.
403
404 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
405
406         * verify.c: improved the handling of boxing, better
407         type checking for unary ops and conversion. Fix bug
408         regarding managed pointer compatibility checking
409
410 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
411
412         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
413
414         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
415
416 2007-08-09  Raja R Harinath  <rharinath@novell.com>
417
418         * reflection.c (dup_type): Remove.
419         * class.c (dup_type): Remove.
420         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
421         instead of the dodgy 'dup_type'.
422         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
423         handle the case where 'dup_type' needed the second argument.
424
425 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
426
427         * domain.c: Fix a warning.
428
429 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
430
431         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
432         checking that methods with the same fqname are not overridden
433         with a method from an ancestor.
434
435 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
436
437         * threads.c (free_thread_static_data_helper): Avoid a crash if
438         thread->static_data is not yet set.
439
440 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
441
442         * marshal.c: Use correct image when emitting
443         native wrapper for COM calls.
444    
445         Code is contributed under MIT/X11 license.
446
447 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
448
449         * icall-def.h, security.c, security.h :
450           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
451
452 2007-08-07  Martin Baulig  <martin@ximian.com>
453
454         * mono-debug-debugger.h
455         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
456
457         * domain.c (mono_domain_free): Call
458         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
459
460 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
461
462         * verify.c (check_underflow, check_overflow): error message now returns IL offset
463         * verify.c (in_same_block): code should test if either offset is inside the clauses
464         * verify.c (mono_method_verify): push the exception into the eval stack of exception
465         and filter blocks
466
467 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
468
469         * image.c (mono_image_close): Fix a leak.
470
471         * object.c (mono_runtime_invoke_array): Avoid using alloca.
472
473         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
474
475 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
476
477         * domain.c, threads.c, threads-types.h: fix memory retention issue
478         with thread static variables not being cleared on domain unload.
479         Reuse thread static slots after domain unload.
480
481 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
482
483         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
484         nullable type.
485
486         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
487         now done in mono_runtime_invoke_array.
488
489         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
490         receiver is a nullable type.
491
492         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
493         generic parameter.
494
495 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
496
497         * marshal.c: Implement COM Objects as return type for 
498         managed->unmanaged calls. Added Release calls for COM Object
499         out/return values in managed->unmanaged calls.
500
501         Code is contributed under MIT/X11 license.
502
503 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
504
505         * threads.h, threads-type.h: move the hazard pointer declarations
506         to the private header.
507
508 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
509
510         * file-io.c, appdomain.c: memory leak fixes.
511
512 2007-08-02  Dick Porter  <dick@ximian.com>
513
514         * socket-io.c
515         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
516         SO_REUSEADDR setting into io-layer/sockets.c.
517
518 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
519
520         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
521         from Object when called on a generic parameter. Fixes #82211.
522
523 2007-08-01  Dick Porter  <dick@ximian.com>
524
525         * file-io.c (convert_share): Test FileShare values bit-by-bit.
526         Fixes bug 79250 yet again.
527
528 2007-07-30  Martin Baulig  <martin@ximian.com>
529
530         Merged the `debugger-dublin' branch.
531
532         * mono-debug.h
533         (MonoDebugDataTable): New typedef.
534         (MonoDebugMethodAddressList): New typedef.
535         (MonoDebugWrapperData): Removed.
536         (MonoDebugSymbolTable): Removed `current_data_table',
537         `current_data_table_size', `current_data_table_offset'.
538         (MonoDebugDataItemType): Moved into mono-debug.c.
539         (MonoDebugMethodJitInfo): Remove `address'.
540         (mono_debug_data_table): New global variable.
541         (mono_debug_lookup_method_addresses): New public function.
542         (mono_debug_find_method): Take a `MonoMethod *', not a
543         `MonoDebugMethodInfo *'.
544
545         * mono-debug.c: Drop support for the old symbol tables.
546
547 2007-06-28  Martin Baulig  <martin@ximian.com>
548
549         * mono-debug.c (mono_debug_debugger_version): New public variable.
550
551 2007-07-31  William Holmes  <billholmes54@gmail.com>
552
553         * metadata.c Changed mono_type_create_from_typespec to not insert
554           the type into the hash map until after
555           do_mono_metadata_parse_type has completed.
556         Fixes Bug #82194
557         Code is contributed under MIT/X11 license.
558
559 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
560
561         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
562         generic parameter. Fixes #82211.
563
564 2007-07-27  Jb Evain  <jbevain@novell.com>
565
566         * pedump.c (dump_metadata, dump_metadata_header): dump
567         versions contained in the metadata header.
568
569 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
570
571         * threads.c: register small_id_table with the GC.
572
573 2007-07-27  Mark Probst  <mark.probst@gmail.com>
574
575         * threads.c, threads.h, class-internals.h, object-internals.h:
576         Hazard pointers, to be used by lock-free parallel algorithms.
577
578 2007-07-26  Dick Porter  <dick@ximian.com>
579
580         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
581         routine on non-windows platforms, as I've not managed to think of
582         a non-kludgy way of doing this.  Finishes off bug 78739.
583
584 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
585
586         * object.c: properly setup interface_bitmap in proxy vtables.
587
588 2007-07-25  Marek Habersack  <mhabersack@novell.com>
589
590         * appdomain.c (get_shadow_assembly_location): do not use TickCount
591         to create unique shadow copy target directories, use the domain's
592         serial number instead. Each domain gets a unique target directory
593         that way.
594
595         * domain.c (mono_domain_create): added code to increment domain
596         shadow copy serial number and cache the value in the current
597         domain structure.
598
599         * domain-internals.h (struct _MonoDomain): added a new field -
600         shadow_serial to hold the serial number used in generation of
601         shadow-copy directories. This is to make sure that the directory
602         name is unique for each and every domain created. We avoid a race
603         condition with overriding assemblies already in use by other app
604         domains.
605
606 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
607
608         * class.c (mono_bounded_array_class_get): fixed memory leak when 
609         binding generic parameters.
610
611 2007-07-24  Raja R Harinath  <rharinath@novell.com>
612
613         * metadata.c (do_mono_metadata_parse_generic_class): Use
614         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
615         error.
616
617 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
618
619         * loader.c, class-internals.h, reflection.c: removed the per-method
620         generics hashtable: we use the global one through the call of
621         mono_class_inflate_generic_method ().
622
623 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
624
625         * class.c, metadata.c, class-internals.h: introduce yet another
626         generics global cache for inflated methods (fixes 98% of the perf
627         issue in bug #81806).
628
629 2007-07-23  Raja R Harinath  <rharinath@novell.com>
630
631         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
632         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
633         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
634         return a MonoGenericInst containing (a copy) of those types.
635         (mono_metadata_inflate_generic_inst): Update to changes.
636         (mono_metadata_parse_generic_inst): Likewise.
637         (mono_get_shared_generic_inst): Likewise.
638         * reflection.c (mono_class_bind_generic_parameters): Likewise.
639         (mono_reflection_bind_generic_method_parameters): Likewise.
640         * metadata-internals.h: Likewise.
641         * icall.c (free_generic_context): Kill.
642         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
643
644         * reflection.c (reflection_methodbuilder_to_mono_method): Use
645         mono_metadata_type_dup.
646         * marshal.c (mono_mb_create_method): Likewise.
647
648         * metadata.c (mono_metadata_type_dup): Rename from
649         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
650         MonoImage.  Handle a few more cases, esp. when no mempool is given.
651         * marshal.c, metadata-internals.h: Update to changes.
652
653 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
654
655         * class.c: fixed a small leak for array classes and removed warning.
656
657 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
658
659         * loader.c (mono_method_get_param_token): Make this work on generic methods.
660         Return 0x8000000 for return parameters. Fixes #82161.
661
662 2007-07-21  Marek Habersack  <grendello@gmail.com>
663
664         * appdomain.c (get_shadow_assembly_location): append the current
665         ticks value to the path. Avoids overwriting the same assemblies by
666         several threads at the same time.
667
668 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
669         and Raja R Harinath  <rharinath@novell.com>
670
671         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
672         Simplify slightly.
673         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
674         property for testing if a method is a generic method definition.
675
676 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
677
678         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
679
680 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
681
682         * verify.c: used function from private branch, reverted to the one in class.h 
683
684 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
685
686         * verify.c: a typo slipped in and the code wont compile
687
688 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
689
690         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
691         disabled box instruction as it is doing the wrong thing
692         improved stack dump messages, now it is easier to debug type related issues
693
694
695 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
696
697         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
698
699 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
700
701         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
702         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
703         grouped with class and valuetype. This change will simply 
704         the code as it should be handled just like unmanaged pointers.
705
706 2007-07-19  Mark Probst  <mark.probst@gmail.com>
707
708         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
709
710 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
711
712         * verify.c: several stack merge issues fixed, reference comparisons now
713         check the type size. strict type check now works correctly.
714         added more uses of IS_MANAGED_POINTER macro.
715         fixed issues pointed by running the test suite against .net.
716         
717
718 2007-07-19  Mark Probst  <mark.probst@gmail.com>
719
720         * class.c, loader.c, class-internals.h: Removed the
721         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
722         defines.
723
724         * icall.c: Better error checking in some internal reflection
725         methods.
726
727 2007-07-18  William Holmes  <billholmes54@gmail.com>
728
729         * filewatcher.c : removed unused variable 'filename' in 
730           ves_icall_System_IO_FSW_SupportsFSW
731
732 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
733
734         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
735         obsolete, removed.
736
737 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
738
739         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
740         
741         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
742
743 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
744
745         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
746         Implement generics support.
747         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
748
749         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
750         type_args and method_args arguments.
751         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
752         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
753         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
754
755 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
756
757         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
758           It adds a rootimage parameter to mono_reflection_get_type_internal,
759           adds new function mono_reflection_get_type_with_rootimage and use
760           the rootimage to resolve the types instead of the current image
761
762 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
763
764         * culture-info-table.h: Forgot to update after r78304.
765
766 2007-07-13  Raja R Harinath  <rharinath@novell.com>
767
768         * class.c (mono_class_is_open_constructed_type)
769         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
770
771 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
772
773         * class.c (mono_bounded_array_class_get):  method fails if used with
774         an incomplete TypeBuilder enum (no basetype field), fixed it by 
775         avoiding calculating the size for such array as it cannot be instantiated.
776         Fix bug #82015
777
778 2007-07-12  Raja R Harinath  <rharinath@novell.com>
779
780         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
781         field.
782         * metadata.c, reflection.c: Update to changes.
783
784 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
785
786         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
787         mono_class_is_valid_enum, they are used to valide a enum when loading.
788         * reflection.c: used new functions to throw TypeLoadException when and
789         invalid enum is build with TypeBuilder. Fixes #82018
790   
791 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
792
793         * object.c: forgot commit of mono_class_setup_methods () to access
794         iface->methods.
795         * object-internals.h: added a few more handy fields to
796         MonoIMTCheckItem.
797
798 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
799
800         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
801         iface->methods.
802
803 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
804
805         * class-internals.h, object-internals.h, object.c: IMT-based
806         interface invocation core from Massimiliano Mantione
807         (massi@ximian.com) with a reworked arch-specific interface,
808         bsearch implementation and a few bugfixes and memory savings by me.
809
810 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
811
812         * class.c (mono_class_create_from_typedef): mono would segfault if 
813         an enum did not have a __value field. It now throws a TypeLoadException
814         for such cases. Fix bug #82022
815
816 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
817
818         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
819
820 2007-07-09  Mark Probst  <mark.probst@gmail.com>
821
822         * class.c (mono_class_init): If a class is already inited but has
823         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
824
825 2007-07-09  Mark Probst  <mark.probst@gmail.com>
826
827         * class.c: Properly handle the case of an unimplemented interface
828         method.  Fixes: 81673.
829
830 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
831
832         * class-internals.h, object.c: cleanup patch from massi: use
833         MonoVTable->interface_bitmap since the vtable interfaces offset array
834         is going away.
835
836 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
837
838         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
839         GetMDStreamVersion icall instead.
840
841 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
842
843         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
844         not use mono_dl_build_path() with a full library name: makes
845         fallbacks to libgaim and libfam work.
846
847 2007-07-06  William Holmes  <billholmes54@gmail.com>
848
849         * assembly.c: Added a continue statement in probe_for_partial_name when
850          parse_assembly_directory_name fails.  Fixes : 82002
851
852 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
853
854         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
855         and added a verification  for TYPEDBYREF.
856         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
857         make native int interchangeable with int32 and some small cleanup and formating.
858         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
859         handle byref of byref.
860         * verify.c (push_local): handle byref of byref.
861         * verify.c (do_binop): invalid mix of values is unverifiable
862         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
863         added visibility checks
864         * verify.c (field related method): added visibility checks
865         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
866
867 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
868
869         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
870         string.
871
872 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
873
874         * profiler.c (mono_profiler_load): Fix an off-by-one error.
875
876         * marshal.c (emit_marshal_string): When returning a string from managed code,
877         allways make a copy even for unicode strings. Fixes #81990.
878
879 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
880
881         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
882         of byref generic inst types (bug #81997).
883
884 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
885
886         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
887         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
888
889 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
890
891         * marshal.c (emit_marshal_string): Add support for unicode strings in
892         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
893
894 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
895
896         * verify.c: field load/store are now verified, missing only access checks now
897
898 2007-06-28  Martin Baulig  <martin@ximian.com>
899
900         * mono-debug.c (mono_debug_debugger_version): New public variable.
901
902 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
903
904         * locales.c: When constructing DateTimeFormat or NumberFormat for
905         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
906         MonoCultureInfo contructed from the current locale is always
907         read-only and has UseUserOverride set to true. All MonoCultureInfo
908         instances returned for GetCultures have both IsReadOnly and
909         UseUserOverride set to true. Fixes part of bug #81930.
910
911 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
912
913        * icall-def.h: Update System.__ComObject icalls
914        * marshal.c: Avoid managed transition (and object creation)
915        when looking up COM interface in RCW.
916        * marshal.h: Ditto.
917        
918        Code is contributed under MIT/X11 license.
919
920 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
921
922         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
923         to avoid crashes during assembly unloading.
924
925 2007-06-22  Raja R Harinath  <rharinath@novell.com>
926
927         Fix MethodInfo.IsGenericMethodDefinition
928         * reflection.c (mono_reflection_bind_generic_method_parameters):
929         Rearrange code to ensure we always uses a generic method definition.
930         * class.c (mono_class_inflate_generic_method_full): Set
931         'generic_container' field only for generic method definitions.
932         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
933         Use presense of 'generic_container' field as indication of being a
934         generic method definition.
935
936 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
937
938         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
939
940         * object-internals.h: Reflect changes in the layout of the managed Delegate
941         class.
942         
943         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
944         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
945         runtime memory used by the dynamic method. Fixes #77146.
946
947 2007-06-21  Dick Porter  <dick@ximian.com>
948
949         * file-io.h: 
950         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
951         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
952         81767.
953
954 2007-06-21  Raja R Harinath  <rharinath@novell.com>
955
956         * reflection.c (method_encode_methodspec): Add a tripwire.
957         * class.c (inflate_generic_type): The fully open generic type is
958         not the same as the generic type definition.
959
960 2007-06-21  Martin Baulig  <martin@ximian.com>
961
962         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
963
964         * mono-debug-debugger.h
965         (MonoDebuggerBreakpointInfo): Removed.
966         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
967         (mono_debugger_remove_breakpoint): Likewise.
968         (mono_debugger_breakpoint_callback): Likewise.
969         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
970
971 2007-06-21  Raja R Harinath  <rharinath@novell.com>
972
973         * metadata.c (mono_metadata_lookup_generic_class): The fully open
974         generic type is not the same as the generic type definition.
975         * class.c (mono_generic_class_get_class): Likewise.
976
977 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
978
979         * icall.c: The second argument to 
980         System.Reflection.MethodBase.GetMethodFromHandleInternalType
981         is a MonoType not a MonoClass.
982
983 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
984
985         * verify.c: support for function pointers in the verifier
986
987 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
988
989         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
990
991 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
992
993         * assembly.c: removed Mono.Data.SqliteClient from the list of
994         forward-compatible assemblies as it breaks the ABI (bug #81899).
995
996 2007-06-19  Raja R Harinath  <rharinath@novell.com>
997
998         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
999         lookup/update with the loader lock.
1000         * reflection.c (mono_class_bind_generic_parameters): No need to
1001         protect mono_metadata_lookup_* with the loader lock.
1002         * class.c (inflate_generic_type): Likewise.
1003         
1004         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
1005         on a generic instantiated type.
1006
1007 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
1008
1009         *verify.c: produce meanfull error messages on verification error
1010         *verify.c: fixed some cases of verification errors reported as validation errors
1011         *pedump.c: fixed the error name array, now it shows validation errors properly
1012         *verify.h: fixed the contant that should be used for verification errors
1013
1014 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
1015
1016         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
1017         for bug #77596, 81858 and 80743 (generics data structures on domain
1018         unload).
1019
1020 2007-06-15  Raja R Harinath  <rharinath@novell.com>
1021
1022         Avoid allocating 'MonoGenericContext' on the heap.
1023         * class-internals (_MonoMethodInflated::context): Make field
1024         inline, not a pointer.
1025         * loader.c (method_from_methodspec): Allocate 'new_context' on the
1026         stack.  Use the context embedded within the inflated method as the
1027         hash key, rather than 'new_context'.
1028         * class.c (inflate_generic_context): Simplify.  Return a struct
1029         rather than allocating on the heap.
1030         (mono_class_inflate_generic_method_full): Update to changes.  Now,
1031         doesn't salt away a copy of the context -- simplifying the
1032         lifetime rules of a 'MonoGenericContext *'.
1033         (mono_method_get_context): Return pointer to embedded context.
1034         (setup_generic_array_ifaces): Allocate temporary context on stack.
1035         * reflection.c (inflate_mono_method): Likewise.
1036         (mono_reflection_bind_generic_method_parameters): Likewise.
1037         Use the context embedded within the inflated method as the hash key.
1038
1039         Avoid a source of allocation of 'MonoGenericContext'.
1040         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
1041         and 'cached_context' fields into embedded 'MonoGenericContext' field.
1042         * class.c: Update to changes.
1043         (mono_generic_class_get_context): Simplify drastically.  Now just
1044         returns a pointer to the field.
1045         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
1046         argument as a const pointer.
1047         (mono_metadata_generic_context_equal): Likewise.
1048         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
1049         Update to changes.
1050
1051 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
1052
1053         * verify.c improved the handling of brtrue/brfalse, factored out common code
1054
1055 2007-06-14  Raja R Harinath  <rharinath@novell.com>
1056
1057         Kill MonoGenericMethod.
1058         * class-internals.h (MonoGenericContext::method_inst): Rename from
1059         'gmethod' and convert to a MonoGenericInst.
1060         (MonoGenericMethod): Remove.
1061         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
1062         * loader.c (method_from_methodspec): Update to changes.  Use a
1063         MonoGenericContext as the key to the hashtable.
1064         * metadata.c (mono_metadata_generic_context_equal): Rename from 
1065         'mono_metadata_generic_method_equal' and take MonoGenericContext.
1066         (mono_metadata_generic_context_hash): Likewise from
1067         'mono_metadata_generic_method_hash'.  Change hash function.
1068         (mono_metadata_load_generic_params): Update to changes.
1069         (mono_get_shared_generic_method): Remove.
1070         * metadata-internals.h (mono_get_shared_generic_method): Remove.
1071         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
1072         (inflate_generic_context): Likewise.
1073         (mono_class_inflate_generic_method_full): Likewise.
1074         (setup_generic_array_ifaces): Likewise.
1075         (mono_class_create_from_typespec): Likewise.
1076         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
1077         (method_encode_methodspec): Update callsite.
1078         (reflection_methodbuilder_to_mono_method): Update to changes.
1079         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
1080         MonoGenericContext as the key to the hashtable.
1081         (inflate_mono_method): Update to changes.
1082
1083         * class-internals.h (MonoGenericMethod::container): Remove.
1084         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1085
1086 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
1087
1088         * profiler-private.h, profiler.c, profiler.h: added API to profile
1089         exception events.
1090
1091 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1092
1093         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
1094
1095 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1096
1097         * verify.c: method invocation is now validated, now we verify parameter types on stack.
1098         Fixed overflow and underflow not aborting the verification process.
1099
1100 2007-06-13  Mark Probst  <mark.probst@gmail.com>
1101
1102         * class-internals.h (MonoStats): Added stats entries for dynamic
1103         code allocations.
1104
1105 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
1106
1107         * loader.c (mono_free_method): Free header->locals and header->clauses.
1108
1109         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
1110         dynamic case.
1111
1112         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
1113
1114         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
1115
1116 2007-06-12  Raja R Harinath  <rharinath@novell.com>
1117
1118         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
1119         the tables.
1120
1121 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1122
1123         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
1124
1125 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1126
1127         MonoGenericMethod on a diet
1128         * class-internals.h (_MonoMethodInflated::reflection_info): Move
1129         here ...
1130         (_MonoGenericMethod::reflection_info): ... from here.
1131         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1132         Update to changes.
1133         * reflection.c (inflate_mono_method): Likewise.
1134         (mono_reflection_bind_generic_method_parameters): Likewise.
1135
1136 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1137
1138         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
1139         *verify.c: factored long ldarg forms to share code with short forms
1140
1141 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1142
1143         *verify.c: fixed code formating factored some duplicate code
1144         into a new function
1145
1146         *verify.h: fixed binary incompatibility introduced earlier
1147
1148         *pedump.c: fixed formating
1149
1150 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1151
1152         Fix assertion when disassembling Mono.C5.dll
1153         * loader.c (method_from_methodspec): Avoid inflating a method
1154         twice with the same context.  If the methodref is inflated, use
1155         the declaring method instead.
1156
1157         * class.c (mono_class_from_generic_parameter): Fix case similar to
1158         bug #81830 handled below, but for method containers.
1159
1160 2007-06-10  Raja R Harinath  <harinath@gmail.com>
1161
1162         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
1163         get_shared_generic_class.  Directly inflate the instance.
1164         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
1165         (inflate_generic_class): Delete.
1166         (get_shared_generic_class): Delete.  Move setting of
1167         'cached_class' and 'cached_context' ...
1168         * metadata.c (mono_metadata_lookup_generic_class): ... here.
1169
1170         * metadata.c (mono_metadata_lookup_generic_class): Change
1171         signature to take the components of a MonoGenericClass rather than
1172         an allocated MonoGenericClass.  Change semantics to be intern-like.
1173         * reflection.c (mono_class_bind_generic_parameters): Update to
1174         changes.  Make locking region tighter.
1175         * class.c (inflate_generic_class): Update to changes.
1176         (get_shared_generic_class): Likewise.
1177         * metadata-internals.h: Likewise.
1178
1179         * reflection.c (mono_class_bind_generic_parameters): Take and
1180         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
1181         (mono_reflection_bind_generic_parameters): Use
1182         'mono_class_bind_generic_parameters' rather than duplicate the code.
1183         * class.c (mono_bounded_array_class_get): Update to changes.
1184         * object-internals.h: Likewise.
1185
1186         * reflection.c (mono_class_bind_generic_parameters): Only support
1187         parameterizing generic type definitions.  Remove support for other
1188         open types.
1189
1190 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
1191
1192         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
1193
1194         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
1195         in the dynamic case.
1196
1197 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
1198
1199         * threads.c: When cleaning up thread, reset the Background bit.
1200         Fixes bug #81720.
1201
1202 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
1203
1204        * metadata.c: Move variable declarations to top of scope.
1205        * verify.c: Move variable declarations to top of scope.
1206
1207        Code is contributed under MIT/X11 license.
1208
1209 2007-06-08  Raja R Harinath  <rharinath@novell.com>
1210
1211         * reflection.c (mono_class_bind_generic_parameters): Replace
1212         open-coded loop with mono_metadata_inflate_generic_inst.
1213
1214         * class.c (get_shared_generic_class): Don't call
1215         mono_get_shared_generic_inst.  Use the container's own
1216         'class_inst'.
1217
1218         * metadata.c (mono_metadata_load_generic_params): Move
1219         initialization of 'context' field here from ...
1220         * class.c (mono_class_create_from_typedef): ... here, and ...
1221         * loader.c (mono_get_method_from_token): ... here.
1222
1223         * class.c (get_shared_generic_class): Rename from
1224         mono_get_shared_generic_class and make static.
1225         (mono_get_shared_generic_inst): Move to metadata.c.
1226         * loader.c (mono_get_shared_generic_method): Likewise.
1227         * class-internals.h, metadata-internals.h: Update to changes.
1228
1229         Fix #81830
1230         * class.c (mono_class_from_generic_parameter): Don't assume a
1231         generic container owner exists.  Generic containers from monodis
1232         don't have any.
1233
1234 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
1235
1236         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
1237         * verify.h: new typedefs to returns the non-verifiable status
1238         * verify.c: initial implementation of generics, stack merging and object compatibility check
1239
1240 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1241
1242         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1243         a MonoInternalHashTable again (fixed bug in internal hash table
1244         code).
1245
1246 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1247
1248         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1249         MonoInternalHashTable again (fixed bug in internal hash table
1250         code).
1251
1252 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1253
1254         * class.c, image.c, class-internals.h, domain.c,
1255         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
1256         changes.  Have to figure out what makes them break the SWF
1257         regression.
1258
1259 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1260
1261         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1262         a MonoInternalHashTable now.
1263
1264 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1265
1266         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1267         MonoInternalHashTable now.
1268
1269 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
1270
1271         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
1272         invoke_impl code.
1273
1274         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
1275
1276         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
1277         dependent trampoline.
1278
1279         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1280
1281         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
1282
1283 2007-05-29  Robert Jordan  <robertj@gmx.net>
1284
1285         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
1286
1287 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
1288
1289         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
1290
1291 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
1292
1293        * marshal.c: Fix interface lookup loops for
1294        cominterop_get_com_slot_for_method and 
1295        cominterop_get_method_interface. Only need to lookup
1296        if type is a class, else use interface type method is on.
1297
1298        Code is contributed under MIT/X11 license.
1299
1300 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1301
1302         * reflection.c: HasSecurity can be present even if no specially 
1303         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
1304         SecurityAttribute). Fix CAS regression tests on buildbot.
1305
1306 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
1307
1308        * appdomain.c: Add configure checks for header files.
1309        * image.c: Add configure checks for header files.
1310        * file-io.c: Add configure checks for header files.
1311        * debug-mono-symfile.c: Add configure checks for header files.
1312        * threadpool.c: Add configure checks for header files.
1313        * console-io.c: Add configure checks for header files.
1314        * profiler.c: Add configure checks for header files.
1315        * rawbuffer.c: Add configure checks for header files.
1316        * icall.c: Add configure checks for header files.
1317        * rand.c: Add configure checks for header files.
1318        * socket-io.c: Add configure checks for header files.
1319
1320        Code is contributed under MIT/X11 license.
1321
1322 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
1323
1324         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1325         assertion as it breaks the build.
1326         
1327         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1328
1329         * reflection.c (lookup_custom_attr): Make a copy here too.
1330
1331         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1332         dynamic images.
1333
1334         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1335         images.
1336
1337         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1338         info.
1339
1340 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1341
1342         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1343         (load_cattr_value): Ditto.
1344
1345 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1346
1347         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1348
1349 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1350
1351         * threads.c: In "start_wrapper", set apartment_state to MTA if
1352         apartment_state is Unknown and we're running on 2.0 profile or
1353         higher.
1354         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1355         to main method, then set apartment_state to Unknown on 1.0 profile,
1356         and MTA on 2.0 profile.
1357
1358 2007-05-16  Jb Evain  <jb@nurv.fr>
1359
1360         * class-internals.h (MonoDefaults): Add an attribute_class and
1361           customattribute_data_class.
1362         * domain.c (mono_init_internal): Populate them.
1363         * reflection.c: Use them to remove duplicates. Make a vew
1364         MonoClass variables `static'.
1365
1366 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1367
1368         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1369         step in implementing IMT, so that all isinst checks now can go
1370         through the bitmap.
1371         This was needed because vtables for TransparentProxy need to look
1372         like the vtable of the "target" class, so they need to point to
1373         its interface bitmap directly.
1374
1375         * object.c: inside "mono_class_create_runtime_vtable" and
1376         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1377
1378 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1379
1380         * object-internals.h
1381           culture-info.h : added territory field in MonoCulture and
1382           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1383         * locales.c : fill territory field above too.
1384         * culture-info-table.h : regenerated.
1385
1386 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1387
1388         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1389         Fixes #81599.
1390
1391 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1392
1393         * object.c: Always initialize apartment, even if 
1394         there is no custom attributes on entry point.
1395         
1396         Code is contributed under MIT/X11 license.
1397
1398 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1399
1400         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1401         * metadata.c: If no encoding is set, check for unicode
1402         on class.
1403         
1404         Code is contributed under MIT/X11 license.
1405
1406 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1407
1408         * threads.c: Handle if mono_thread_current returns NULL 
1409         
1410         Code is contributed under MIT/X11 license.
1411
1412 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1413
1414         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1415         in start_wrapper. Added mono_thread_init_apartment_state and
1416         mono_thread_cleanup_apartment_state.
1417         * object.c: Initialize thread apartment state on main thread
1418         by checking for STAThreadAttribute on entry point.
1419         * object-internals.h: Add apartment_state field to MonoThread.
1420         * threads-types.h: Add unmanaged definition of 
1421         System.Threading.ApartmentState, MonoThreadApartmentState.
1422         
1423         Code is contributed under MIT/X11 license.
1424         
1425 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1426
1427         * class.c: Fix windows build.
1428         * class-internals.h: Fix windows build.
1429         
1430         Code is contributed under MIT/X11 license.
1431
1432 2007-05-08  Robert Jordan  <robertj@gmx.net>
1433
1434         * process.c (CreateProcess_internal):
1435         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1436         .CreateNoWindow was specified. Fixes #81496.
1437
1438 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1439
1440         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1441         step in implementing IMT, replaced it with two compact arrays
1442         (interfaces_packed and interface_offsets_packed) and a bitmap that
1443         is used for isinst checks (interface_bitmap).
1444
1445         * class.c: (compare_interface_ids): compare function to pass to
1446         bsearch when looking for an interface with a given id.
1447         (mono_class_interface_offset): reimplemented using bsearch on
1448         interfaces_packed, getting the offset from interface_offsets_packed.
1449         (print_implemented_interfaces): utility debugging function.
1450         (setup_interface_offsets): reworked to initialize interfaces_packed,
1451         interface_offsets_packed and interface_bitmap.
1452
1453         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1454         with uses of interfaces_packed and interface_offsets_packed.
1455
1456 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1457
1458         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
1459         mono_class_interface_offset prototype to wrap all accesses to
1460         "MonoClass.interface_offsets".
1461
1462         * class.c: Implemented mono_class_interface_offset, and wrapped all
1463         accesses to "MonoClass.interface_offsets".
1464
1465         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
1466         "MonoClass.interface_offsets".
1467
1468 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1469
1470         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1471         GetMethodFromHandle overloads (bug #78637).
1472
1473 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1474
1475         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1476         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1477
1478 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1479
1480         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1481         #81498.
1482
1483         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1484         gracefully.
1485         (mono_custom_attrs_from_index): Ditto.
1486
1487         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1488         Fixes #81501.
1489
1490 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1491
1492         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1493         is now allocated from a mempool.
1494
1495 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1496
1497         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1498         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1499
1500 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1501
1502         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1503         mono_loader_clear_error () too late. Fixes #81463.
1504
1505 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1506
1507         * culture-info-table.h : regenerated.
1508
1509 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1510
1511         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1512         is missing.
1513
1514 2007-04-25  Dick Porter  <dick@ximian.com>
1515
1516         * Makefile.am: Put the mingw enforced-optimisation back into the
1517         PLATFORM_WIN32 section.
1518
1519 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1520
1521         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1522         patch.
1523
1524         * image.c (mono_image_load_module): New API function to load a module reference.
1525
1526         * image.c (load_modules): Load modules lazily. Fixes #80812.
1527
1528         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1529         
1530         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1531
1532         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1533         to mono_image_load_module_dynamic.
1534
1535 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1536
1537         * marshal.c: Fix calling convention for CCW on non-windows
1538         platforms. STDCALL on windows, CDECL everywhere else to work 
1539         with XPCOM and MainWin COM.
1540         
1541         Code is contributed under MIT/X11 license.
1542
1543 2007-04-23  Martin Baulig  <martin@ximian.com>
1544
1545         Fix #80969.
1546
1547         * loader.c
1548         (method_from_memberref): Added `gboolean *used_context' argument.
1549         (mono_get_method_from_token): Likewise.
1550         (mono_get_method_full): Don't insert the method in the cache when
1551         `used_context' is true.
1552
1553 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1554
1555         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1556
1557         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1558         create new MonoTypes for returned types.
1559         * class.c (mono_generic_class_get_class): Export mono-internal.
1560         * class-internals.h: Update to changes.
1561
1562 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1563
1564         * threadpool.c, threadpool.h, icall-def.h: patch from
1565         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
1566
1567 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
1568
1569         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
1570         
1571         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
1572
1573         * threads.c (mono_thread_get_stack_bounds): New helper function.
1574
1575         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
1576         Correctly compute stack bounds when attaching. Fixes #81394.
1577
1578 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
1579
1580         * reflection.c: fix handling of doubles in custom attributes
1581         for the arm-fpa format (bug #81368).
1582
1583 2007-04-18  Raja R Harinath  <rharinath@novell.com>
1584
1585         * reflection.c (assembly_add_win32_resources): Mildly relax an
1586         bounds check to let the end pointer point just past the end of the
1587         allocated buffer.  (may fix #81384)
1588
1589 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1590
1591         * culture-info-table.h : regenerated.
1592
1593 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
1594
1595         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
1596         the thread is aborted early.
1597
1598 2007-04-05  Dick Porter  <dick@ximian.com>
1599
1600         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
1601         FindFirstFile()/FindNextFile() to find entries.  This lets the
1602         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
1603         81038.
1604
1605         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
1606         the parameters of
1607         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
1608
1609 2007-04-04  Martin Baulig  <martin@ximian.com>
1610
1611         * debug-helpers.c
1612         (mono_method_desc_full_match): Add support for nested classes.
1613
1614 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
1615
1616         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
1617
1618 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
1619
1620         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
1621         waiting for too many threads.
1622
1623 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1624
1625         * environment.c: Fix return value check on uname so we can get the 
1626         executing version on Solaris operating systems.
1627
1628 2007-03-28  Jb Evain  <jbevain@gmail.com>
1629
1630         * class.c (mono_type_get_name_recurse): Complete the
1631         fix for the creation of assembly qualified names for
1632         pointer types. Fixes #81208.
1633
1634 2007-03-27  Dick Porter  <dick@ximian.com>
1635
1636         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
1637         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
1638         changed.
1639
1640         * threads.c
1641         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
1642         the value of ReleaseMutex().
1643
1644 2007-03-27  Dick Porter  <dick@ximian.com>
1645
1646         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
1647         in little-endian order, not network endian, so must be converted
1648         to host endian here.  Fixes bug 80593.
1649
1650 2007-03-22  Jb Evain  <jbevain@gmail.com>
1651
1652         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
1653         qualified names for pointer types. Fixes #81208.
1654
1655 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
1656
1657         * marshal.c: Add support for PreserveSigAttribute. 
1658         
1659         Code is contributed under MIT/X11 license.
1660
1661 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
1662
1663         * process.c: Fix endianness issues. Fixes #81126.
1664
1665         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
1666         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
1667
1668         * image.c (mono_image_lookup_resource): Make this work on big-endian
1669         machines.Change API contract so the caller needs to free the return value.
1670         
1671         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
1672         API change.
1673         
1674 2007-03-14  Martin Baulig  <martin@ximian.com>
1675
1676         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
1677         mono_type_get_desc() as well.
1678
1679 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
1680
1681         * icall.c:  Fix environ access in VS.  
1682         
1683 2007-03-13  Alp Toker  <alp@atoker.com>
1684
1685         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1686         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1687         #63841.
1688
1689 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
1690
1691         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
1692         circular references among dynamic methods. Fixes #81091.
1693
1694         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
1695
1696 2007-03-09  Martin Baulig  <martin@ximian.com>
1697
1698         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
1699
1700 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
1701
1702         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
1703         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
1704         
1705         Code is contributed under MIT/X11 license.
1706         
1707 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
1708
1709         * loader.c: Reapply patch for bug #79424.
1710
1711 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1712
1713         * metadata.c (mono_type_to_unmanaged): Only convert object to
1714         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
1715
1716 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
1717
1718         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
1719         (and incorrectly set) is_reference field from MonoGenericInst.
1720
1721 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1722
1723         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
1724         a little earlier.
1725
1726         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
1727
1728         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
1729
1730 2007-03-05  Miguel de Icaza  <miguel@novell.com>
1731
1732         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
1733         FileOptions.1 value to mean "temporary", map that to
1734         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
1735
1736         Fixes 80688
1737
1738 2007-03-03  Marek Habersack  <mhabersack@novell.com>
1739
1740         * appdomain.c: implement MS .Net style shadow copying. Copies of
1741         the assemblies are made in a subdirectory of the dynamic base
1742         directory, the assembly names are preserved.
1743         Copy .mdb and .config files along with the assemblies being shadowed.
1744
1745 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1746
1747         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
1748         (emit_marshal_handleref): Ditto.
1749
1750         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
1751         on Visual C++. Fixes #80671.
1752
1753 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
1754
1755         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
1756         for clone operations.
1757
1758 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1759
1760         * marshal.c: Fix warnings.
1761
1762 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
1763
1764         * loader.c: allow case-insensitive matching of the dll name
1765         in dllmap handling when prefixed with "i:".
1766
1767 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
1768
1769         * threads.c: Fix #ifdef for dummy_apc function for VS.
1770
1771 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
1772
1773         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
1774
1775 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
1776         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
1777         giving precedence to the methods with a fully qualified name
1778         (InterfaceName.MethodName) when building the interface sections
1779         of the vtable.
1780
1781 2007-02-16  Dick Porter  <dick@ximian.com>
1782
1783         * threadpool.c (append_job): Fix fast-path array handling, so it's
1784         less likely the array will grow exponentially when the load is
1785         heavy.
1786
1787 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1788
1789         * metadata-internals.h, loader.c: fix dllmap lookup order
1790         for non-function maps, too, and prepare for fallback code.
1791
1792 2007-02-12  Robert Jordan  <robertj@gmx.net>
1793
1794         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
1795         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
1796         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
1797         GlobalFree. Fixes a part of bug #77075.
1798
1799 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
1800
1801         * loader.c: implemented typedef parent in field memberref.
1802
1803 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
1804
1805         * marshal.c: Fix warnings and remember to call Release on
1806         IUnknown of RCW.
1807         
1808         Code is contributed under MIT/X11 license.
1809
1810 2007-02-10  Miguel de Icaza  <miguel@novell.com>
1811
1812         * class-internals.h: Add MonoHandleRef definition, and
1813         handleref_class to mono_defaults. 
1814
1815         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
1816         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
1817
1818         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
1819         (do nothing on this stage)
1820         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
1821         (emit_marshal_handleref): New method, used for argument handling
1822         of HandleRefs. 
1823
1824 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
1825
1826         * class.c (mono_class_setup_parent): Lazily init com types.
1827         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
1828         init com types.
1829         * object.c (mono_remote_class_vtable): Lazily init com types.
1830         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
1831         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
1832         * domain-internals.h: Expose mono_init_com_types.
1833         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
1834         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
1835         Add support for COM Callable Wrapper marshalling.
1836         * marshal.h: Add icall definitions.
1837         * gc.c: Handle freeing of CCWs in finalizer code.
1838         
1839         Code is contributed under MIT/X11 license.
1840
1841 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
1842
1843         * reflection.c: changed all the signature encoding code to use
1844         a variable-sized buffer.
1845
1846 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1847
1848         * marshal.c: locking fixes: never take the loader lock
1849         or other runtime locks when holding the marshal lock
1850         (fixes bug#80664).
1851
1852 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
1853
1854         * marshal.c: make the delegate function pointer mapping
1855         work for the moving GC.
1856
1857 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
1858
1859         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
1860         for bug #80618.
1861
1862 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1863
1864         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
1865         gmodule.
1866
1867 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
1868
1869         * threadpool.c: made the code moving-GC safe.
1870
1871 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1872
1873         * assembly.c, boehm-gc.c, class-internals.h, class.c,
1874         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
1875         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
1876         warning cleanup.
1877         * reflection.c: warning cleanup, some threading and moving GC fixes.
1878
1879 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
1880
1881         * class.c, loader.c: create the needed Set/Get/Address array methods
1882         as well as the .ctors in mono_class_init (), fixes bug #80567.
1883
1884 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
1885
1886         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
1887         we doesn't decrease its alignment. Should fix the sparc build.
1888
1889 2007-01-24  Dick Porter  <dick@ximian.com>
1890
1891         * socket-io.c
1892         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
1893         Create the returned object if we need to ignore an unsupported
1894         socket option.  Fixes a segfault reported by Atsushi.
1895
1896 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
1897
1898         * class.c, object.c: restrict GC-tracked fields to
1899         UIntPtr fields used inside corlib, so we provide better
1900         type info to the GC and also allow broken packing as in
1901         bug #80580.
1902
1903 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
1904
1905         * sgen-gc.c: removed duplicated function.
1906
1907 2007-01-19  Miguel de Icaza  <miguel@novell.com>
1908
1909         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
1910         value that means that the value is not supported, but that we
1911         should not return a failure, but instead report this as a
1912         successful operation.
1913
1914 2007-01-19  Raja R Harinath  <rharinath@novell.com>
1915
1916         Fix tests/bug79956.2.il
1917         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
1918         (mono_generic_class_get_class): If the generic definition in an
1919         enum, copy over other fields related to it.
1920
1921 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
1922
1923         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
1924         genericinst enums (bug #79215).
1925
1926 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
1927         * class.c: Fix bug 80307.
1928
1929 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
1930
1931         * image.c: if the file table is not present, try to load
1932         all the modules, since we don't have info about them
1933         having or not metadata (bug #80517).
1934         * assembly.c: allow mono_assembly_load_references () to
1935         work for netmodules.
1936
1937 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1938
1939         * image.c, metadata-internals.h, object.c: execute module
1940         cctors when running on the 2 runtime if present (bug #80487).
1941
1942 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
1943
1944         * icall.c: optimized InitializeArray() on bigendian.
1945
1946 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
1947
1948         * icall.c: fix for the broken ARM FPA double format.
1949
1950 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
1951
1952         * icall.c: handle endian issues for r4 and r8 types, too, in
1953         the InitializeArray() icall.
1954
1955 2007-01-15  Miguel de Icaza  <miguel@novell.com>
1956
1957         * loader.c (mono_loader_error_prepare_exception): Clear the error
1958         once we have extracted the information from it, do this before we
1959         call into the JIT's class loading mechanisms.
1960
1961         * object.c (mono_class_create_runtime_vtable): Do not clear the
1962         loader error before calling mono_class_get_exception_for_failure
1963         as the loader error is needed inside
1964         mono_class_get_exception_for_failure to throw the error (thinko).
1965
1966         Fixes #80521
1967         
1968 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
1969
1970         * reflection.c: align fields rva data so it's faster to load at
1971         runtime.
1972
1973 2007-01-12  Raja R Harinath  <rharinath@novell.com>
1974
1975         Prepare to simplify GenericMethod handling.
1976         * class-internals.h (mono_method_get_context): New accessor function.
1977         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
1978         rather than directly accessing '->context' field.
1979
1980         * class-internals.h (_MonoGenericParam.method): Move ...
1981         (_MonoGenericContainer): ... here.  Add into union with klass field.
1982         * class.c, icall.c, loader.c, metadata.c, reflection.c:
1983         Update to changes.
1984
1985 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
1986
1987         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
1988         the wrapper type enum and reduce relocations.
1989
1990 2007-01-12  Raja R Harinath  <rharinath@novell.com>
1991
1992         * reflection.c (inflate_mono_method): Reuse method instantiation
1993         from the generic method, if available.
1994
1995 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1996
1997         * marshal.c (emit_marshal_variant): Fix conv_arg
1998         type in last commit, based on whether parameter is byref.
1999         
2000 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2001
2002         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
2003         marshalling.
2004         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
2005         MONO_TYPE_OBJECT back for VARIANT support.
2006
2007 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2008
2009         * marshal.c, marshal.h, icall-def.h: Implement 
2010         Marshal.ReAllocCoTaskMem.
2011
2012 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
2013
2014         * marshal.c: memory retention fixes: use the proper
2015         image cache for runtime_invoke method lookups.
2016
2017 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
2018
2019         * mempool.c: added code to help debug mempool allocations.
2020
2021 2007-01-11  Dick Porter  <dick@ximian.com>
2022
2023         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
2024         support (experimenting with faking it with IP_MTU_DISCOVER for
2025         systems that don't have IP_DONTFRAGMENT.)
2026         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
2027         icall.
2028
2029         * icall-def.h: new System.Net.Sockets.Disconnect icall.
2030
2031         * socket-io.h: Add new fields to MonoSocketAsyncResult
2032         corresponding to the new ones in Socket.cs.
2033
2034 2007-01-11  Raja R Harinath  <rharinath@novell.com>
2035
2036         Fix IronPython regression mentioned in #80249
2037         * metadata.c (do_mono_metadata_parse_generic_class): Clear
2038         'cached_context' field, since it may have been initialized as a
2039         side-effect of metadata parsing.
2040
2041         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
2042         (_MonoGenericClass.cached_class): Move here and rename from lone
2043         remaining field of ...
2044         (_MonoInflatedGenericClass): ... this.  Remove.
2045         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
2046         to changes.
2047
2048         Fix mcs/tests/test-128.cs regression.
2049         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
2050         2007-01-10 change below.
2051         [MONO_TYPE_OBJECT]: Recurse into array case.
2052
2053 2007-01-11  Raja R Harinath  <harinath@gmail.com>
2054
2055         * class-internals.h (mono_get_inflated_generic_class): Remove.
2056         * class.c (mono_get_inflated_generic_class): Remove.
2057         (mono_generic_class_get_class): Rename from
2058         mono_class_create_generic.
2059         (mono_class_from_mono_type) [GENERICINST]: Use it.
2060         * reflection.c, metadata.c: Update to changes.  Use
2061         'mono_class_from_mono_type'.
2062
2063 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
2064
2065         * reflection.c: use passed type when encoding an array element
2066         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
2067
2068 2007-01-09  Robert Jordan  <robertj@gmx.net>
2069
2070         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
2071         result arguments (someDelegate.EndInvoke (unrelatedAres)).
2072         Fixes bug #80392.
2073
2074 2007-01-09  Raja R Harinath  <rharinath@novell.com>
2075
2076         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
2077
2078         * object.c (set_value): Avoid aliasing between type->data.klass
2079         and type->data.generic_class.
2080
2081         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
2082
2083 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2084
2085         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
2086         between type->data.klass and type->data.generic_class.
2087
2088 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
2089
2090         * marshal.c: In MS.NET, StringBuilder objects are not copied by
2091         value in out parameters.
2092
2093 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2094
2095         Simplify invariant for MonoGenericClass::klass field.
2096         * class.c (mono_class_create_generic): Verify 'klass' is null.
2097         * metadata.c (do_mono_metadata_parse_generic_class): Don't
2098         initialize 'klass' field.
2099
2100 2007-01-05  Raja R Harinath  <rharinath@novell.com>
2101
2102         Ongoing work to avoid redundant data and simplify invariants.
2103         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
2104         'generic_class', and change type to a GenericInst.
2105         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
2106         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2107
2108 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
2109
2110         * class.c : skip io-layer under PLATFORM_WIN32.
2111
2112 2007-01-03  Tor Lillqvist  <tml@novell.com>
2113
2114         Fix #80305: In a bundled executable, look in the bundled exe
2115         assembly to determine the runtime version. Add the possibility to
2116         bundle also the machine.config file.
2117         
2118         * assembly.c (mono_assembly_open_from_bundle): Make
2119         non-static. Allow being called even if we have no bundled
2120         assemblies, and return NULL right away in that case.
2121
2122         * domain-internals.h: Declare mono_assembly_open_from_bundle()
2123         here.
2124
2125         * domain.c (app_config_parse): Take an assembly exe file name as
2126         parameter instead of a config file name. Check for a bundled
2127         config file for that assembly by calling
2128         mono_config_string_for_assembly_file() (see below) before looking
2129         for one in the file system.
2130         (get_runtimes_from_exe): Corrsponding change to call of
2131         app_config_parse().
2132         (get_runtimes_from_exe): Check for bundled assembly exe file first
2133         by calling mono_assembly_open_from_bundle(). If no bundled
2134         assembly exe file is found, call mono_image_open() as before to
2135         look it up in the file system.
2136
2137         * mono-config.c: Add variable bundled_machinec_onfig.
2138         (mono_config_string_for_assembly_file): New function.
2139         (mono_config_for_assembly): Move code snippet that looks for a
2140         bundled assembly .config file into the above new function. Call
2141         it.
2142         (mono_register_machine_config, mono_get_machine_config): New
2143         functions to set and retrieve
2144
2145         * assembly.h: Declare mono_register_machine_config().
2146
2147         * mono-config.h: Declare mono_get_machine_config() and
2148         mono_config_string_for_assembly_file().
2149
2150         * icall.c: No declaration of environ necessary on Win32. It is
2151         declared (as a macro expanding to a function call) in stdlib.h.
2152         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
2153         New internal mono function. Returns the value of
2154         mono_get_machine_config() as a Mono string.
2155
2156         * icall-def.h: Add get_bundled_machine_config().
2157
2158 2007-01-04  Raja R Harinath  <rharinath@novell.com>
2159
2160         Remove redundant field
2161         * class-internals.h (_MonoGenericContext.container): Remove field.
2162         * loader.c (mono_method_get_signature_full): Don't parse a
2163         "container" for a signature parse when the signature is inflated
2164         immediately.
2165         (method_from_methodspec): Likewise, for a generic_inst.
2166         * class.c, metadata.c, reflection.c: Update to changes.
2167
2168 2006-01-04  Raja R Harinath  <rharinath@novell.com>
2169
2170         * class-internals.h (_MonoGenericClass): Rename 'context' field to
2171         'cached_context', and change semantics -- it starts off NULL, and
2172         is initialized on demand.
2173         * class.c (mono_generic_class_get_context): New accessor to
2174         replace 'context' field accesses.
2175         (mono_class_get_context): New helper.
2176         (*): Update to changes.
2177         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
2178
2179 2007-01-03  Miguel de Icaza  <miguel@novell.com>
2180
2181         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
2182         before the memcpy.   Fixes Marshal2 regression.
2183
2184 2007-01-02  Jb Evain  <jbevain@gmail.com>
2185
2186         * blob.h: add a MONO_TYPE_ENUM definition
2187         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
2188         fix the encoding of arrays of enums in custom attributes.
2189
2190         Fixes #79666.
2191
2192 2007-01-01  Miguel de Icaza  <miguel@novell.com>
2193
2194         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
2195         string is null terminated, but only cut the string short if it
2196         overflows the buffer.   
2197         
2198         (mono_string_to_byvalstr): Also fix this routine.   The code here
2199         was not properly terminating a string (it was only terminated
2200         because of the previous catch-all memset). 
2201
2202         I left the memset, because I do not know if applications expect
2203         the runtime to clear this region. 
2204
2205         Fixes #79944.
2206
2207         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
2208         Clear the error before returning to unmanaged code to prevent the
2209         runtime from being confused later on (fixes  80420).
2210         (ves_icall_type_from_name): Always call mono_loader_clear_error
2211         after parsing a type that could have failed.
2212         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
2213
2214         * loader.c (mono_loader_clear_error): Fix indentation.
2215
2216 2006-12-28  Martin Baulig  <martin@ximian.com>
2217
2218         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
2219
2220 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2221
2222         * reflection.c: patch from Rolf Bjarne Kvinge to fix
2223         getting a token for an EnumBuilder.
2224
2225 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2226
2227         * reflection.c: be more careful in case resource generation
2228         fails to create the data array.
2229
2230 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2231
2232         * sgen-gc.c: write barrier for clone and fix unregister handles.
2233
2234 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2235
2236         * reflection.c: some fixes needed in the generics code for the moving GC.
2237
2238 2006-12-22  Robert Jordan  <robertj@gmx.net>
2239
2240         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
2241         account. Fixes bug #80299.
2242
2243 2006-12-21  Raja R Harinath  <rharinath@novell.com>
2244
2245         Fix WaitHandle usage in delegates.
2246         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
2247         * object.c (mono_wait_handle_new): Use the property set method to
2248         initialize the handle.
2249         (mono_wait_handle_get_handle): New.
2250         * threadpool.c (mono_async_invoke): Use it.
2251         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
2252         Likewise.
2253         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
2254
2255 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
2256
2257         * marshal.c (emit_marshal): Call emit_marshal_variant and
2258         emit_marshal_com_interface when applicable.
2259         (emit_marshal_variant, emit_marshal_com_interface): Add
2260         methods for this case and remove if's from emit_marshal_object.
2261         
2262 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
2263
2264         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
2265
2266 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
2267
2268         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
2269         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
2270         and GlobalFree on Windows. Remove FIXME.
2271
2272 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2273
2274         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
2275         implementation for managed objects.
2276
2277 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
2278
2279         * object.c: implemented code to be used for checking
2280         that no reference field overlaps with non-references.
2281
2282 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2283
2284         * threadpool.c: fix queue code to be compatible with the
2285         moving GC.
2286
2287 2006-12-18  Miguel de Icaza  <miguel@novell.com>
2288
2289         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
2290         in structures by throwing ArgumentNullException.
2291
2292         (emit_marshal_safehandle): Also when they are null parameters.
2293
2294         (emit_marshal_safehandle): Add support for ref
2295         SafeHandles parameters
2296
2297 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2298
2299         * profiler.c: updated to use the mono-dl API instead of
2300         gmodule.
2301
2302 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2303
2304         * profiler.c: updated to use the mono-dl dynamic loading
2305         API instead of gmodule.
2306
2307 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2308
2309         * profiler.c: use readlink, older versions of glib don't have
2310         g_file_read_link ().
2311
2312 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2313
2314         * profiler.c: try to detect the path to mono if libc fails to provide
2315         a useful name (bug #80286).
2316
2317 2006-12-16  Raja R Harinath  <rharinath@novell.com>
2318
2319         Fix #80242
2320         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
2321         instance, use the generic type definition instead.
2322         (ves_icall_Type_GetNestedTypes): Likewise.
2323         * class.c (mono_class_create_generic): Always set the
2324         nested_classes of a generic instance to NULL, even if the generic
2325         type definition has nested types.
2326
2327 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2328
2329         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2330         and fix on Linux.
2331         
2332 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2333
2334         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2335         my arguments were in the wrong order.   I also fixed the Windows
2336         version which seems to have had the same issue.
2337
2338         (mono_free_bstr): On Unix, this is g_free.
2339         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2340         conversions (for the tests in corlib to pass).
2341
2342 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2343
2344         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2345         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2346         exception if a ref SafeHandle in a struct has changed).
2347         
2348         (emit_struct_conv): Do not perform layout checks for classes
2349         derived from SafeHandle, as those are specially handled. 
2350
2351         (emit_object_to_ptr_conv): Add support for
2352         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2353
2354         (emit_marshal_safehandle): Implement conversion of return values
2355         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2356         
2357         * threads.c: WaitHandle now is compiled with two different handles
2358         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2359         for 2.0.
2360         
2361         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2362         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2363         these routines to cope with both kinds of fields.
2364
2365 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2366
2367         * metadata.c (mono_type_to_unmanaged): Handle the case where
2368         type->data.klass is a SafeHandle, and in that case, return the
2369         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2370         MONO_MARSHAL_CONV_SAFEHANDLE. 
2371
2372 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2373
2374         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2375         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2376         calling emit_marshal_object.
2377
2378         (emit_marshal_safehandle): Implement marshalling of
2379         SafeHandle parameters (no ref support yet).
2380
2381         (MarshalAction): Document the defines as I implement
2382         them for SafeHandle.
2383
2384         (emit_marshal_object): indentation police.
2385
2386         * class-internals.h: Define MonoSafeHandle.
2387         Add safehandle_class to MonoDefaults type.
2388
2389         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2390         list of classes to check for fields. 
2391
2392         * domain.c (mono_init_internal): Add SafeHandle to the list of
2393         mono_defaults loaded.
2394
2395 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2396
2397         Fix #80253
2398         * reflection.c (mono_reflection_bind_generic_parameters): If the
2399         generic type definition is a type builder, ensure that it is fully
2400         initialized before instantiating it.  Kill some dead code.
2401
2402 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2403
2404         * object.c: clear the loader_error () before loading
2405         more metadata stuff (bug #80258).
2406
2407 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2408
2409         * icall.c, icall-defs.h: type modifiers icalls for
2410         parameters and properties.
2411
2412 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2413
2414         * object.c, icall.c: fixed warnings.
2415
2416 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2417
2418         * marshal.c: fixed a couple of leaks and coding style in a few places.
2419
2420 2006-12-08  Dick Porter  <dick@ximian.com>
2421
2422         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2423         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2424         80173.
2425
2426 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2427
2428         * process.c: ProcessStartInfo may have only filename set and
2429         arguments can be NULL.
2430
2431 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2432
2433         * icall.c: fix leak found by Robert Jordan.
2434
2435 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2436
2437         * marshal.c, marshal.h: generate managed method to access an element
2438         of a multi-dimensional array.
2439
2440 2006-11-30  Paolo Molaro (lupus@ximian.com)
2441
2442         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2443
2444 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2445
2446         * icall.c: back out GetFields () fix until the serialization code is
2447         fixed to not depend on the incorrect behaviour.
2448
2449 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2450
2451         * profiler.c: provide defaults if none are set.
2452
2453 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2454
2455         * Makefile.am, attrdefs.h: new public header file with
2456         constants for attributes for use by embedders.
2457
2458 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2459
2460         * icall.c: GetFields () fix for bug #80064.
2461
2462 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
2463
2464         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
2465         removed long unused icalls.
2466
2467 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2468   
2469         * marshal.c: 
2470                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2471                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2472                 can be generated without a delegate class.
2473                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2474         
2475         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2476
2477 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2478
2479         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2480         #80069.
2481
2482 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2483
2484         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2485         icall-def.h: added icalls needed by System.GC.
2486
2487 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2488
2489         * loader.c: ensure the class in catch clauses is handled
2490         correctly for generics methods (fixes bug#79980).
2491
2492 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2493
2494         * monitor.h, monitor.c: added mono_locks_dump () function
2495         to help debug deadlocks involving managed locks.
2496
2497 2006-11-13  Dick Porter  <dick@ximian.com>
2498
2499         * file-io.c (get_file_attributes): If the file is a symlink try
2500         and get the stat data for the target, but also add the
2501         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2502         the specs for the windows symlink support, but will probably have
2503         to be reworked when I have test data from a vista machine.  Fixes
2504         bug 79887.
2505
2506 2006-11-13  Dick Porter  <dick@ximian.com>
2507
2508         * gc.c (mono_domain_finalize): 
2509         * marshal.c (mono_delegate_begin_invoke): 
2510         * threadpool.c (socket_io_init, mono_thread_pool_init)
2511         (mono_thread_pool_finish): 
2512         * monitor.c (mono_monitor_try_enter_internal): 
2513         * threads.c (mono_thread_resume, mono_thread_init)
2514         (mono_thread_suspend_all_other_threads)
2515         (mono_thread_execute_interruption): 
2516         * appdomain.c (mono_domain_unload): Check for NULL error returns
2517         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2518         75733.
2519
2520 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2521
2522         * process.c
2523         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2524         Only close the handle if the value of the handle is not
2525         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2526         robust.
2527
2528         Improvement for #75733, so that we do not run into this problem. 
2529
2530         
2531         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2532         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2533         internal variables.  Fixes #79462 
2534         
2535
2536 2006-11-09  Dick Porter  <dick@ximian.com>
2537
2538         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2539         Use poll() not select().  Fixes bug 79397.
2540
2541 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2542
2543         Fix #79872
2544         * assembly.c (mono_assembly_load_from_full): Check that the given
2545         image has an assembly manifest.
2546
2547 2006-11-09  Ankit Jain  <jankit@novell.com>
2548
2549         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2550         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2551         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2552
2553 2006-11-07  Dick Porter  <dick@ximian.com>
2554
2555         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2556         Put the old resolver behaviour back for pre-2.0 profiles.
2557
2558 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2559
2560         * threadpool.c: precise GC and locking fixes.
2561
2562 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2563
2564         * class.c: don't load types that have an explicit unaligned
2565         managed reference. Provide better info in the TypeLoad exception.
2566         Part of the fix for bug #79744.
2567         * object.c: use the correct check for class type load issues.
2568
2569 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2570
2571         * class.c: enforce alignment of fields with managed references
2572         even when Pack=1 is forced by the user (bug #77788).
2573
2574 2006-11-03  Dick Porter  <dick@ximian.com>
2575
2576         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2577         If the address reverse lookup fails, return it as the hostname
2578         anyway.  Fixes bug 79721.
2579
2580 2006-11-03  Dick Porter  <dick@ximian.com>
2581
2582         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
2583         Fix build on Windows.
2584
2585 2006-11-02  Dick Porter  <dick@ximian.com>
2586
2587         * icall-def.h: 
2588         * object-internals.h: 
2589         * exception.c (mono_get_exception_thread_interrupted): 
2590         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
2591         Fixes bug 74525.
2592
2593         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
2594         Check for pending Thread.Interrupt.
2595
2596 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
2597         * loader.c: Fixed bug 79684.
2598
2599 2006-10-27  Dick Porter  <dick@ximian.com>
2600
2601         * file-io.c (get_file_attributes): Force symlinks to directories
2602         to be returned as a regular file.  Fixes bug 79733.
2603 2006-10-26  Dick Porter  <dick@ximian.com>
2604
2605         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
2606         CreateFile to open a directory then we need to set the
2607         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
2608
2609 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
2610
2611         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
2612         friends.
2613
2614 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2615
2616         * sgengc.c: small cleanup of timer code.
2617
2618 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2619
2620         * sgen-gc.c: fix some warnings and start adding support for
2621         complete object removal on domain unload.
2622
2623 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
2624
2625         * assembly.c: build_assembly_name should not consider a version
2626         number without build or revision number invalid. Fixes bug #79715.
2627
2628 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
2629
2630         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
2631         call kernel32 function OutputDebugString directly.
2632         
2633         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2634         
2635 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
2636
2637         * reflection.c: small cleanup, using a function to insert a MonoString
2638         in the string heap.
2639
2640 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
2641
2642         * reflection.c: moving GC fixes.
2643
2644 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
2645
2646         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
2647         all the objects with finalizers belonging to an unloading appdomain.
2648
2649 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
2650
2651         * sgen-gc.c: added ability to allocate even when the nursery is fully
2652         pinned and fixed a couple of bugs.
2653
2654 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2655
2656         * threads.h: Revert the last change for now.
2657
2658         * threads.h (mono_thread_get_pending_exception): Rename this to
2659         mono_thread_get_undeniable_exception ().
2660
2661 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
2662
2663         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
2664         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
2665         when fname does not refer to valid assembly. This result in a more
2666         meaningful error message.
2667         * exception.c: added mono_get_exception_bad_image_format2 which 
2668         constructs a BadImageFormatException using the ctor taking a custom
2669         message and the file name. Passing in a NULL msg results in a default
2670         message.
2671         * exception.h: define mono_get_exception_bad_image_format2 function.
2672         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
2673         when file name pointed to an invalid IL image. Use 
2674         mono_get_exception_file_not_found2 to construct FileNotFoundException,
2675         as this results in a more meaningful error message.
2676
2677 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2678
2679         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
2680         #79465.
2681
2682 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
2683
2684         * metadata.c (mono_type_size): Change the align parameter to guint32 for
2685         consistency with the other _size functions.
2686         (mono_type_stack_size): Ditto.
2687
2688         * class.c object.c icall.c: Fix warnings caused by the above change.
2689
2690         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
2691
2692         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
2693
2694         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
2695
2696 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2697
2698         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
2699         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
2700         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
2701         threadpool.h, threads-types.h: mark more internal functions.
2702
2703 2006-10-11  Dick Porter  <dick@ximian.com>
2704
2705         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2706         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
2707         reproduce the bug even before applying the fix.)
2708
2709 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
2710
2711         * reflection.c: allow retrieving attributes for arguments in generic
2712         methods (bug #79241).
2713
2714 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
2715
2716         * debug-mono-symfile.c: properly check fopen () result (found by
2717         coverity).
2718
2719 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
2720
2721         * reflection.c: make error message clearer and fixed two
2722         issuelets found by Coverity.
2723
2724 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
2725
2726         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
2727
2728 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2729
2730         * object-internals.h, gc-internal.h, profiler-private.h:
2731         mark internal functions.
2732
2733 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2734
2735         * reflection.c: put data in the text section.
2736         * icall.c: recognize more types in type_from_typename ().
2737         * process.c, marshal.c: added some GC FIXMEs.
2738
2739 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2740
2741         * loader.c: check for NULL before initializing.
2742
2743 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
2744
2745         * gc.c (finalizer_thread): Use a non-alertable wait here.
2746
2747         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
2748         until the correct solution is found.
2749
2750 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2751
2752         * reflection.c (mono_module_get_object): Avoid an assert when operating on
2753         modules with no metadata. Fixes #79596.
2754
2755         * image.c (load_metadata_ptrs): Put back the error message when
2756         the #- heap is encountered since the support is not complete yet.
2757
2758 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2759
2760         * gc.c: do not allow the user to SuppressFinalize () a
2761         delegate because it would leak the trampoline if present.
2762
2763 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2764
2765         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
2766         PropertyPtr table.
2767
2768 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
2769
2770         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
2771
2772         * metadata.c (mono_metadata_get_param_attrs): Ditto.
2773
2774         * row-indexes.h: Add definitions for *Ptr tables.
2775
2776         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
2777
2778         * metadata.c (mono_metadata_translate_token_index): New helper function to
2779         translate table indexes used in uncompressed metadata.
2780         (mono_metadata_decode_table_row): Ditto.
2781         (mono_metadata_decode_table_row_col): Ditto.
2782
2783         * metadata.c: Add table schema for *Ptr tables.
2784
2785         * class.c loader.c: Use the new helper function to access the affected metadata
2786         tables.
2787         
2788         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
2789         #38532.
2790         
2791 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
2792
2793         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
2794         sequences which can be unbounded in size. Fixes #79583.
2795
2796 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
2797
2798         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
2799         static initialization.
2800
2801         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
2802
2803         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
2804
2805         * domain.c (mono_domain_free): Free up type_init_exception_hash.
2806
2807         * object.c (mono_runtime_class_init): Implement correct semantics when a static
2808         ctor fails, i.e. throw the same exception on subsequent accesses.
2809         
2810 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
2811
2812         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
2813         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
2814         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
2815         Handle marshalling of interfaces and VARIANTs contained in structs.
2816         
2817         Code is contributed under MIT/X11 license.
2818         
2819 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
2820
2821         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
2822         
2823         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
2824         mempool.
2825
2826 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2827
2828         * console-io.c: ignore previous SIGINT handler.
2829
2830 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
2831
2832         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
2833         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
2834         #79460, #79461, #79485.
2835
2836         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
2837
2838         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
2839         #79217.
2840
2841 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
2842
2843         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
2844         could be generated from it.
2845
2846 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
2847
2848         * rand.c: fix read loop to correctly handle EINTR.
2849
2850 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2851
2852         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
2853         internal calls are defined to keep methods closer to the declaring
2854         type and allow a significant reduction in runtime relocations and
2855         memory usage.
2856
2857 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
2858
2859         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
2860         exception message to have FileNotFoundException use the default
2861         assembly load error message. Fixes bug #79426.
2862         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
2863
2864 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2865
2866         * threadpool.c: (start_thread_or_queue) use the root domain when
2867         creating the thread instead of the async object one.
2868
2869 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
2870
2871         * class.c, object.c, class-internals.h, reflection.c:
2872         for arrays, store element_size inside MonoClass (speedup
2873         for array object creation).
2874
2875 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
2876
2877         * icall.c: fixed CodeBase to use the file name and not the module
2878         name (bug #79365).
2879
2880 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
2881
2882         * mono-debug.c, mono-debug.h: export find_method as
2883         mono_debug_find_method ().
2884
2885 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2886
2887         * debug-helpers.c, class-internals.h: added a few functions useful
2888         when debugging under gdb.
2889
2890 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2891
2892         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
2893         characters that need special handling.
2894
2895 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
2896
2897         * mono-config.c: make the os/cpu specification more flexible,
2898         allowing lists and negation.
2899
2900 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
2901
2902         * marshal.c: COM Interop fixes. Handle case where method->klass.
2903         is interface. Handle BSTR/MonoString when null. Use CDECL as 
2904         calling convention on non-windows platforms. This is for
2905         compatibility with XPCOM and MainWin COM.
2906         
2907         Code is contributed under MIT/X11 license.
2908         
2909
2910 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
2911
2912         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
2913         correctly. Fixes #79217.
2914
2915         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
2916
2917 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
2918
2919         * mono-config.c: allow both an os and cpu attribute for dllmap
2920         and dllentry elemnets to enable a single config file to be used
2921         for multiple architectures.
2922
2923 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
2924
2925         * loader.c: MonoLoaderError was cleared too soon on load failure.
2926         Fixes bug #79424.
2927
2928 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
2929
2930         * icall.c: use the defining class vtable when accessing a
2931         static field, not a pobblibly derived class.
2932
2933 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
2934
2935         * icall.c string-icalls.c: Remove references to unicode.h.
2936
2937         * unicode.h unicode.c Makefile.am: Remove these unused source files.
2938
2939         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
2940
2941         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
2942         indicating the image where custom marshaller types should be looked up.
2943         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
2944         custom marshallers, instead of corlib. Fixes #79425.
2945
2946 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
2947
2948         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
2949
2950 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
2951
2952         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
2953         Implement Environment.ProcessorCount.
2954         
2955         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
2956         Implement Environment.ProcessorCount.
2957         
2958         * icall.c: 
2959         Add Environment.ProcessorCount icall.
2960         
2961         Patch by Jason McFall.
2962
2963 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2964
2965         * assembly.c: don't append .exe/.dll when the filename already contains
2966         one of those extensions.
2967
2968 2006-09-12  Martin Baulig  <martin@ximian.com>
2969
2970         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
2971         to array interfaces.
2972
2973 2006-09-11  Martin Baulig  <martin@ximian.com>
2974
2975         * reflection.c (mono_image_build_metadata): Create the
2976         MethodImpl's after emitting all types and methods, so we don't
2977         need another fixup pass for them.
2978
2979 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
2980
2981         * class.c (mono_class_from_name_case): Fix regression introduced by the last
2982         change.
2983
2984 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
2985
2986         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
2987         unload.
2988
2989 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
2990
2991         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
2992         args is not set. Fixes #78926.
2993
2994 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
2995
2996         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
2997
2998         * image.c (load_class_names): Move this to class.c, and rename it to 
2999         'mono_image_init_name_cache'.
3000         (load_modules): Fix a warning.
3001
3002         * class.c icall.c image.c: Initialize image->name_cache lazily.
3003
3004         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
3005         on its name using information in the AOT file.
3006
3007         * class.c (mono_class_from_name): Use the new hook function.
3008
3009 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
3010
3011         * reflection.c (mono_param_get_objects): Handle enum default parameter values
3012         correctly.
3013
3014         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
3015         Fixes #79289.
3016         
3017 2006-09-06  Martin Baulig  <martin@ximian.com>
3018
3019         * icall.c (mono_lookup_internal_call): Small fix.
3020
3021 2006-09-05  Raja R Harinath  <rharinath@novell.com>
3022
3023         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
3024         double g_free.
3025
3026 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
3027
3028         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
3029         when --debug is specified.
3030
3031 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
3032
3033         * class.c (setup_generic_array_ifaces): Fix a warning.
3034
3035 2006-09-04  Miguel de Icaza  <miguel@novell.com>
3036
3037         * Temporarily remove the patch to assemly.c that checks the
3038         assembly versions as it breaks our gacutil.
3039
3040 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
3041
3042         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
3043
3044         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
3045         a net 1.0 runtime.
3046
3047         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
3048         created using the default ctor. Fixes #79152.
3049         (mono_string_builder_to_utf16): Ditto.
3050
3051 2006-09-01  Martin Baulig  <martin@ximian.com>
3052
3053         Fix handling of the generic array interfaces.
3054
3055         * class-internals.h
3056         (MonoDefaults): Removed `generic_array_class' and added
3057         `generic_ilist' class.
3058
3059         * class.c
3060         (mono_bounded_array_class_get): Add the new generic array interfaces.
3061         (setup_generic_array_ifaces): New static method; create vtable
3062         entries for each method in the generic array interfaces.
3063
3064         * metadata.c
3065         (select_container): Allow "parent-less" generic methods.
3066
3067         * marshal.c
3068         (mono_marshal_get_generic_array_helper): New public method.
3069
3070         * icall.c
3071         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
3072         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
3073         moved the interncall into System.Array.
3074
3075 2006-09-01  Raja R Harinath  <rharinath@novell.com>
3076
3077         A few more cases of avoiding work on types with ->byref set.
3078         Has the real fix for #79238
3079         * icall.c (is_generic_parameter): New helper.
3080         (ves_icall_Type_GetGenericParameterPosition): Use it.
3081         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
3082         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3083         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3084         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
3085         reference types.
3086         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
3087         reference types.
3088         (ves_icall_Type_get_IsGenericInstance): Likewise.
3089         (ves_icall_Type_get_IsGenericType): Likewise.
3090
3091 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
3092
3093         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
3094         class if possible.
3095
3096         * mempool.h (mono_mempool_get_allocated): New helper function.
3097
3098         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
3099         change.
3100
3101         * mempool.c: Fix warnings and the calculation of stats.
3102
3103         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
3104
3105         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
3106
3107         * loader.c (mono_get_method_from_token): Update method_count stat.
3108
3109         * class-internals.h (MonoStats): Add some stats.
3110
3111 2006-08-31 Robert Jordan  <robertj@gmx.net>
3112
3113         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
3114         with managed variants.
3115         All code is contributed under the MIT/X11 license.
3116         
3117 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
3118
3119         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
3120         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
3121
3122         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
3123
3124         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
3125         with cycles in classes.
3126
3127         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
3128
3129         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
3130         missing a [MarshalAs] directive. Fixes #79203.
3131
3132         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
3133         klass->marshal_info. Fixes #79217.
3134
3135 2006-08-30  Martin Baulig  <martin@ximian.com>
3136
3137         Committing a patch from Joachim Ante <joe@otee.dk>:
3138         Add support for binary data symbol stores.
3139
3140         * debug-mono-symfile.c
3141         (mono_debug_open_mono_symbol_file): Renamed into
3142         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
3143         arguments.
3144
3145         * mono-debug.c
3146         (mono_debug_open_image): Added `raw_contents' and `size' args.
3147         (mono_debug_init_2_memory): New public function.
3148
3149 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
3150
3151         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
3152
3153 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3154
3155         * appdomain.c: implement support for ShadowCopyFiles.
3156
3157 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3158
3159         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
3160         when value is NULL (and should remove CID #51).
3161
3162 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3163
3164         * image.c: moved 2 functions to ../utils.
3165
3166 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3167
3168         * gc.c: cope with the target object of a GC handle being NULL
3169         (bug #78877).
3170
3171 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
3172
3173         * class.c: recursively check parent's explicit implementations
3174         of interface methods (fixes bug #79125).
3175
3176 2006-08-19  Miguel de Icaza  <miguel@novell.com>
3177
3178         * filewatcher.c: Avoid warnings when building, do not redefine
3179         constants that are defined.
3180
3181         Remove warnings.
3182
3183 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3184
3185         * image.c: don't fail when the link points to an absolute path.
3186
3187 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
3188
3189         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
3190         Fix CID #3.
3191
3192 2006-08-17  Miguel de Icaza  <miguel@novell.com>
3193
3194         * image.c (full_path): A new method used to obtain the actual path
3195         of an assembly even in the presence of symbolic links.  
3196
3197         This is necessary for the case where we are running a binary that
3198         has been GACed, but we are using the "published" path name
3199         ($prefix/mono/1.0/blah.exe) which happens to point to the real
3200         file in the GAC.
3201
3202         This was the source of the failure for the `xsp' command with the
3203         recent AppDomain changes, as far as the runtime was concerned,
3204         there were two different assemblies: $prefix/mono/1.0/blah.exe and
3205         $prefix/mono/gac/blah/version/blah.exe.
3206
3207         (do_mono_image_open): use full path
3208
3209 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3210
3211         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
3212
3213 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
3214
3215         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
3216         domain_id is supplied. Fix CID #241 and corlib's unit tests.
3217
3218 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3219
3220         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
3221         small structures. Fixes #78990.
3222
3223 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3224
3225         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
3226
3227         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
3228
3229 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3230
3231         * appdomain.c:
3232         * marshal.c: don't load all the assemblies from a domain into newly
3233         created ones. The new domains might have different rules and load
3234         assemblies from different locations. Fixes bug #76757.
3235
3236         Patch by Lluis. Conflicts resolved by Brian Crowell.
3237
3238 2006-08-16  Alp Toker  <alp@atoker.com>
3239
3240         * socket-io.c: First half of the fix for #79084.
3241         Set sa_size to the length of the content, not that of the struct.
3242         Don't add NULL suffix to the content, this should be done in
3243         managed code if needed.
3244
3245 2006-08-14  Raja R Harinath  <rharinath@novell.com>
3246
3247         Fix part of #79012
3248         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
3249         mono_metadata_parse_type returns NULL.
3250
3251 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
3252
3253         * normalization-tables.h : new file for string normalization data.
3254         * locales.c, locales.h, icall.c :
3255           added load_normalization_resource() for string normalization,
3256           and icall as well.
3257         * Makefile.am : added normalization-tables.h to the sources.
3258
3259 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
3260
3261         * marshal.c: Add more helper functions to reduce code duplication and use them
3262         everywhere.
3263
3264 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
3265
3266         * marshal.c: Fix non-x86 stdcall warnings.
3267         
3268         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
3269         them everywhere.
3270
3271 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
3272
3273         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
3274         type check on multi-dimensional arrays. Fixes #79000.
3275
3276 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
3277
3278         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
3279         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
3280         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
3281         * class-internals.h: add is_com_object to class structure.
3282         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
3283         null checks to COM object marshalling. Fix .ctor call on RCW.
3284         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
3285         
3286         All code is contributed under the MIT/X11 license.
3287
3288 2006-08-09  Dick Porter  <dick@ximian.com>
3289
3290         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
3291         racing mono_monitor_allocator_lock() somewhere, so don't delete
3292         the critical section for now.  Found by running and exiting
3293         monodevelop.
3294
3295 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
3296
3297         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
3298         (ves_icall_System_ComObject_FindInterface): Ditto.
3299         (ves_icall_System_ComObject_CacheInterface): Ditto.
3300
3301         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
3302         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
3303
3304 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3305
3306         * threadpool.c: treat pipes from process asynchronous reads as sockets
3307         when reading from them, so we get select/poll or epoll to wait for
3308         data.
3309
3310 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
3311
3312         * loader.c: Fix a typo (CID #233) in the null check.
3313
3314 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
3315
3316         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
3317         Hopefully fixes #78949.
3318         
3319         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
3320         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
3321         bytes. Fixes #78972.
3322
3323 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3324
3325         * filewatcher.c: we need to set errno here.
3326
3327 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3328
3329         * filewatcher.c: let Win32Exception get the error value.
3330
3331 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3332
3333         * filewatcher.c: translate errno into win32 errors for Win32Exception
3334         to know what happened.
3335
3336 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3337
3338         * threadpool.c: Fix more warnings.
3339
3340         * assembly.c (search_loaded): Fix warnings.
3341
3342         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3343         (mono_async_invoke): Ditto.
3344
3345 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3346
3347         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3348         entries for __ComObject type in addition to ComImport types.
3349         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3350         about hash table.
3351         
3352         All code is contributed under the MIT/X11 license.
3353
3354 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3355
3356         * image.c: avoid tentative loading of modulerefs that contain
3357         no metadata (P/Invoke library names).
3358
3359 2006-07-28  Dick Porter  <dick@ximian.com>
3360
3361         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3362         mono_loader_lock() somewhere, so don't delete the critical section
3363         for now.  Found by running and exiting monodevelop.
3364
3365 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3366
3367         * filewatcher.c: define the inotify syscalls when we're building on
3368         linux and have sys/syscall.h. The build system might not have support
3369         for inotify but the target system might have it.
3370
3371 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3372
3373         * domain.c: Documentation updates.
3374
3375         * loader.c (mono_free_method): Do not release the method
3376         information if we are being profiled, as profilers will use this
3377         information at shut down to present some data to the user.
3378
3379         This is needed so that the profiler does not crash, as the
3380         profiler tends to keep MonoMethods around, and they might become
3381         invalid if we free these.
3382
3383         (mono_get_method_constrained): Return the original CIL stream
3384         method as well, so verification can be performed against it.
3385
3386 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3387
3388         * filewatcher.[ch]: support for inotify file system watcher.
3389         * icall.c: add new internal calls for the inotify file system watcher.
3390
3391 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3392
3393         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3394         #78888.
3395
3396 2006-07-20  Dick Porter  <dick@ximian.com>
3397
3398         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3399         warning.
3400
3401 2006-07-20  Dick Porter  <dick@ximian.com>
3402
3403         * threads.c (start_wrapper): Do the thread cleanup while we still
3404         hold a reference to its object.  Fixes bug 78123.
3405
3406 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3407
3408         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3409         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3410           "managed-to-managed".
3411         * icall.c: Redirect string constructors that take sbyte* to
3412           ves_icall_System_String_ctor_RedirectToCreateString.
3413         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3414           to CreateString () methods with matching signature.
3415         * reflection.c: Use original security informations for
3416           MONO_WRAPPER_MANAGED_TO_MANAGED.
3417         * security-manager.c: Use original security informations for
3418           MONO_WRAPPER_MANAGED_TO_MANAGED.
3419         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3420           that is a placeholder and only its address should be used.
3421         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3422           that is a placeholder and only its address should be used.
3423
3424 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3425
3426         Begin implementing COM Interop.
3427         * appdomain.c: Increment corlib version.
3428         * class.c: Set ComImport classes' parent to __ComObject.
3429         * loader.c: Mark cominterop methods as such.
3430         * domain.c: Add __ComObject class to MonoDefaults structure.
3431         * image.c: Add 2 hashtables to the image for COM Interop related methods
3432         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3433         using the mempool allocator
3434         
3435         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3436         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3437         declaration for mono_metadata_type_dup_mp.
3438         
3439         * debug-helpers.c: Added strings for two additional wrapper types
3440         * object.c: Create proxy objects for ComImport classes
3441         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3442         and added __ComObject class to MonoDefaults structure.
3443         
3444         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3445         MonoComInteropProxy and MonoComObject.
3446         
3447         * marshal.c: Added support for COM Interop
3448         (signature_cominterop): Converts managed signature to corresponding
3449         unmanaged COM signature.
3450         (cominterop_get_function_pointer): gets unmanaged function pointer via
3451         COM object vtable
3452         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3453         (cominterop_get_method_interface): returns interface type that method is defined on
3454         (mono_mb_emit_cominterop_call): emits native call to function pointer
3455         gotten from vtable
3456         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
3457         that matches signature of unmanaged function.
3458         (cominterop_get_native_wrapper): wrapper around adjusted method call.
3459         (cominterop_get_invoke): forwards call from proxy to __ComObject
3460         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
3461         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
3462         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
3463         
3464         * marshal.h: Added Marshal icall declarations.
3465         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
3466         so we can access them in finalizer
3467         
3468 2006-07-14  Dick Porter  <dick@ximian.com>
3469
3470         * object.c (mono_type_initialization_cleanup): Fix a race
3471         condition by temporarily commenting out the critical section
3472         deletion.
3473
3474 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3475
3476         * reflection.c (create_custom_attr): Fix some warnings.
3477         (create_custom_attr_data): Ditto.
3478         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3479         types. Fixes #78855.
3480
3481 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3482
3483         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3484
3485         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3486
3487 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3488
3489         * reflection.c (resolve_object): Add support for DynamicMethod.
3490
3491         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3492         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3493
3494 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3495
3496         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3497         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3498
3499 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3500
3501         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3502         Fixes #77888.
3503
3504 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3505
3506         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3507         slightly: remove a shadow local variable.
3508
3509 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3510
3511         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3512         definition that introduces the virtual function slot.
3513         Also fix Coverity #105.
3514
3515 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3516
3517         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3518         for dynamic assemblies. Fixes #78724.
3519
3520 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3521
3522         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3523         Fixes #78722.
3524
3525 2006-06-21  Martin Baulig  <martin@ximian.com>
3526
3527         * reflection.c
3528         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3529         fixes #76484.
3530
3531 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3532
3533         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3534
3535 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3536
3537         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3538         nor TYPEREFs.
3539         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3540         Inflate result if necessary.
3541         (mono_class_get_full): Remove old version.  Rename from
3542         'mono_class_get' and add 'context' argument.  Pass it to
3543         ..._create_from_typespec.
3544         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3545         (mono_ldtoken): Revert change below.
3546
3547 2006-06-20  Martin Baulig  <martin@ximian.com>
3548
3549         * class.c (mono_ldtoken): Don't pass the generic context to
3550         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3551
3552 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3553
3554         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3555         and later freeing it. Fixes #78638.
3556
3557 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3558
3559         * icall.c (mono_class_get_throw): Revert over-zealous error
3560         throwing, the caller for mono_class_get_throw will cope with
3561         errors when classes are not properly initialized already.
3562
3563         The code still copes with loader exceptions though.
3564
3565         Fixes the regression in reftype1 and reftype3 from the CAS tests.
3566         
3567 2006-06-14  Miguel de Icaza  <miguel@novell.com>
3568
3569         Fixes the `make run1' version of RuntimeAbort (to be commited,
3570         source is in Bugzilla).
3571         
3572         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
3573         FALSE on class loading failure instead of returning true.
3574
3575         * class.c (mono_class_create_from_typedef): It is possible for
3576         mono_metadata_interfaces_from_typedef_full to fail if a class is
3577         not found, cope with this.
3578         
3579
3580 2006-06-14  Dick Porter  <dick@ximian.com>
3581
3582         * socket-io.c: 
3583         * process.c: Fix a bunch of signed/unsigned warnings from gcc
3584         4.1.1
3585
3586 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
3587
3588         * culture-info-table.h : oops, forgot to make it nsync with r61548.
3589
3590 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3591
3592         * icall.c: Another fix for building mono in Visual Studio.
3593
3594 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3595
3596         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
3597         
3598 2006-06-09  Martin Baulig  <martin@ximian.com>
3599
3600         * debug-mono-symfile.c: Put this back and really fix it this
3601         time. Sorry for all the trouble.
3602
3603 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
3604
3605         * icall.c (mono_class_get_throw): Fix a warning.
3606         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
3607         ReflectionTypeLoadException if needed. Fixes #78606.
3608
3609         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
3610         (mono_class_init): Ditto.
3611
3612         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
3613         ref_only exceptions.
3614         (mono_loader_clear_error): Make this work even if there is no error.
3615
3616 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
3617
3618         * object-internals.h marshal.c marshal.h icall.c: Implement method 
3619         Marshal.GetComSlotForMethodInfo using internal call.
3620
3621 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
3622
3623         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
3624         a function for signalling it.
3625
3626         * class.c (mono_class_from_typeref): Use the new kind of loader error when
3627         a referenced assembly is not found.
3628
3629         * loader.c (mono_loader_error_prepare_exception): Add support for 
3630         LOADER_ERROR_ASSEMBLY. Fix formatting.
3631
3632 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3633
3634         * domain.c appdomain.c class-internals.h marshal.c: Add support 
3635         for VARIANT marshalling on windows and increment corlib version
3636         since Variant struct was added.
3637
3638 2006-06-03  Miguel de Icaza  <miguel@novell.com>
3639
3640         * debug-mono-symfile.c: Revert Martin's previous patch which broke
3641         stack trace line information:
3642
3643         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
3644         (Martin) when looking up B which is between A and C, return A not C.
3645
3646         Bug is #78573.
3647
3648         Thanks to Alexander Olk for tracking this down.
3649
3650 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
3651
3652         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
3653         
3654         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
3655         avoid clobbering its value.
3656         (mono_string_to_lpstr): Fix a warning on windows.
3657
3658 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3659
3660         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
3661
3662         * reflection.c loader.c: Removed references to 'dummy' flag.
3663
3664         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
3665
3666         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
3667         it gets GC tracking.
3668
3669         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
3670         GC tracking.
3671         
3672         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
3673
3674         * marshal.c threadpool.c: Update callers of mono_async_result_new.
3675
3676         * appdomain.c: Bump corlib version.
3677
3678 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3679
3680         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3681         CEE_STIND_REF when working with object references.
3682
3683 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3684
3685         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
3686         Fixes #78539.
3687
3688 2006-05-30  Miguel de Icaza  <miguel@novell.com>
3689
3690         * loader.c (method_from_memberref): Fix argument value for
3691         mono_loader_set_error_method_load (I was passing the MonoClass
3692         instead of the class name char *).
3693
3694 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3695
3696         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3697         CEE_STIND_REF when working with object references.
3698
3699 2006-05-30  Martin Baulig  <martin@ximian.com>
3700
3701         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
3702         mono_method_full_name() change and replace the ':' with a '.'
3703         here.
3704
3705 2006-05-30  Martin Baulig  <martin@ximian.com>
3706
3707         * debug-mono-symfile.c
3708         (mono_debug_symfile_lookup_location): Fix the algorithm:
3709         when looking up B which is between A and C, return A not C.
3710
3711 2006-05-29  Martin Baulig  <martin@ximian.com>
3712
3713         * mono-debug.h
3714         (MonoDebugMethodInfo): Make the typedef public.
3715         (MonoDebugSourceLocation): New public struct.
3716
3717         * mono-debug.c
3718         (mono_debug_source_location_from_address): Removed.
3719         (mono_debug_source_location_from_il_offset): Removed.
3720         (mono_debug_il_offset_from_address): Removed.
3721         (mono_debug_address_from_il_offset): Removed.
3722         (mono_debug_lookup_method): New public function.
3723         (mono_debug_lookup_source_location): New public function; replaces
3724         the old mono_debug_source_location_from_*() functions; see the
3725         inline documentation.
3726         (mono_debug_free_source_location): New public function.
3727         (mono_debug_print_stack_frame): New public function; see the
3728         inline documentation.
3729
3730         * debug-mono-symfile.c
3731         (mono_debug_find_source_location): Renamed into
3732         mono_debug_symfile_lookup_location(); only take a
3733         `MonoDebugMethodInfo *' and an `offset' argument; added inline
3734         documentation.
3735         (mono_debug_find_method): Renamed into
3736         mono_debug_symfile_lookup_method().
3737
3738 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
3739
3740         * assembly.c (mono_assembly_open_full): Dont overwrite the status
3741         returned by mono_image_open_full ().
3742
3743         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
3744         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
3745         #78517.
3746
3747         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
3748         #78518.
3749
3750 2006-05-27  Miguel de Icaza  <miguel@novell.com>
3751
3752         * class.c (mono_class_from_typeref): handle missing images
3753         earlier, deals with bug #78418.   Refactor code; 
3754
3755         Fix a warning introduced in my previous commit (some stale code
3756         from before I revisited my patch).
3757
3758         * class.c (mono_class_create_from_typedef): On failure, remove the
3759         class from the MonoImage->class_cache as the class is not
3760         initialized;   Fixes the leak pointed out by Paolo.
3761
3762 2006-05-25  Dick Porter  <dick@ximian.com>
3763
3764         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
3765         DeleteCriticalSections until I figure out which one may still be
3766         sometimes locked when mono_thread_cleanup is called.
3767
3768 2006-05-24  Dick Porter  <dick@ximian.com>
3769
3770         * threads.c (mono_thread_cleanup): Move the threading cleanup out
3771         of mono_thread_manage and back into its own function, so it can be
3772         called after the finalizer thread has finished.
3773
3774         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
3775
3776 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
3777
3778         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
3779         Fixes #78495.
3780
3781         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
3782         with non-blittable elements.
3783         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
3784
3785 2006-05-24  Martin Baulig  <martin@ximian.com>
3786
3787         * mono-debug-debugger.h (MonoDebuggerEvent): Added
3788         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
3789
3790         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
3791         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
3792         `mono_debugger_event_handler' to NULL.
3793
3794 2006-05-24  Martin Baulig  <martin@ximian.com>
3795
3796         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
3797
3798 2006-05-24  Martin Baulig  <martin@ximian.com>
3799
3800         * mono-debug-debugger.h
3801         (mono_debugger_create_notification_function): Added
3802         `MonoCodeManager *' argument.
3803
3804 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
3805
3806         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
3807
3808 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
3809
3810         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
3811         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
3812         implementation.
3813
3814 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
3815
3816         * icall.c: precise GC support: objects can't be stored in unmanaged
3817         memory anymore, even if they are kept alive by other references: since
3818         they can move the GC needs to be able to always find them.
3819
3820 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
3821
3822         * object.c: precise GC support for static fields. Support
3823         for moving GCs: write barriers and pinned allocation for interned
3824         strings.
3825
3826 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3827
3828         * domain.c, domain-internals.h: precise GC support for the MonoDomain
3829         structure.
3830
3831 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3832
3833         * class.c, gc.c: sgen and precise GC updates.
3834
3835 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
3836
3837         * marshal.h, marshal.c: added write barrier wrapper and precise type
3838         fixes.
3839
3840 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
3841
3842         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
3843         support.
3844
3845 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
3846
3847         * reflection.c: precise and sgen GC updates.
3848
3849 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
3850
3851         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
3852
3853 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
3854
3855         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
3856
3857 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
3858
3859         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
3860         MONO_TYPE_OBJECT. Fixes #78462.
3861
3862 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
3863
3864         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
3865         and blittable types.
3866
3867 2006-05-17  Miguel de Icaza  <miguel@novell.com>
3868
3869         * class.c (mono_class_get_exception_for_failure): Implement parts
3870         of a TODO: if the loader error is set (instead of the class
3871         error), we return a Loader exception that can be properly thrown
3872         elsewhere.
3873
3874         This was exposed by some Winforms 2.0 code that I tried to run
3875         (Atsushi pointed me to it).
3876
3877 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
3878
3879         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
3880         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
3881         
3882         * marshal.c (emit_marshal_vtype): Add limited support for 
3883         UnmanagedType.LPStruct. Fixes #78427.
3884
3885         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
3886         Applied a patch from kangaroo to fix #77523.
3887
3888 2006-05-17  Martin Baulig  <martin@ximian.com>
3889
3890         * threads.c
3891         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
3892         (debugger_thread_created): Removed.
3893         (debugger_thread_exited): Removed.
3894
3895 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
3896
3897         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3898
3899         * object-internals.h (MonoReflectionResource): Sync with managed version.
3900
3901 2006-05-12  Wade Berrier <wberrier@novell.com>
3902
3903         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
3904
3905 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
3906
3907         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
3908         functions try to allocate from the image mempool.
3909
3910 2006-05-12  Dick Porter  <dick@ximian.com>
3911
3912         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
3913
3914 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
3915
3916         * object.c: The FieldGetter and FieldSetter methods require the full
3917         name of the class, not only the name. Fixes bug #78277.
3918
3919 2006-05-11  Miguel de Icaza  <miguel@novell.com>
3920
3921         * loader.c (method_from_memberref): Do not pass the NULL klass to
3922         mono_loader_set_error_() methods.  Pass the non-NULL value
3923         (class). 
3924
3925 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
3926
3927         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
3928         (mono_assembly_close): Null out assembly->image->references after freeing it.
3929
3930         * image.c (mono_image_close): Free image->references.
3931         
3932         * reflection.c (mono_image_basic_init): Fix a small memory leak.
3933
3934 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3935
3936         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
3937         before checking if it's NULL (g_assert).
3938
3939 2006-05-10  Martin Baulig  <martin@ximian.com>
3940
3941         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
3942         I thought I already killed that two months ago, but now it somehow reappeared.
3943
3944 2006-05-10  Martin Baulig  <martin@ximian.com>
3945
3946         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
3947
3948 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
3949
3950         * reflection.c: Allocate memory for dynamically created methods in the image
3951         mempools.
3952
3953 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3954
3955         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
3956         don't use the ad pointer before checking if it's NULL (g_assert).
3957
3958 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
3959
3960         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
3961         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
3962
3963         * marshal.c: Allocate all signatures from mempools.
3964
3965         * marshal.c: Allocate some more signatures from mempools.
3966
3967 2006-05-09  Miguel de Icaza  <miguel@novell.com>
3968
3969         * object.c (mono_load_remote_field): The code used to provide a
3970         temporary variable for returning results if the user did not
3971         provide a result pointer.  But our temporary variable was allocted
3972         on the satck.
3973
3974         Fix calling code to always pass a result area.   Coverity ID 103.
3975
3976 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
3977
3978         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
3979         value, not the old. Fixes #78312.
3980         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
3981
3982         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
3983         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
3984         per-image cache.
3985
3986         * assembly.c (mono_assembly_close): Free image->references.
3987
3988         * assembly.c (mono_assembly_names_equal): Fix a warning.
3989         (mono_assemblies_cleanup): Cleanup more global data.
3990
3991         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
3992
3993         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
3994         ptr_cache and image->modules.
3995
3996         * image.c (mono_image_init): Allocate array_cache lazily.
3997         
3998 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3999
4000         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
4001         behavior was changed recently and has bad side effects.
4002
4003 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
4004
4005         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
4006         
4007         * assembly.c (mono_assembly_close): Remove a debug printf.
4008
4009         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
4010
4011         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
4012         to also allow for temporary references between mono_image_open ()/close ().
4013
4014         * domain.c (get_runtimes_from_exe): Add a FIXME.        
4015
4016 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
4017
4018         * marshal.c: Fix support for dynamic methods.
4019
4020         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
4021
4022         * marshal.c (mono_marshal_cleanup): New cleanup function.
4023
4024         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
4025         image mempools.
4026
4027         * class.c (mono_class_init): Fix leaking class->nested_classes.
4028
4029         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
4030
4031         * image.c (mono_image_init): Initialize the new cashes.
4032
4033         * image.c (mono_image_close): Destroy the new cashes.
4034
4035         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
4036
4037         * mempool.c (mono_mempool_strdup): New helper function.
4038
4039         * class-internals.h: Add prototype for mono_loader_unlock ().
4040
4041         * domain.c (mono_jit_info_table_find): Fix a warning.
4042         (mono_debugger_check_runtime_version): Ditto.
4043
4044         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
4045         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
4046         functions to these modules.
4047
4048         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
4049         metadata modules.
4050         
4051         * marshal.c (mono_free_bstr): Fix a warning.
4052
4053         * assembly.c (mono_assembly_open_full): Fix another small leak.
4054
4055         * object.c: Fix some unload leaks in the remoting code.
4056
4057         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
4058         function.
4059
4060         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
4061
4062         * reflection.c: Fix some unload leaks in dynamic assemblies.
4063
4064 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
4065
4066         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
4067         * marshal.h: Add BSTR support on Win32
4068         * icall.c: Add BSTR icalls
4069         * metadata.h: Add BSTR enums
4070
4071 2006-04-28  Miguel de Icaza  <miguel@novell.com>
4072
4073         Work to catch the crash from #76795 and turn it into an
4074         exception.   As I stubbed out pieces of the VisualBasic support,
4075         I found a number of places where the code was failing and I added
4076         checks to those places. 
4077         
4078         * metadata.c (do_mono_metadata_parse_generic_class): Make this
4079         function return a status code.  If we fail to parse the signature
4080         from mono_metadata_parse_generic_inst, return FALSE.
4081
4082         * loader.c (mono_get_method_from_token): If we fail to load the
4083         method (mono_class_get) return NULL.   
4084
4085         * (method_from_memberref): Return NULL if we are unable to parse
4086         the method signature
4087
4088         (mono_loader_error_prepare_exception): Since we now use the
4089         loader_error flag internally to stop processing, and obtaining
4090         exceptions that might be thrown will walk this code path the
4091         proper way of going from a MonoLoaderError into a
4092         MonoException was convoluted.   This new routine encapsulates the
4093         process of turning the error into an exception and *clearing* the
4094         error afterwards.
4095         
4096 2006-04-27  Miguel de Icaza  <miguel@novell.com>
4097
4098         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
4099         with missing assemblies), and to cope with:
4100
4101                 * Missing fieldref from a non-existing assembly.
4102                 * Missing methodref from a non-existing assembly.
4103
4104         The first batch of work to address *some* of the issues from 76661.
4105         
4106         * object.c (mono_class_create_runtime_vtable): If we fail to
4107         initialize the class raise the exception here. 
4108
4109         * metadata.c (mono_class_get_overrides_full): If any methods fail
4110         to load return the failure to the caller.
4111
4112         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
4113         flagging assemblies that failed to load.   
4114
4115         Do not crash if we are unable to load the assembly.
4116
4117         (mono_assembly_close): Do nothing with REFERENCE_MISSING
4118         assemblies. 
4119
4120         * loader.c (mono_loader_set_error_type_load): Change the
4121         convention to always pass unallocated strings, so we make our own
4122         copies (I know our own code had duplicated strings before, but
4123         this keeps the normal conventions).
4124         (method_from_memberref): Call mono_loader_set_error_method_load
4125         for all possible failures of loading the class. 
4126         Remove assert, turn into a loader error.
4127
4128         (mono_loader_error_to_exception): Move this routine from mini
4129         (mini_loader_error_to_exception) there was no need to have that in
4130         mini. 
4131
4132         * class.c (mono_class_from_typeref): If we were not able to load
4133         the assembly with mono_assembly_load_reference, call the
4134         mono_loader_set_error_type_load to register the problem.
4135
4136         (mono_class_setup_fields): If we fail to load the type from
4137         mono_metadata_parse_type_full, call mono_class_set_failure and
4138         break from the loop.
4139
4140         If class->exception_type is set, we do not layout the fields as
4141         that might crash the runtime, and instead return (from breaking
4142         from the previous loop).
4143
4144         (mono_class_setup_vtable): This now returns a boolean indicating
4145         whether the table was properly setup.   The decision is driven by
4146         mono_class_get_overrides_full which might run into non-existing
4147         methods. 
4148         
4149         (mono_class_init): Returns TRUE on success or FALSE if there was a
4150         problem in loading the type (incorrect assemblies, missing
4151         assemblies, methods, etc).
4152
4153         When we call mono_class_setup_fields we also check for a potential
4154         error inside this call (either a class exception or a general
4155         loader exception).
4156
4157         (mono_class_create_from_typedef): If the parent fails to load
4158         (calling mono_class_get_full) return NULL.
4159         
4160         ** Important **
4161
4162         calls to mono_metadata_parse_type_full should be checked
4163         everywhere and set the mono_class_set_failure
4164         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
4165
4166         The current patch checks the places where my manually constructed
4167         tests show the errors are showing up, but we should do it
4168         everywhere. 
4169
4170         ** Important2 **
4171
4172         mono_class_init return values should be tested everywhere, like
4173         the previous case this is something that we should audit
4174         everywhere and not only on the cases exposed by the tests I
4175         created. 
4176
4177 2006-04-26  Miguel de Icaza  <miguel@novell.com>
4178
4179         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
4180         boolean parameter and instead pass the information on `options'
4181         parameter (FileOptions).
4182
4183         * icall.c: Register the new signature for MonoIO.Open.
4184
4185         * debug-helpers.c (dis_one): Trying to understand how coverity
4186         works.  Fix Run 5, item 78.
4187
4188 2006-04-26  Dick Porter  <dick@ximian.com>
4189
4190         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
4191         dereference.
4192
4193 2006-04-25  Martin Baulig  <martin@ximian.com>
4194
4195         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
4196
4197         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
4198         debugger_thread_created().
4199         (debugger_gc_push_all_stacks): Don't handle the main thread in any
4200         special way.
4201         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
4202         (mono_debugger_finalize_threads): New function; undo the effects
4203         of mono_debugger_init_threads().
4204         (mono_debugger_create_all_threads): Removed.
4205
4206 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
4207
4208         * image.c (mono_image_close): Tidy up trace messages.
4209
4210         * assembly.c (mono_assembly_close): Ditto.
4211
4212         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
4213         no longer references an already freed assembly. Fixes #78168.
4214
4215 2006-04-21  Dick Porter  <dick@ximian.com>
4216
4217         * threads.c (mono_thread_detach): Fix reference counting when
4218         detaching threads.
4219
4220 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
4221
4222         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
4223         #78155.
4224
4225 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
4226
4227         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
4228         (mono_type_to_stind): Ditto.
4229
4230         * marshal.c: Use the new helper functions to simplify code.
4231
4232         * image.c (mono_image_close): Add some code for help debug assembly unloading
4233         problems.
4234
4235         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
4236         image mempool.
4237
4238         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
4239         assembly was already loaded in another appdomain. Fixes #78083.
4240
4241 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
4242
4243         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
4244         referenced assemblies.
4245         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
4246
4247         * domain.c (mono_domain_free): Add a trace message.
4248
4249         * appdomain.c (add_assemblies_to_domain): Ditto.        
4250
4251         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
4252         field.  
4253
4254 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4255
4256         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
4257
4258 2006-04-12  Martin Baulig  <martin@ximian.com>
4259
4260         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
4261         `USE_INCLUDED_LIBGC'.   
4262
4263 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4264
4265         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
4266         the patch contains ../ and a small directory name later. Hopefully fixes
4267         #78035.
4268
4269 2006-04-10  Martin Baulig  <martin@ximian.com>
4270
4271         Clean up the debugger's thread-handling code.
4272
4273         The debugger's thread-handling code has been moved from
4274         ../mini/debug-debugger.c to threads.c.  We now iterate directly
4275         over the `threads' hash, keep track of exiting threads and also
4276         use proper locking.
4277
4278         We can now debug XSP and XSP based applications with the debugger.
4279
4280         * object-internals.h (MonoThread): Added `gpointer end_stack'.
4281
4282         * threads.h
4283         (MonoThreadCallbacks): Removed; this was only used by the debugger.
4284         (mono_install_thread_callbacks): Likewise.      
4285
4286         * threads.c (mono_thread_callbacks): Removed.
4287         (debugger_thread_created, debugger_thread_exited): New static functions.
4288         (start_wrapper): Call debugger_thread_created().
4289         (thread_cleanup): Call debugger_thread_exited().
4290         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
4291         (mono_debugger_init_threads): New public function.
4292         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
4293         iterate directly over the `threads' hash and also use proper locking.
4294
4295         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
4296
4297         * mono-debug-debugger.h
4298         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
4299
4300 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
4301
4302         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
4303         argument type=array. Fixes #78057.
4304
4305 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4306
4307         * culture-info-table.h : regenerated. Fixed bug #69652.
4308
4309 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
4310
4311         * loader.c metadata.c: Reapply a variant r59116.
4312         
4313         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
4314
4315         * class.c (mono_class_setup_interface_offsets): New internal function.
4316
4317         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
4318         interfaces too. Fixes #77398.
4319
4320         * reflection.c (encode_cattr_value): Add support for 
4321         parameter type=object, argument type=array.
4322         (load_cattr_value): Ditto. Fixes #77916.
4323
4324         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4325         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4326
4327         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4328         a byval char array and CharSet is Ansi.
4329
4330         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4331
4332 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4333
4334         * metadata.c: Add some locking comments.
4335         
4336         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4337         mempool.
4338         (mono_metadata_free_method_signature): Don't free the signature itself.
4339
4340         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4341
4342         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4343         reference the same MonoImage.
4344         (mono_assembly_load_from_full): Add an assert.
4345
4346 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4347
4348         * image.c (mono_image_close): Don't put the image we are about to free into the
4349         loaded_images_guid_hash.
4350
4351         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4352         to reduce code duplication.
4353
4354         * marshal.c: Register the native functions called by this module as icalls, to
4355         somewhat centralize the creation of MonoMethodSignature's.
4356
4357         * loader.c (mono_method_signature): Add a cache for method signatures.
4358
4359         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4360         the parameter attributes of a method.
4361         (mono_metadata_parse_method_signature_full): Refactored the computation of
4362         parameter attributes into a separate function. Also avoid one allocation in
4363         most cases.
4364
4365         * assembly.c (mono_assembly_close): Ditto.
4366
4367         * image.c (mono_image_close): Log trace messages with INFO level.
4368
4369         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4370
4371         * image.c reflection.c: Correct reference counting of image modules.
4372         
4373         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4374         of this function from the image mempool.
4375         
4376         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4377         to allow more cached types to be used.
4378
4379         * mono-debug.c (mono_debug_add_method): Appled patch from
4380         David S. Miller  <davem@sunset.davemloft.net>: Access 
4381         minfo->lexical_blocks[] entry elements using read32().
4382
4383 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4384
4385         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4386         methods as it is allocated from the mempool.
4387
4388         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4389         image mempool.
4390
4391         * metadata-internals.h: Add comments describing the reference counting scheme
4392         used for MonoImage and MonoAssembly.
4393
4394         * image.c assembly.c reflection.c: Rework reference counting of images and 
4395         assemblies so they are freed when the runtime is shut down. Free some 
4396         additional memory structures when an image is unloaded.
4397         
4398 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4399
4400         * class.c loader.c reflection.c: Allocate more data structures in
4401         the image mempool.
4402
4403 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4404
4405         * icall.c
4406         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4407         build on pre glib 2.4 systems.
4408
4409 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4410
4411         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4412
4413         * icall.c: Fix some warnings.
4414
4415 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4416
4417         * culture-info-table.h : regenerated.
4418
4419 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4420
4421         * threads.c, object-internals.h, verify.c: changed the culture caching
4422         code to use a normal MonoArray for storage so the GC can keep track of
4423         them easily. Fixed bits of the cache logic, too and simplified the
4424         code.
4425
4426 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4427
4428         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4429         thread for non-Boehm GCs.
4430
4431 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4432
4433         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4434         needed to keep track of the data for static fields.
4435
4436 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4437
4438         Fix #75172
4439         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4440         for interface classes.  Use 'num_methods' instead.
4441         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4442         before using '->vtable_size' field.
4443
4444 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4445
4446         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4447         doesn't contain managed pointers, so use a normal hashtable.
4448
4449 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4450
4451         * reflection.c, class-internals.h, domain.c: fixed handling of types
4452         used as values for objects in custom attributes (bug #77915):
4453
4454 2006-03-24  Martin Baulig  <martin@ximian.com>
4455
4456         * class.c (mono_class_setup_fields): Added support for generic
4457         instances; fixes #77580.
4458
4459 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4460
4461         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
4462
4463 2006-03-24  Dick Porter  <dick@ximian.com>
4464
4465         * file-io.c (get_file_attributes): More stat macro breakage.
4466         Fixes bug 77759.
4467
4468 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4469
4470         * profiler.c: added the file=filename option in the default profiler
4471         to output the profile data to filename.
4472
4473 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4474
4475         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4476         bug #77877.
4477
4478 2006-03-22  Martin Baulig  <martin@ximian.com>
4479
4480         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4481         allocated `MonoClassField *' in `fb->handle'.
4482
4483 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4484
4485         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4486         allocate interface ID to save memory and allow better ID reuse on
4487         appdomain unload. setup_generic_vtable () removal from Martin.
4488
4489 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4490
4491         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4492         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4493         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4494         write barriers for reference stores with managed objects accessed with
4495         C structures in the runtime and in embedding programs.
4496
4497 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4498
4499         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4500         'interface_id' and 'max_interface_id' fields of MonoClasses
4501         representing open generic types.
4502
4503 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4504
4505         * object.h, object.c, icall.c: added functions to deal with
4506         storing valuetypes that contain references in managed objects.
4507         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4508         fixes and comments around uses of mono_array_addr ().
4509
4510 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4511
4512         * object.h, icall.c, monitor.c: object.GetHashCode ()
4513         implementation that supports the moving garbage collector.
4514
4515 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4516
4517         * icall.c, threads-types.h, threads.c: implemented finalizer for
4518         LocalDataStoreSlot.
4519
4520 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4521
4522         * metadata.c (mono_type_size): Add a fixme.
4523         (mono_type_stack_size): Ditto.
4524
4525         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4526         'type_forwarders' field.
4527
4528         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4529         attribute from net 2.0.
4530
4531         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4532         from class.c.
4533
4534         * class.c (mono_class_setup_fields): Fix a warning.
4535         
4536         * class.c (mono_class_from_name): Add support for assemblyref entries
4537         in the EXPORTEDTYPE table.
4538
4539         * reflection.c: Add support for handling type forwarders under net 2.0.
4540
4541         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4542         
4543 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4544
4545         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4546         overwriting entries in ModuleBuild->types, also clean up the code
4547         a little. Fixes #77774.
4548
4549 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4550
4551         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4552         load friend assembly info when present.
4553
4554 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4555
4556         Fix crasher on gtest-158.cs.
4557         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4558         the return value if the MonoClass we want is yet in an
4559         inconsistent state.
4560         * class.c (mono_class_create_from_typedef): Add an comment
4561         explaining an order dependency between mono_class_setup_parent and
4562         mono_class_setup_mono_type.
4563
4564 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
4565
4566         * class.c: documentation updates and events bug fix.
4567
4568 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4569
4570         * class.c: some cleanup, locking fixes.
4571
4572 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
4573
4574         * class.c: fix the generics code to setup nested
4575         type info to the instantiated type (bug #77770).
4576
4577 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4578
4579         * marshal.c: fixed a few type correctness issues.
4580
4581 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4582
4583         * loader.c: the Set/Get/Addrtess array methods should be public.
4584
4585 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
4586
4587         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
4588         
4589         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
4590         info->wrapper.
4591
4592 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
4593
4594         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
4595
4596         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
4597
4598         * mempool.c (mono_mempool_alloc): Speed this up a bit.
4599         (mono_mempool_alloc0): Ditto.
4600
4601 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4602
4603         * socket-io.c:
4604         (create_object_from_sockaddr): it was allocating 4 extra bytes
4605         for the AF_UNIX data. Fixes bug #77747.
4606
4607 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
4608
4609         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
4610
4611 2006-03-09  Dick Porter  <dick@ximian.com>
4612
4613         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
4614         Fixes bug 76966 again.
4615
4616 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
4617
4618         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
4619         names from r57532
4620         * appdomain.c: Bumped corlib version to 48 (due to r57532)
4621
4622 2006-03-07  Martin Baulig  <martin@ximian.com>
4623
4624         * object.c
4625         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
4626
4627 2006-03-07  Martin Baulig  <martin@ximian.com>
4628
4629         * class.c
4630         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
4631         regression introduced in r56970; see gtest-252.cs.
4632
4633         * loader.c (mono_get_method_constrained): Correctly handle generic
4634         methods; see gtest-253.cs.
4635
4636 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
4637
4638         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
4639
4640 2006-03-04  Martin Baulig  <martin@ximian.com>
4641
4642         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
4643         compute the parent type at runtime, just like we're already doing
4644         it for interfaces.
4645
4646         * reflection.c
4647         (mono_reflection_bind_generic_parameters): Don't compute the
4648         parent type anymore.
4649
4650         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
4651
4652 2006-03-04  Martin Baulig  <martin@ximian.com>
4653
4654         * mono-debug-debugger.h
4655         (mono_debugger_create_notification_function): Allocate memory at
4656         runtime and return a pointer to it.
4657
4658 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
4659
4660         * assembly.c: Fix windows build.
4661         
4662         * assembly.c: Fix build.
4663
4664         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
4665
4666         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
4667         
4668 2006-03-03  Dick Porter  <dick@ximian.com>
4669
4670         * process.c
4671         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4672         Check parameters before dereferencing them.  Fixes Aaron's part of
4673         bug 77393.
4674
4675 2006-03-03  Raja R Harinath  <rharinath@novell.com>
4676
4677         Fix performance regression.
4678         * loader.c (find_method_in_class): Add 'from_class' argument.
4679         Rename 'klass' argument to 'in_class'.  The signature is compared
4680         against the method in 'in_class', and the corresponding method is
4681         returned from 'from_class'.
4682         (find_method): Walk both 'in_class' and 'from_class' in parallel.
4683         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
4684         type definition and generic instantiation in parallel.
4685         (mono_get_method_constrained): Update to changes.
4686
4687 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
4688
4689         * threads.c: make sure the domain is correct, too when doing
4690         mono_thread_attach ().
4691
4692 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
4693
4694         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
4695         windows. Fixes #77683.
4696
4697 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
4698
4699         * object.h, *: introduced specific way to set elements of an array
4700         of references to be used as write barrier. Still need to audit the
4701         uses of mono_array_addr.
4702
4703 2006-03-01  Miguel de Icaza  <miguel@novell.com>
4704
4705         * object-internals.h: New field to cache the assmebly name, patch
4706         from Tambet Ingo (tambet@ximian.com)
4707
4708 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4709
4710         * decimal.h, class-internals.h, metadata-internals.h,
4711         file-io.h: mark a few function declarations as internal, to
4712         reduce the number of PLT entries.
4713
4714 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4715
4716         * file-io.c: fix typo in warning message.
4717
4718 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
4719
4720         * loader.c: on unix, lookup the "*A" version of a function
4721         if charset is auto as a second option before failing.
4722
4723 2006-02-28  Raja R Harinath  <rharinath@novell.com>
4724
4725         * class.h (mono_class_inflate_generic_method): Revert to two
4726         argument version.
4727         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
4728         (mono_class_inflate_generic_method_full): Add.
4729         * class.c (mono_class_inflate_generic_method_full): Rename from
4730         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
4731         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
4732         * loader.c, reflection.c: Update to changes.
4733
4734 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
4735
4736         * icall.c: const fixes and small improvements.
4737
4738 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4739
4740         * threadpool.c: for asynchronous connect(), enable the same workaround
4741         for BSD 6 as for the Mac. Fixes bug #77637.
4742
4743 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
4744
4745         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
4746         formatted classes. Fixes #77524.
4747
4748 2006-02-24  Raja R Harinath  <rharinath@novell.com>
4749
4750         * class.c (inflate_generic_type): Add a couple more
4751         micro-optimizations.
4752         (inflate_generic_context): Don't use the 'gmethod' from
4753         'inflate_with'.
4754         (mono_class_inflate_generic_method): If the method has generic
4755         parameters, but the passed-in context doesn't have a 'gmethod',
4756         create one.  Use the possibly simplified generic instantiation
4757         from the declaring class instead of the one passed in.
4758
4759 2006-02-24  Raja R Harinath  <harinath@gmail.com>
4760
4761         Make generic method signature and method header handling lazy.
4762         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
4763         (inflate_generic_header): Likewise.
4764         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
4765         parameter to avoid inflating types.
4766         (mono_get_inflated_method): Empty out.
4767         * class.h (mono_class_inflate_generic_method): Update to changes.
4768         * loader.c (mono_get_method_from_token): Don't parse signature for
4769         generic methods, nor methods of generic classes.
4770         (mono_method_signature): Rename from 'mono_method_signature'.
4771         Inflate signature on demand.
4772         (mono_method_get_header): Inflate method header on demand.
4773         * reflection.c: Update to changes.
4774
4775 2006-02-23  Raja R Harinath  <rharinath@novell.com>
4776
4777         * metadata.c (mono_metadata_inflate_generic_inst): If the
4778         instantiation is closed, don't bother expanding it in the new
4779         context.
4780         * class.c (inflate_generic_class): If the generic instantiation
4781         doesn't change after inflation, return the argument itself.
4782         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
4783         Add bounds checks.
4784         (inflate_generic_context): If neither the generic class nor the
4785         generic method instantiations change, return the original context.
4786         * reflection.c (mono_method_get_object): Do
4787         'mono_get_inflated_method' before accessing the ->klass field.
4788         (inflate_mono_method): Don't create a MonoGenericMethod unless
4789         necessary.
4790         (inflate_method): Don't pass a constructed type as the declaring
4791         type of a methodbuilder.
4792
4793 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
4794
4795         * object.c: fix memory overwrite.
4796
4797 2006-02-22  Dick Porter  <dick@ximian.com>
4798
4799         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
4800         it doesn't work any more.
4801         (mono_threads_request_thread_dump): Fix unused variable warnings.
4802
4803 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4804
4805         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
4806         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
4807         the public header file.
4808
4809 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
4810
4811         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
4812
4813 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
4814
4815         * class-internals.h, object.c: reduce the size of MonoVTable
4816         and store the interface_offsets array at negative offsets.
4817
4818 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
4819
4820         * metadata.c: tweak table descriptors data structures to reduce
4821         size and runtime relocations.
4822
4823 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4824
4825         * marshal.c: fix some types and opcodes to be type-safe
4826         in marshaling wrappers.
4827
4828 2006-02-21  Ankit Jain  <jankit@novell.com>
4829
4830         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
4831
4832 2006-02-21  Raja R Harinath  <rharinath@novell.com>
4833
4834         * metadata.c (get_constraints): Relax debugging checks for monodis.
4835
4836 2006-02-21  Ankit Jain  <jankit@novell.com>
4837
4838         * metadata.c (mono_metadata_load_generic_params): Move the code
4839         checking for ambiguous generic params from here to mono/dis/get.c
4840         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
4841
4842 2006-02-21  Raja R Harinath  <harinath@gmail.com>
4843
4844         Fix assertion triggered when compiling nemerle.
4845         * class.c (mono_get_shared_generic_inst): Rename from
4846         get_shared_inst and make non-static.
4847         * loader.c (mono_get_shared_generic_method): New.  Used to create
4848         the MonoGenericContext-equivalent of a MonoGenericContainer.
4849         (mono_get_method_from_token): Initialize the 'context' field of
4850         the created MonoGenericContainer.
4851         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
4852         * metadata.c (get_constraints): Add sanity check.
4853         * class-internals.h: Add new internal methods.
4854
4855         * reflection.c (verify_safe_for_managed_space): New sanity check.
4856         Currently checks that owner-less generic parameters aren't allowed
4857         in managed space.
4858         (mono_type_get_object): Use it.
4859         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
4860         that are now in mono_type_get_object.
4861         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
4862
4863 2006-02-19  Raja R Harinath  <harinath@gmail.com>
4864
4865         * metadata.c (mono_type_create_from_typespec): Rename from
4866         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
4867         argument and caching of types in the generic container.
4868         (unwrap_arrays, find_generic_param): Remove.
4869         * metadata-internals.h: Update.
4870         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
4871
4872 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
4873
4874         * class.c (mono_class_get_exception_for_failure): Fix a warning.
4875
4876         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
4877         return values. Fixes #77581.
4878
4879         * class.c (mono_fnptr_class_get): Switch name and name_space.
4880
4881         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
4882         classes and add support for [In, Out] attributes.
4883         (mono_marshal_free_asany): Ditto. Fixes #77524.
4884
4885 2006-02-18  Raja R Harinath  <harinath@gmail.com>
4886
4887         * class.c (mono_class_from_generic_parameter): Make more robust to
4888         incomplete MonoGenericContainers from monodis.
4889
4890 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4891
4892         * class-internals.h: added some more exception types.
4893         * class.c, metadata.c: added a few checks to handle missing
4894         types.
4895
4896 2006-02-17  Raja R Harinath  <rharinath@novell.com>
4897
4898         Use owner-less generic-params some more.
4899         * class.c (my_mono_class_from_generic_parameter): Remove.
4900         (mono_class_from_generic_parameter): Handle null image,
4901         param->name and param->owner.
4902         (mono_class_from_mono_type): Update.
4903         (mono_class_create_from_typespec): Remove 'container' parameter.
4904         If that parameter is non-null, the result is always inflated by
4905         'mono_class_get_full' anyway.
4906         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
4907         parameter.
4908         (mono_class_get_full): Update.
4909
4910         * class.c (inflate_generic_type) [GENERICINST]: If the generic
4911         instance is not open, don't bother inflating.
4912         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
4913         parse metadata for inflated classes.
4914         (_mono_class_get): Change GenericContext* parameter to
4915         GenericContainer*.
4916         (mono_class_create_from_typespec): Likewise.  Simplify, and
4917         implement trivially.  All the cases are handled in
4918         mono_class_from_mono_type.  Don't inflate returned class.
4919         (mono_class_get_full): Delegate GENERICINST optimization to
4920         inflate_generic_type.
4921         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
4922
4923 2006-02-16  Dick Porter  <dick@ximian.com>
4924
4925         * socket-io.c (create_object_from_sockaddr): Fix typo.
4926         (create_sockaddr_from_object): Check array lengths before
4927         potentially accessing items off the end.
4928         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
4929         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
4930         (ves_icall_System_Net_Sockets_Socket_Send_internal)
4931         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
4932         length checks to avoid wraparound overflows.
4933         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
4934         contents of the array of sockets
4935         (hostent_to_IPHostEntry2)
4936         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
4937         Check return value of inet_ntop ().
4938         (addrinfo_to_IPHostEntry): Fix typo
4939
4940 2006-02-16  Raja R Harinath  <rharinath@novell.com>
4941
4942         Type metadata parsing doesn't use generic-instantiation information.
4943         * metadata.c (mono_metadata_parse_array_full): Change
4944         MonoGenericContext* parameter to MonoGenericContainer*.
4945         (mono_metadata_parse_type_full): Likewise.
4946         (mono_type_create_from_typespec_full): Likewise.
4947         (mono_metadata_parse_mh_full): Likewise.
4948         (mono_metadata_parse_generic_inst): Likewise.
4949         (do_mono_metadata_parse_generic_class): Likewise.
4950         (do_mono_metadata_parse_type): Likewise.
4951         * metadata-internals.h: Update to changes.
4952         * class.c (mono_class_find_enum_basetype): Likewise.
4953         (mono_class_setup_fields): Likewise.
4954         (mono_class_create_from_typespec): Likewise.
4955         * loader.c (method_from_methodspec): Likewise.
4956         (mono_get_method_from_token): Likewise.
4957         (mono_method_get_header): Likewise.
4958
4959 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4960
4961         * marshal.c: handle additional GENERICINST case (patch from
4962         Thong Nguyen <tum@veridicus.com>).
4963         Fix a few cases where LDIND_I/STIND_I was used for references.
4964
4965 2006-02-16  Raja R Harinath  <rharinath@novell.com>
4966
4967         * reflection.c (mono_reflection_get_token): Remove unused variable.
4968
4969 2006-02-16  Martin Baulig  <martin@ximian.com>
4970
4971         * reflection.c (mono_reflection_get_token): Add support for fields
4972         in instantiated generic types.
4973
4974         * icall.c
4975         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
4976
4977 2006-02-15  Martin Baulig  <martin@ximian.com>
4978
4979         * icall.c
4980         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
4981         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
4982         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
4983         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
4984
4985 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
4986
4987         * class.c, metadata.c, metadata.h, object.c, icall.c,
4988         marshal.c: changed mono_type_get_underlying_type () to do
4989         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
4990         Fixed handling of instantiated generic valuetypes (bug #75479).
4991
4992 2006-02-15  Raja R Harinath  <rharinath@novell.com>
4993
4994         * metadata.c (mono_metadata_decode_signed_value): Simplify.
4995         Delegate to mono_metadata_decode_value, and work on the returned value.
4996
4997         * icall.c (ves_icall_MonoType_GetGenericArguments):
4998         Add consistency check here too.
4999         
5000 2006-02-15  Ankit Jain  <jankit@novell.com>
5001
5002         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
5003         char/short etc.
5004
5005 2006-02-15  Ankit Jain  <jankit@novell.com>
5006
5007         * metadata.c (mono_metadata_decode_signed_value): New function to decode
5008         signed values, used only for representing lower bounds of arrays.
5009         (mono_metadata_parse_array_full): Use new
5010         mono_metadata_decode_signed_value to decode lower bounds.
5011
5012 2006-02-14  Martin Baulig  <martin@ximian.com>
5013
5014         * reflection.c
5015         (mono_reflection_get_token): Support "MonoGenericMethod" and
5016         "MonoGenericCMethod" and allow generic instances / methods.
5017
5018 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
5019
5020         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
5021         to obtain the terminal size using an ioctl.
5022
5023         * object.c (mono_nullable_init): Revert this as nullable reference
5024         types are not valid.
5025         (mono_nullable_box): Ditto.
5026
5027 2006-02-09  Dick Porter  <dick@ximian.com>
5028
5029         * threads.c (mono_thread_detach): Drop a reference to the thread
5030         we're detaching.
5031
5032 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
5033
5034         * object.c (mono_nullable_init): Handle nullable reference types.
5035         (mono_nullable_box): Ditto. Fixes #77446.
5036
5037 2006-02-07  Martin Baulig  <martin@ximian.com>
5038
5039         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
5040
5041 2006-02-07  Ankit Jain  <jankit@novell.com>
5042
5043         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
5044         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
5045         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
5046         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
5047         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
5048         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
5049
5050 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
5051
5052         * class.c (mono_class_create_generic): Set type_token as well.
5053
5054         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
5055         compatible with MS.
5056
5057 2006-02-02  Martin Baulig  <martin@ximian.com>
5058
5059         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
5060         has never been used so far.
5061
5062 2006-02-02  Martin Baulig  <martin@ximian.com>
5063
5064         * mono-debug-debugger.h: Changed comment at the top of this file;
5065         the header is not installed, but it's safe to #include it from
5066         within the JIT.
5067
5068         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
5069         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
5070
5071 2006-02-02  Martin Baulig  <martin@ximian.com>
5072
5073         * mono-debug.h
5074         (MonoSymbolTable): Removed the `metadata_info' field.
5075
5076         * mono-debug.c
5077         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
5078
5079         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5080         (mono_debugger_add_builtin_types): Removed.
5081         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
5082         (mono_debugger_create_notification_function): We now operate on a
5083         pre-allocated area; take a `gpointer' and return `void'.
5084
5085         * mono-debug-debugger.c
5086         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
5087         (mono_debugger_add_builtin_types): Removed.
5088
5089 2006-02-02  Martin Baulig  <martin@ximian.com>
5090
5091         * threads.c (mono_debugger_create_all_threads): New public method.
5092
5093 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5094
5095         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
5096         breaks on several platforms.
5097
5098 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
5099
5100         * assembly.c: the VS.NET build doesn't supply default values for
5101         MONO_ASSEMBLIES and MONO_CFG_DIR.
5102
5103 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
5104
5105         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
5106         helper function.
5107
5108         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
5109
5110         * loader.c (method_from_memberref): Fix a warning.
5111
5112         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
5113
5114         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
5115         with explicit layout. Fixes #77433.
5116
5117 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
5118
5119         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
5120         max_interface_id is initialized before using it. Fixes #77398.
5121         (ves_icall_Type_GetInterfaces): Ditto.
5122
5123 2006-01-30  Raja R Harinath  <rharinath@novell.com>
5124
5125         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5126         allocate memory for parameter attributes when parsing memberref
5127         signatures.
5128         * loader.c (mono_loader_set_error_method_load): Don't warn.
5129         (method_from_memberref): Ensure MissingMethodException gets thrown
5130         if method is not found.  Make warning more informative.
5131
5132 2006-01-29  Raja R Harinath  <harinath@gmail.com>
5133
5134         Fix #77397
5135         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
5136         return true if is byref.
5137         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5138         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
5139         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
5140
5141 2006-01-27  Raja R Harinath  <rharinath@novell.com>
5142
5143         Fix tests/find-method.2.il
5144         * loader.c (find_method, find_method_in_class): Remove is_inflated
5145         argument.  Revert 2006-01-18 change.
5146         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
5147         is generic, search for method in its generic definition.
5148         * class.c (mono_class_setup_vtable_general): Print generic
5149         arguments of generic types in debugging printf.
5150
5151 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
5152
5153         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
5154
5155         * threads.c (mono_threads_request_thread_dump): New helper function.
5156
5157 2006-01-25  Raja R Harinath  <rharinath@novell.com>
5158
5159         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
5160
5161 2006-01-25  Ankit Jain  <jankit@novell.com>
5162
5163         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
5164         move definition to ..
5165         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
5166         
5167 2006-01-25  Ankit Jain  <jankit@novell.com>
5168             Raja R Harinath  <rharinath@novell.com>
5169
5170         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
5171         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
5172         as necessary.
5173
5174 2006-01-25  Martin Baulig  <martin@ximian.com>
5175
5176         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
5177         `MonoDebuggerThread' into debug-debugger.c.
5178
5179 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
5180
5181         * profiler.c: fix printing of data.
5182
5183 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
5184
5185         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
5186           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
5187
5188 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5189
5190         * object.c: fix deadlock related to string interning.
5191
5192 2006-01-23  Martin Baulig  <martin@ximian.com>
5193
5194         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5195
5196         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
5197
5198 2006-01-23  Martin Baulig  <martin@ximian.com>
5199
5200         * mono-debug.h: Moved the prototypes of some functions which are
5201         used by the JIT here from mono-debug-debugger.h.
5202
5203 2006-01-21  Martin Baulig  <martin@ximian.com>
5204
5205         * Makefile.am: Don't install mono-debug-debugger.h.
5206
5207 2006-01-21  Martin Baulig  <martin@ximian.com>
5208
5209         * mono-debug-debugger.h: Enforce the private status of this header
5210         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
5211         Moved some stuff from mono-debugger-jit-wrapper.h here.
5212
5213 2006-01-20  Raja R Harinath  <rharinath@novell.com>
5214
5215         * class.c (mono_class_from_typeref): Add a sanity test to help
5216         catch lack of assembly load/search hooks.
5217
5218 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
5219
5220         * marshal.c (emit_struct_conv): Relax the fields with same offset
5221         check even more. Fixes #77230.
5222
5223 2006-01-18  Martin Baulig  <martin@ximian.com>
5224
5225         * loader.c (find_method_in_class): Added `gboolean is_inflated'
5226         argument; if false, we compare the uninstantiated signatures.
5227         (method_from_memberref): Compare the uninstantiated signatures;
5228         fixes #76417.
5229
5230 2006-01-18  Robert Jordan  <robertj@gmx.net>
5231
5232         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
5233         Clear the weak link. Fixes bug #77170.
5234
5235         * gc.c (mono_gchandle_free):
5236         Reflect *-gc.c changes (tiny optimization).
5237
5238 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
5239
5240         * metadata.c (mono_metadata_signature_dup): Applied patch from
5241         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
5242         Fixes #77288.
5243
5244 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
5245
5246         * marshal.c (emit_struct_conv): Allow fields with the same offset when
5247         marshalling from native to managed code. Fixes #77230.
5248
5249 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5250
5251         * threadpool.c: fix problem (Mac only) when more than one asynchronous
5252         connect. Fixes bug #77020.
5253
5254 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5255
5256         * class.c: fixed id assignement for nested interfaces (bug #77275).
5257         Added also better info for --print-vtable debugging.
5258
5259 2006-01-12  Martin Baulig  <martin@ximian.com>
5260
5261         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
5262         interfaces on-the-fly; fixes #76625.
5263
5264         * class-internals.h
5265         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
5266         don't need that anymore.
5267
5268 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5269
5270         * socket-io.c
5271         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5272         To avoid initing the nested_classes when not needed I turned the
5273         PeerCredData as a toplevel internal class, as it has to be shared
5274         anyways. 
5275
5276         Fixes the CASA issue.
5277
5278 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
5279
5280         * domain.c: Accessors for MonoJitInfo
5281
5282         * profiler-private.h: Add jitinfo to the end jit hook
5283
5284         * profiler.[ch]: Define new hooks, called after jitting which give
5285         the MonoJitInfo that was compiled
5286
5287 2006-01-10  Martin Baulig  <martin@ximian.com>
5288
5289         * class.c (mono_class_setup_events): Add support for generic
5290         classes; fixes #76440.
5291
5292 2006-01-06  Raja R Harinath  <rharinath@novell.com>
5293
5294         Fix #77160.
5295         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
5296         on passed-in method.
5297
5298 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5299
5300         * object.c (mono_runtime_invoke_array): Add Nullable support.
5301
5302         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
5303
5304 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
5305
5306         * file-io.c: Don't consider sockets as directory and avoid an endless
5307         loop. Fix bug #76966.
5308
5309 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5310
5311         * object.c (mono_nullable_init): New helper function.
5312         (mono_nullable_box): Ditto.
5313
5314         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
5315
5316         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
5317
5318         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
5319         
5320 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
5321
5322         * class.c (mono_class_is_assignable_from): Make T assignable to 
5323         Nullable<T>.
5324
5325 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5326
5327         * appdomain.c: Bump corlib version to 46.
5328         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5329         serialization purpose) and changed ves_icall_System_Reflection_
5330         Assembly_get_code_base signature to accept a boolean (to escape, or 
5331         not, the assembly code base).
5332
5333 2005-12-23  Dick Porter  <dick@ximian.com>
5334
5335         * icall.c: 
5336         * threads-types.h: 
5337         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5338         CreateEvent icall now returns "created" boolean parameter.
5339
5340 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5341
5342         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5343         #76967.
5344
5345         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5346         when attr_klass is an interface. Fixes #77045.
5347
5348 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5349
5350         * marshal.c (emit_struct_conv): Fix previous patch.
5351         
5352         * marshal.c (emit_struct_conv): Add a check for fields with the same
5353         offset.
5354
5355 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5356
5357         Fix regression in Mono.C5.
5358         * class.c (mono_class_create_generic): If 'klass' is an interface
5359         set up the interface offsets.
5360         (mono_class_is_assignable_from): Don't throw away generic arguments.
5361
5362 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5363
5364         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5365         type parameters.
5366
5367 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5368
5369         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5370         dead store.
5371         (do_mono_metadata_parse_generic_class): Don't pass the current
5372         generic context when parsing the type being instantiated: it
5373         cannot use it, anyway.
5374
5375         * loader.c (method_from_memberref): Don't inflate a signature if
5376         it doesn't contain any type parameters.
5377
5378 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5379
5380         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5381
5382 2005-12-14  Martin Baulig  <martin@ximian.com>
5383
5384         * class.c
5385         (mono_type_get_name_recurse): Don't return null for type
5386         parameters and open generic classes.
5387         (mono_class_setup_methods): Don't exclude generic instances.
5388         (mono_get_unique_iid): Use different IDs for different
5389         instantiations of the same generic type.
5390         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5391         open generic instances; create a normal vtable for closed generic
5392         instances.
5393         (mono_class_setup_vtable_general): We're now also called for
5394         closed generic instances.
5395
5396         * reflection.c
5397         (mono_reflection_bind_generic_parameters): Correctly use
5398         mono_metadata_lookup_generic_inst() everywhere.
5399
5400 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5401
5402         * object.c (mono_class_create_runtime_vtable): Call 
5403         mono_class_setup_vtable ().
5404
5405         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5406         function.
5407         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5408         #76959.
5409
5410         * loader.c (mono_loader_set_error_type_load): Print the type load
5411         warnings to the console so they are more visible to the user.
5412         (mono_loader_set_error_method_load): Ditto.
5413
5414         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5415         is still broken.
5416         
5417         * reflection.c (ensure_runtime_vtable): Fix build.
5418
5419         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5420         doesn't work in all cases.
5421
5422 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5423
5424         * object.c (mono_array_new_full): Treat a single dimensional array
5425         with 0 lower bounds as an szarray. Fixes #76973.
5426
5427         * reflection.c (custom_attr_visible): Really fix this.
5428
5429 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5430
5431         * reflection.c (custom_attr_visible): Allow nested public attributes
5432         as well.
5433
5434         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5435         interface check.
5436
5437 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5438
5439         * class.c (set_generic_param_owner): Delete.
5440         (mono_class_create_from_typedef): Don't set ->owner field of
5441         generic parameters to "param containers" of enclosing classes.
5442         * reflection.c (mono_reflection_initialize_generic_parameter):
5443         Likewise.
5444
5445 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5446
5447         * reflection.c (custom_attr_visible): Fix build.
5448
5449 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5450
5451         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5452         private attributes.
5453         
5454         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
5455         handling of null parameter defaults.
5456
5457 2005-12-09  Raja R Harinath  <rharinath@novell.com>
5458
5459         * class.c (mono_class_from_generic_parameter): Don't set
5460         klass->generic_container.
5461         (my_mono_class_from_generic_parameter): Likewise.
5462
5463 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
5464
5465         * reflection.c (load_public_key): Fix a warning.
5466         (method_encode_code): Fix unaligned accesses.
5467
5468 2005-12-07  Martin Baulig  <martin@ximian.com>
5469
5470         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5471
5472         * reflection.c
5473         (write_generic_param_entry): Encode our custom attrs.
5474
5475         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5476
5477 2005-12-07  Martin Baulig  <martin@ximian.com>
5478
5479         * reflection.c (encode_new_constraint): Removed; we don't use the
5480         `NewConstraintAttribute' anymore.
5481
5482 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5483
5484         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5485         not fire a TypeResolve event when Assembly.GetType () is called.
5486
5487 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5488
5489         Beginning of support for nullable types in the runtime. Parts of
5490         this patch are from Martin.
5491
5492         * appdomain.c (MONO_CORLIB_VERSION): Bump
5493
5494         * domain.c (mono_init_internal): get the nullable type
5495
5496         * class.c (mono_class_is_nullable): New method
5497         (mono_class_get_nullable_param): New mehod
5498         (mono_class_create_generic): In types T? set cast_class to T
5499
5500         * class-internals.h (MonoDefaults): new nullable default class
5501         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5502         new methods.
5503
5504 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5505
5506         * metadata.c (select_container): New.  Refactor code to select the
5507         appropriate GenericContainer given the type of generic parameter
5508         we are looking for.
5509         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5510         not a MonoGenericContext.  Use select_container.  Update parameters.
5511         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5512         and MONO_TYPE_MVAR.
5513         (unwrap_arrays): Remove duplicate tests.
5514         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5515         generic instantiated class to find any arguments that are generic
5516         parameters.
5517         (mono_type_create_from_typespec_full): Use find_generic_param to
5518         avoid evicting some generic instantiations from the typespec
5519         cache.
5520
5521 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5522
5523         * reflection.c: fixed writing of doubles on ARM FPA.
5524
5525 2005-12-02  Robert Jordan  <robertj@gmx.net>
5526
5527         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5528
5529 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5530
5531         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5532         least on SUSE 10 they are not the same (on debian, they are just the
5533         same thing).
5534
5535 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5536
5537         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5538         DeclaringType for VARs and MVARs.
5539         * class.c (set_generic_param_owner): Fix initialization of owner
5540         fields.
5541
5542 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5543
5544         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5545
5546 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5547
5548         * threadpool.c: workaround for a bug that shows up on the Mac:
5549         select()+connect() on a blocking socket is not like it should
5550         be, so we proceed to connect() in that case, wasting the I/O
5551         threadpool thread until connect succeedes. Fixes bug #75436.
5552
5553 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5554
5555         * threadpool.c: fix typo when setting file descriptor states.
5556
5557 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5558
5559         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5560         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5561         create a temporary signature container.
5562         (mono_metadata_parse_generic_param): Update to changes.
5563         (mono_type_create_from_typespec_full): Update to changes.
5564         * loader.c (method_from_memberref): Don't use a
5565         MonoGenericContainer while parsing a memberref signature.
5566         (method_from_methodspec): Remove dead-store of the 'container'
5567         variable.  It's overwritten before use.
5568
5569         * metadata.c (mono_type_create_from_typespec_full): Make debugging
5570         checks tighter.
5571         (mono_metadata_parse_generic_param): Likewise.
5572         * loader.c (find_method_in_class): Does not need a
5573         MonoGenericContainer.  Use 'mono_method_signature' rather than
5574         'mono_method_signature_full'.
5575         (find_method, mono_get_method_constrained, method_from_memberref):
5576         Update to changes.
5577
5578         * metadata.c (mono_type_create_from_typespec_full): Ensure that
5579         owner-less generic-parameters are never evicted from the typespec
5580         cache.
5581
5582         * loader.c (method_from_memberref): Don't use the current context
5583         when parsing signatures.
5584         (method_from_methodspec, mono_get_method_from_token): Update to changes.
5585
5586         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
5587         side-effects in g_assert.
5588         * loader.c (mono_get_method_from_token): Resolve klass earlier so
5589         that we don't potentially lose information.
5590
5591 2005-11-26  Dick Porter  <dick@ximian.com>
5592
5593         * icall.c:
5594         * threads.c: icalls to implement basic (ie, not named)
5595         System.Threading.Semaphore.
5596
5597 2005-11-24  Dick Porter  <dick@ximian.com>
5598
5599         * process.c
5600         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5601         Use GetProcessId() if it's available.
5602
5603 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
5604
5605         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
5606
5607 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5608             Ankit Jain  <jankit@novell.com>
5609
5610         * loader.c (mono_get_method_from_token): Initialize 'method' field
5611         of all generic parameters before parsing the signature.  Remove
5612         code that "fixed"-up MVAR references.
5613
5614 2005-11-23  Ankit Jain  <jankit@novell.com>
5615
5616         * metadata.c (mono_metadata_has_generic_params):
5617         (mono_metadata_load_generic_param_constraints):
5618         (mono_metadata_load_generic_params): Move duplicate code ...
5619         (mono_metadata_get_generic_param_row): ... here. Returns the
5620         first row-id in GenericParam table for a given owner (token).
5621         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
5622         prototype.
5623
5624 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5625             Ankit Jain  <jankit@novell.com>
5626
5627         * metadata.c (mono_metadata_class_equal): Pass signature_only when
5628         comparing VARs too.
5629         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
5630         type->data.generic_param only if the type is an MVAR.
5631         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
5632         leak owner-less VARs and MVARs into managed space.
5633
5634 2005-11-21  Martin Baulig  <martin@ximian.com>
5635
5636         * class-internals.h
5637         (MonoMethod): Moved the `generic_container' here from
5638         `MonoMethodNormal' since we now also need it for
5639         `MonoMethodPInvoke';
5640         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
5641         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
5642         an union containing both `MonoMethodNormal' and
5643         `MonoMethodPInvoke'.
5644
5645         * loader.c
5646         (mono_get_method_from_token): Allow implementing generic methods
5647         as interncalls.
5648
5649         * threads.c
5650         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
5651         icall.
5652
5653 2005-11-17  Dick Porter  <dick@ximian.com>
5654
5655         * icall.c: 
5656         * process.h: 
5657         * process.c: Split the Process Start_internal icall into
5658         ShellExecuteEx_internal and CreateProcess_internal, which are
5659         called depending on whether UseShellExecute is true.  Fixes bug
5660         76670.
5661
5662         * appdomain.c (MONO_CORLIB_VERSION): Incremented
5663
5664 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
5665
5666         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
5667         'msize' parameters, use the information in 'mspec' instead.
5668         (emit_object_to_ptr_conv): Ditto.
5669
5670         * marshal.c (emit_struct_conv): Handle explicit layout structs with
5671         fields out of order. Fixes #76733.
5672
5673 2005-11-17  Ankit Jain  <jankit@novell.com>
5674
5675         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
5676
5677 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
5678
5679         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
5680           bug #76575.
5681
5682 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5683
5684         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
5685         for types with non-auto layout. Fixes #76717.
5686
5687 2005-11-16  Ankit Jain  <jankit@novell.com>
5688
5689         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
5690         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
5691         if generic_context is null.
5692           (mono_metadata_generic_param_equal): param->owner can be null.
5693           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
5694         null.
5695
5696 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5697
5698         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
5699         the correct value.
5700
5701 2005-11-15  Martin Baulig  <martin@ximian.com>
5702
5703         * object.c (set_value): Use mono_class_from_mono_type() instead of
5704         the hack for generic instances; fixes #76136.
5705
5706 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
5707
5708         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
5709         fields.
5710
5711         * image.c (load_metadata_ptrs): Initialize the new fields.
5712
5713         * reflection.c (create_dynamic_mono_image): Ditto.
5714
5715         * reflection.c (build_compressed_metadata): Use the new fields.
5716
5717         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
5718         icall.
5719
5720         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
5721         icall.
5722         
5723 2005-11-15  Ankit Jain  <jankit@novell.com>
5724             Raja R Harinath  <harinath@gmail.com>
5725
5726         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
5727         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
5728         new per-generic_container cache if the cached MonoType's context matches
5729         the current context.
5730           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
5731         to the expected context.
5732           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
5733
5734 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5735
5736         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
5737         we changed the signature of an icall.
5738         * icall.c: Modify to mono_double_ParseImpl return true/false 
5739         depending on the success, instead of throwing the exception. This will
5740         help us in Double.TryParse methods.
5741         
5742 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
5743
5744         * marshal.c (emit_marshal_object): Throw an exception when
5745         marshalling 'object' instead of crashing. Fixes #76696.
5746
5747 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5748
5749         * class-internals.h: Add prototype for mono_type_get_full_name ().
5750
5751 2005-11-11  Dick Porter  <dick@ximian.com>
5752
5753         * threads.c (mono_thread_manage): Make sure the main thread has
5754         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
5755
5756 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5757
5758         * loader.c (mono_loader_set_error_type_load): Log a warning to the
5759         console about the missing type.
5760         (mono_loader_set_error_method_load): Ditto.
5761
5762 2005-11-09  Miguel de Icaza  <miguel@novell.com>
5763
5764         * mono-config.c (mono_get_config_dir): Set the system defaults if
5765         none is specified.
5766
5767         * assembly.c (mono_set_dirs): New API entry point to set the
5768         assembly and the config directory in one call
5769
5770 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
5771
5772         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
5773         the ftnptr was created from a delegate in a domain other than the
5774         current domain. Fixes #75377.
5775
5776         * exception.h exception.c: Add mono_get_exception_not_supported ().
5777
5778 2005-11-08  Martin Baulig  <martin@ximian.com>
5779
5780         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
5781
5782 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
5783
5784         * security-manager.h: Added definitions to deal with strongname key 
5785         pairs bigger (and smaller) than 1024 bits.
5786         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
5787         adjust wrt the public key length being used.
5788
5789 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
5790
5791         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
5792           Windows build (r51396-51397).
5793
5794 2005-11-03  Martin Baulig  <martin@ximian.com>
5795
5796         * class.c (mono_class_setup_vtable_general): Also add generic
5797         methods to the vtable; fixes #76581.
5798
5799 2005-11-01  Miguel de Icaza  <miguel@novell.com>
5800
5801         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
5802         sure that we lookup GetString method from the System.Text.Encoding
5803         class, not the derived class or we get an empty method.
5804
5805         Fixed class #76612.
5806
5807 2005-10-25  Miguel de Icaza  <miguel@novell.com>
5808
5809         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
5810         if it has been previously set (embedders). 
5811
5812         Make mono_set_rootdir available also on Unix.
5813
5814 005-10-24  Robert Jordan  <robertj@gmx.net>
5815
5816         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
5817
5818 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
5819
5820         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
5821         only calls which are made to native code use this flag.
5822
5823         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
5824
5825 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
5826
5827         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
5828         Add support for FieldBuilders.
5829
5830 2005-10-29  Martin Baulig  <martin@ximian.com>
5831
5832         * mono-debug.c
5833         (mono_debug_using_mono_debugger): New public method; returns
5834         whether we're running inside the debugger.
5835
5836 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
5837
5838         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
5839         for Method/Constructor/FieldBuilders.
5840
5841 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
5842
5843         * reflection.c (module_add_cattrs): Save custom attributes for global methods
5844         and fields as well.
5845
5846 2005-10-26  Martin Baulig  <martin@ximian.com>
5847
5848         * mono-debug-debugger.c
5849         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
5850
5851 2005-10-24  Raja R Harinath  <harinath@gmail.com>
5852
5853         * icall.c (base64_to_byte_array): Don't pass an out-of-range
5854         integer to isspace.
5855
5856 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
5857
5858         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
5859         when passing valuetypes byref. Fixes #76502.
5860
5861 2005-10-19  Jackson Harper  <jackson@ximian.com>
5862
5863         * profiler.c: Don't put a . in front of types that are not in a
5864         namespace.
5865
5866 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
5867
5868         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
5869
5870 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
5871
5872         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
5873         #76436.
5874         (mono_marshal_get_ldflda_wrapper): Fix a warning.
5875
5876 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5877
5878         * assembly.c metadata-internals.h icall.c: Define an additional
5879         parameter for mono_assembly_name_parse_full, so we can avoid creating
5880         S.R.AssemblyName.Version when no version info wasn't passed.
5881         
5882 2005-10-09  Miguel de Icaza  <miguel@novell.com>
5883
5884         * class.c (mono_type_get_full_name): Reimplement method that was
5885         removed. 
5886
5887         * image.c: Some docs
5888
5889 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
5890
5891         * profiler.c (output_newobj_profile): Fix printing of Total memory
5892         on x86.
5893
5894 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5895
5896         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
5897
5898 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
5899
5900         * threads.c: remove debug output.
5901
5902 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5903
5904         * threads.c (mono_thread_manage): Fix crashes if more than 64
5905         threads need to be aborted. Hopefully fixes #75899.
5906
5907         * assembly.c (mono_stringify_assembly_name): New helper function.
5908
5909         * class.c: Use mono_stringify_assembly_name instead of the similar
5910         static function.
5911
5912         * assembly.h assembly.c: Add support for calling a postload search 
5913         hook if an assembly cannot be loaded.
5914
5915         * appdomain.c: Register new search hooks which call the AssemblyResolve
5916         events in AppDomain. Fixes #75231
5917
5918 2005-10-07  Martin Baulig  <martin@ximian.com>
5919
5920         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
5921         methods without debug info.
5922
5923 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
5924
5925         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
5926         wrappers.
5927
5928 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5929
5930         * file-io.c: now that we return symlinks, use lstat and, when the file
5931         is a symbolic link, stat, to get the file attributes. Also avoid the
5932         conversion to/from utf16/external.
5933
5934 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
5935
5936         * class.c (mono_class_layout_fields): Compute klass->has_references
5937         correctly if an embedded valuetype is not yet initialized. Fixes
5938         #76331.
5939
5940 2005-10-04  Martin Baulig  <martin@ximian.com>
5941
5942         * metadata.c
5943         (mono_metadata_load_generic_param_constraints): New public
5944         function; splitted the constraints loading out from
5945         mono_metadata_load_generic_params().
5946
5947         * class.c (mono_class_create_from_typedef): Call
5948         mono_metadata_load_generic_param_constraints() after setting up
5949         the type and creating our parent; fixes #75329.
5950
5951 2005-10-04  Martin Baulig  <martin@ximian.com>
5952
5953         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
5954         non-dynamic parent classes.
5955
5956 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
5957
5958         * file-io.c : win32 build fix (ETXTBSY seems not found).
5959
5960 2005-10-04  Martin Baulig  <martin@ximian.com>
5961
5962         * reflection.c
5963         (mono_image_get_methodspec_token): Make the cache actually work;
5964         fixes #75974.
5965
5966 2005-10-04  Martin Baulig  <martin@ximian.com>
5967
5968         * class.c (mono_class_name_from_token): Removed the unneccessary
5969         `MonoGenericContext *' argument.
5970
5971 2005-10-04  Martin Baulig  <martin@ximian.com>
5972
5973         * loader.c
5974         (method_from_methodspec): Make the caching work again; fixes the
5975         performance regression from #76262.
5976
5977 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5978
5979         * file-io.c:
5980         * file-io.h:
5981         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
5982         GetFileSystemEntries that performs the same work but without going
5983         into io-layer, locking, etc.
5984
5985 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
5986
5987         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
5988         ThreadState_Stopped as well. Fixes #76047.
5989
5990 2005-09-29  Martin Baulig  <martin@ximian.com>
5991
5992         * class.c
5993         (inflate_generic_context): If the new context has a `gmethod', set
5994         its `container' that that gmethod's `container'.
5995
5996         * metadata.c
5997         (mono_metadata_parse_generic_param): Simplify things;
5998         `generic_container = generic_context->container;' is just fine.
5999
6000         * loader.c (method_from_methodspec): Code cleanups.
6001
6002 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
6003
6004         * decimal.c: fix warning (and let gcc generate correct
6005         code on ARM with optimizations).
6006
6007 2005-09-28  Martin Baulig  <martin@ximian.com>
6008
6009         * loader.c
6010         (method_from_memberref): Added `MonoGenericContext *class_context'
6011         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
6012         (method_from_methodspec): If we're a memberref, use the enclosing
6013         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
6014
6015 2005-09-28  Martin Baulig  <martin@ximian.com>
6016
6017         * object.c (mono_runtime_invoke_array): Added support for
6018         MONO_TYPE_GENERICINST; fixes #75917.
6019
6020 2005-09-27  Martin Baulig  <martin@ximian.com>
6021
6022         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
6023         `k->byval_arg.type' to determine the actual type.
6024
6025         * loader.c (method_from_methodspec): Removed some hacks.
6026
6027 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
6028
6029         * class-internals.h (mono_field_is_deleted): Do the test for
6030         rtspecialname before we check the actual name of the field. This
6031         prevents us from dereferencing a pointer into the string table,
6032         saving us from accessing a few pages
6033
6034         * *.c: Replace the use of {Enter,Leave}CriticalSection with
6035         macros. This will allow a deadlock debugger to easily be plugged
6036         in.
6037
6038 2005-09-27  Martin Baulig  <martin@ximian.com>
6039
6040         * loader.c (method_from_methodspec): Create a "signature"
6041         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
6042
6043 2005-09-27  Martin Baulig  <martin@ximian.com>
6044
6045         * class.c
6046         (inflate_generic_class): Correctly set the new context's
6047         container.
6048
6049         * loader.c
6050         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
6051         instead of a `MonoGenericContext *'.
6052         (mono_method_signature_full): Take a `MonoGenericContainer *'
6053         instead of a `MonoGenericContext *'.
6054
6055         * metadata.c
6056         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
6057         instead of a `MonoGenericContext *'.
6058         (mono_metadata_parse_method_signature_full): Likewise.
6059
6060 2005-09-26  Martin Baulig  <martin@ximian.com>
6061
6062         * class.c
6063         (mono_class_from_generic_parameter): Set `klass->generic_container'
6064         (mono_class_from_generic_parameter): Likewise.
6065         (mono_bounded_array_class_get): We inherit the generic container
6066         from the element class.
6067
6068         * loader.c
6069         (find_method, find_method_in_class): Take a `MonoGenericContext *'
6070         argument rather than computing it here.
6071         (method_from_memberref): Correctly set the generic context before
6072         parsing the signature.  Fixes #75681.
6073
6074 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
6075
6076         * object.c (mono_class_has_special_static_fields): Fix warnings.
6077
6078 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6079
6080         * assembly.c: Add parse_public_key function, to
6081         par the public keys. Also added mono_assembly_name_parse_full,
6082         to define it the parsed key should be freed or not.
6083         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
6084         to parse a long format assembly name.
6085         * metadata-internals.h: Keep mono_assembly_name_parse_full as
6086         private, since calling it to preserve the key requires
6087         freeing it manually.
6088         
6089 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
6090
6091         * locales.c : removed HAVE_ICU part.
6092
6093 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
6094
6095         * object.c (mono_class_create_runtime_vtable): Avoid calling 
6096         field_is_special_static if the klass has no special static fields.
6097
6098         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
6099         (MonoCachedClassInfo): Likewise.
6100
6101         * object.c (mono_class_has_special_static_fields): New helper function.
6102
6103 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6104
6105         * class.c (mono_class_create_from_typedef): Don't call 
6106         interfaces_from_typedef_full for enums.
6107         (mono_class_create_from_typedef): Compute the base types of enums directly
6108         without calling mono_class_setup_fields ().
6109         (mono_class_find_enum_basetype): New helper function.
6110
6111         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
6112         one place inside the string heap.
6113         
6114 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
6115
6116         * class.c: locking fixes, code cleanups, some docs added.
6117         Allocate some data structures in the image mempool.
6118
6119 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6120
6121         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6122         the example code.
6123         
6124 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
6125
6126         * class-internals.h, class.c, reflection.c: reduce memory taken by
6127         MonoClass.
6128
6129 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
6130
6131         * metadata.c, metadata.h, loader.h: documentation updates, code and
6132         API cleanups.
6133
6134 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6135
6136         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6137         the example code.
6138
6139         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
6140         page faults caused by the runtime while reading metadata.
6141
6142 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6143
6144         * socket-io.c: the field names were changed 3 months ago and no one
6145         realized until bug #76077 got filed!
6146
6147 2005-09-20  Martin Baulig  <martin@ximian.com>
6148
6149         * icall.c (assembly_icalls): Removed some unused debugger icalls.
6150
6151 2005-09-20  Martin Baulig  <martin@ximian.com>
6152
6153         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
6154         write the rank into the class entry.
6155
6156 2005-09-20  Martin Baulig  <martin@ximian.com>
6157
6158         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
6159
6160 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
6161
6162         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6163
6164         * icall.c (custom_attrs_defined_internal): New icall.
6165
6166         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
6167         function.
6168         (mono_custom_attrs_construct_by_type): New helper function.
6169
6170 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
6171
6172         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
6173         terminate the resulting string. Fixes #76123.
6174
6175 2005-09-16  Martin Baulig  <martin@ximian.com>
6176
6177         * mono-debug.c
6178         (mono_debug_add_method): Ignore inflated methods for the moment.
6179
6180 2005-09-14  Martin Baulig  <martin@ximian.com>
6181
6182         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
6183
6184 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
6185
6186         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
6187         return a success/failure indication.
6188         (mono_metadata_interfaces_from_typedef_full): Ditto.
6189         (get_constraints): Ditto.
6190
6191 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
6192
6193         * marshal.c (emit_marshal_array): Fix handling of null arrays.
6194         
6195         * marshal.c (emit_marshal_array): Add support for returning string
6196         arrays from delegates. Fixes #76063.
6197
6198         * marshal.c: Use the emit_ldloc/stloc macros where possible.
6199
6200 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
6201
6202         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
6203         icall.
6204
6205 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
6206
6207         * reflection.c icall.c: Fix after mono_get_exception_type_load
6208         signature change.
6209
6210         * assembly.c (mono_assembly_get_assemblyref): New helper function.
6211         (mono_assembly_load_reference): Use the new helper.
6212
6213         * class-internals.h (MonoLoaderError): New structure containing 
6214         information about type loading errors.
6215
6216         * class-internals.h loader.c: Add APIs to store per-thread loader
6217         error information.
6218
6219         * loader.c class.c: Set the loader error if needed.
6220
6221         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
6222
6223 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
6224
6225         * decimal.c: fixed to handle the broken ARM fp format.
6226
6227 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
6228
6229         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
6230         broken.
6231
6232 2005-09-06  Martin Baulig  <martin@ximian.com>
6233
6234         * domain.c (supported_runtimes): Added v2.0.50727.
6235
6236 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
6237
6238         * culture-info.h: reduce the size of some structures.
6239
6240 2005-09-05  Martin Baulig  <martin@ximian.com>
6241
6242         Reflect latest API changes in the August CTP.
6243
6244         * icall.c
6245         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
6246         ("MonoType.HasGenericArguments"): Removed.
6247         ("MonoMethod.BindGenericParameters"): Renamed to
6248         "MakeGenericMethod".
6249         ("MethodBuilder.BindGenericParameters"): Renamed to
6250         "MakeGenericMethod".    
6251
6252 2005-09-05  Martin Baulig  <martin@ximian.com>
6253
6254         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
6255
6256 2005-09-05  Martin Baulig  <martin@ximian.com>
6257
6258         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6259
6260         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
6261         generic_container is non-NULL.
6262
6263 2005-09-05  Martin Baulig  <martin@ximian.com>
6264
6265         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6266
6267         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
6268
6269 2005-08-29  Michal Moskal  <malekith@nemerle.org>
6270
6271         * reflection.c (encode_locals,
6272         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
6273         for large generic types.
6274
6275 2005-09-05  Martin Baulig  <martin@ximian.com>
6276
6277         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6278
6279         * class.c (mono_dup_array_type): New public method.
6280         (mono_metadata_signature_deep_dup): New public method.
6281         (dup_type): Correctly duplicate array and function types.
6282
6283 2005-09-05  Martin Baulig  <martin@ximian.com>
6284
6285         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6286
6287         * reflection.c (get_default_param_value_blobs): Handle generic types
6288         and generic methods.
6289
6290 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
6291
6292         * class.c: Fixed error reporting (method/class were inversed) for 
6293         inheritance demands.
6294         * security-manager.c|h: Added the AppDomain when calling the managed
6295         System.Security.SecurityManager.InheritanceDemand method.
6296
6297 2005-09-01  Raja R Harinath  <rharinath@novell.com>
6298
6299         * reflection.c (encode_marshal_blob): 'marshaltype' and
6300         'marshaltyperef' are alternate sources for the custom marshaler
6301         name.
6302
6303 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
6304
6305         * class.c: fix creation of array classes with rank == 1
6306         (patch by Ankit Jain <jankit@novell.com>).
6307
6308 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
6309
6310         * object.c: fix check for creating the bound data for arrays vs
6311         szarrays.
6312
6313 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6314
6315         * object.c: configuration file name is now based on the executable name,
6316         not the image name. Fixes bug #75931.
6317
6318 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
6319
6320         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
6321         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
6322
6323 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
6324
6325         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6326
6327 2005-08-24  Ankit Jain  <jankit@novell.com>
6328             Raja R Harinath  <rharinath@novell.com>
6329
6330         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6331           called by it recursively.
6332           (mono_class_init): Remove special case in pending_init handling, since it's
6333           superseded by the fix to mono_class_from_typeref.
6334
6335 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6336
6337         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6338         BROKEN_THREAD_START stuff.
6339
6340 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6341
6342         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6343         trampoline.
6344
6345         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6346         
6347         * object.c (mono_delegate_ctor): Replace the original function address with
6348         a delegate trampoline.
6349
6350 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6351
6352         * icall.c: add boolean argument to base64_to_byte_array and 
6353         InternalFromBase64String to control whether a whitespace-only string
6354         is allowed (or should casue a FormatException to be thrown). We need
6355         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6356         to match the MS behaviour in both profiles.
6357         * appdomain.c: Bump corlib version.
6358
6359 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6360
6361         This patch implements a big portion of publisher policy
6362         support, used to bind assembly versions and redirect
6363         one assembly from version A to version B.
6364
6365         * assembly.c:
6366         New GSList loaded_assembly_bindings, for storing the cached
6367         assembly bindings.
6368         (assembly_binding_maps_name): New static function for checking if a 
6369         assembly binding information maps an assembly name.
6370         (mono_assembly_binding_info_free): New function for freeing
6371         assembly binding information resources.
6372         (get_publisher_policy_info): New static function for retrieving 
6373         assembly binding information from a MonoImage.
6374         (compare_versions): New static function for comparing an assembly
6375         binding information data and the version of an assembly name.
6376         (check_policy_versions): New static function for checking if an
6377         assembly binding info mapping an assembly name is valid for it.
6378         (mono_assembly_load_publisher_policy): New static function for
6379         loading the 'policy.major.minor.MyAssembly' image for an assembly
6380         with an assembly name 'aname'.
6381         (mono_assembly_bind_version): New static function for updating
6382         assembly redirection.
6383         (mono_assembly_apply_binding): New static function for applying
6384         assembly binding.
6385         (search_binding_loaded): New static function for searching 
6386         loaded assembly binding infos in the cache domain.
6387         (mono_assembly_load_full): Don't apply assembly binding for
6388         reflection only assemblies.
6389
6390         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6391         which contains information about assembly binding. Also
6392         declare signature for mono_config_parse_publisher_policy ()
6393         function, used to retrieve pub policy info.
6394         
6395         * mono-config.c:
6396         (publisher_policy_start): New static function used to parse publisher 
6397         policy config files.
6398         (publisher_policy_parser): New static MonoParseHandler containing 
6399         the functions used when parsing config files.
6400         (mono_config_parse_publisher_policy): New function for parsing
6401         publisher policy files.
6402         
6403 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6404
6405         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6406
6407         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6408
6409         * object.c (mono_get_addr_from_ftnptr): New helper function.
6410
6411         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6412
6413         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6414
6415 2005-08-19  Dick Porter  <dick@ximian.com>
6416
6417         * threads.c, threads.h, appdomain.c, appdomain.h,
6418         profiler-private.h, monitor.c, object.c, object-internals.h,
6419         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6420         store the thread ID, so it can hold a 64 bit value if needed.
6421
6422 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6423
6424         * reflection.c (mono_reflection_create_dynamic_method): Store the
6425         handle class into the method references as well so ldtoken works in
6426         dynamic methods.
6427
6428         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6429         types.
6430
6431 2005-08-19  Ankit Jain <jankit@novell.com>
6432
6433         Fix #75847.
6434         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6435           here rather than using the method signature of a arbitrary function
6436           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6437           two arguments.
6438           Hack done with Harinath.
6439
6440 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6441
6442         * threadpool.c: disable printing stack traces when we get a exception
6443         in a threadpool thread. I need to do more testing to figure out which
6444         cases actually print this. Fixes bug #75828.
6445
6446 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6447
6448         * icall.c: there might be ignored whitespace after the last '='. This
6449         fixes length computation and bug #75840.
6450
6451 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6452
6453         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6454         well. Fixes #75809.
6455
6456         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
6457         #75784.
6458         
6459         * reflection.c (create_custom_attr_data): Ditto.
6460
6461 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
6462
6463         * locales.c, culture-info.h : removed RegionLCIDMap.
6464         * culture-info-tables.h : regenerated.
6465
6466 2005-08-16  Martin Baulig  <martin@ximian.com>
6467
6468         * class.c (mono_type_get_name_recurse): Small fix.
6469
6470 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6471
6472         * locales.c : indentation fixie.
6473
6474 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6475
6476         * object-internals.h,
6477           locales.h,
6478           locales.c,
6479           culture-info.h,
6480           icall.c : added RegionInfo table support.
6481         * culture-info-table.h : regenerated for region support.
6482
6483 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6484
6485         * reflection.c (resolve_object): handle all kinds of MonoMethod
6486         including generic ones
6487
6488 2005-08-12  Ankit Jain <jankit@novell.com>
6489
6490         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6491           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6492
6493 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6494
6495         * process.c: Don't close a thread handle when it's NULL. This is a
6496         workaround for bug #75733.
6497
6498 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6499
6500         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6501
6502 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6503
6504         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6505
6506 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6507
6508         * threadpool.c: if a work item in the thread pool has a callback that
6509         catches a exception, don't propagate it after invoking the callback.
6510         Fixes bug #75336.
6511
6512 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6513
6514         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6515
6516         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6517
6518         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6519
6520         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6521
6522 2005-08-03  Ankit Jain  <jankit@novell.com>
6523
6524         Fix #75683.
6525         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6526           PInvoke calling convention is 0.
6527
6528 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6529
6530         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6531         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6532
6533 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6534
6535         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6536         to handle threads not started by the GC (patch by Michael Meeks
6537         <michael.meeks@novell.com>).
6538
6539 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6540
6541         * reflection.c: Make buffer used in emitting types larger for some
6542         big generic types (patch by Michal Moskal).
6543
6544 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6545
6546         * mono-debug.c: Fix some (not all) alignment problems.
6547
6548 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6549
6550         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6551         Invoke mono_image_load_from_data_full passing the refonly
6552         parameter.
6553
6554         * assembly.c
6555         (mono_assembly_open_from_bundle): Add the refonly argument, 
6556         in order to pass it to other methods it calls to.
6557         (do_mono_assembly_open): Add the refonly argument, in order 
6558         to pass it to other methods it calls to.
6559         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6560         the refonly parameter to it.
6561
6562         * image.c: Add loaded_images_refonly_hash and
6563         loaded_images_refonly_guid_hash to cache the reflection
6564         only loaded images.
6565         (mono_images_init): Initialize the hash tables used for
6566         caching the reflection only images.
6567         (load_modules): Invoke mono_image_open_full passing the refonly
6568         parameter to load the modules the correct way.
6569         (build_guid_table): Add the refonly argument, to re-build the 
6570         correct hash table.
6571         (do_mono_image_open): Added the refonly argument, in order to
6572         define it for the loaded image.
6573         (mono_image_loaded_full): New function, which receives an
6574         additional parameter to look for the image in the refonly or
6575         non-refonly section.
6576         (mono_image_loaded): Updated, using mono_image_loaded_full.
6577         (mono_image_loaded_by_guid_full): The same case that happens
6578         with mono_image_loaded_full.
6579         (mono_image_loaded_by_guid): Likewise.
6580         (register_image): Use the ref_only variable inside MonoImage
6581         to decide in which hash table store the current image.
6582         (mono_image_open_from_data_full): Rename
6583         mono_image_open_from_data to mono_image_open_from_data_full,
6584         adding the refonly argument, to define the ref_only variable 
6585         inside MonoImage.
6586         (mono_image_open_from_data): Return 
6587         mono_image_open_from_data_full.
6588         (mono_image_open_full): Rename mono_image_open to
6589         mono_image_open_full, receiving the new refonly argument,
6590         to pass it to inner methods.
6591         (mono_pe_file_open): Update this function, to open
6592         a MonoImage as a non-refonly image.
6593         (mono_image_close): Use the refonly variable inside
6594         MonoImage to remove the image from the correct caches.
6595
6596         * image.h: Add the signatures of mono_image_open_full,
6597         mono_image_open_from_data_full, mono_image_loaded_full,
6598         mono_image_loaded_by_guid_full.
6599
6600         * metadata-internals.h: Add the ref_only field to 
6601         MonoImage.
6602         
6603 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6604
6605         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
6606         Fix the last behavior, which used to load the assemblies and
6607         extract MonoReflectionAssemblyName information, instead of
6608         extract it from the metadata tables. Needed for Reflection
6609         Only assemblies.
6610         
6611 2005-07-29  Martin Baulig  <martin@ximian.com>
6612
6613         * mono-debug-debugger.c
6614         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
6615         not initialized.
6616
6617         * mono-debug.c
6618         (mono_debug_address_from_il_offset): Check whether we have
6619         debugging support before attempting to take the lock.
6620         (mono_debug_source_location_from_address): Likewise.
6621         (mono_debug_source_location_from_il_offset): Likewise.
6622         (mono_debug_il_offset_from_address): Likewise.
6623         (mono_debug_address_from_il_offset): Likewise.
6624
6625 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
6626
6627         * class.c (mono_class_from_name_case): Add support for dynamic images.
6628         Fixes #75650.
6629
6630         * object.c (mono_class_compute_gc_descriptor): Add a workaround
6631         for #75479.
6632
6633 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6634         
6635         * reflection.c (mono_method_get_object): Fix warning.
6636
6637 2005-07-28  Martin Baulig  <martin@ximian.com>
6638
6639         * mono-debug.c
6640         (mono_debug_add_wrapper): Also write the wrapper type.
6641
6642 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6643
6644         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
6645         
6646         * class.c (mono_class_init): Avoid reading nested classes if the AOT
6647         data indicates the class has none.
6648
6649 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
6650
6651         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
6652         loader lock with the debugger lock. Prevents deadlocks for beagle.
6653
6654         Beagle can now run on an smp box for a weekend without any
6655         issues. Woohoo!
6656
6657 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
6658
6659         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
6660         in a module. Fixes #75629.
6661
6662 2005-07-26  Martin Baulig  <martin@ximian.com>
6663
6664         * mono-debug.c (mono_debug_add_wrapper): New static method.
6665         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
6666         interncall or a wrapper.
6667
6668         * mono-debug.h (MonoDebugWrapperData): New public typedef.
6669         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
6670         (MONO_DEBUGGER_VERSION): Bump to 51.
6671
6672         * mono-debug-debugger.c
6673         (mono_debugger_add_type): Removed this empty function.
6674         (mono_debugger_add_method): Likewise.
6675
6676 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
6677
6678         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
6679         before accessing method->slot.
6680
6681 2005-07-21  Jb Evain  <jbevain@gmail.com>
6682
6683         * reflection.c (method_encode_clauses/class): Handle filters clauses.
6684         Fixes #75010.
6685
6686 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
6687
6688         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
6689         #75587.
6690
6691 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
6692
6693         * image.h image.c: Add mono_image_get_guid () API function.
6694
6695 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
6696
6697         There were issues when multiple threads tried to load
6698         assemblies. A deadlock was created between assemblies_mutex and
6699         mono_domain_assemblies_lock. This fixes the issue by making the
6700         assembly ref counting be lock free. See bug 75586.
6701         
6702         * image.c (mono_image_close): The add ref function here was using
6703         Interlocked operations while the unref was using a mutex and a
6704         --. I don't think this was ever a bug that would be exposed in a
6705         non-pendantic way (ie, by an embedder doing a ref on one thread
6706         and an unref on another), but for the sake of correctness, this is
6707         now Interlocked.
6708
6709         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
6710         (mono_assembly_load_reference): Call mono_assembly_addref rather
6711         than touching the refcount ourselves.
6712         (mono_assembly_close): Use InterlockedDecrement to unref the
6713         assembly. Don't acquire the lock unless it is actually needed.
6714
6715 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6716
6717         * class.c (mono_class_layout_fields): Fix calculation of has_references
6718         for generic types.
6719
6720 2005-07-12  Martin Baulig  <martin@ximian.com>
6721
6722         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6723
6724         * metadata.c
6725         (mono_type_hash): Provide better hashing for generic instances.
6726         (mono_generic_inst_hash): Improve hashing.
6727         (mono_generic_class_hash): Likewise.
6728
6729         * reflection.c (mymono_metadata_type_hash): Improve hashing for
6730         generic instances.
6731
6732 2005-07-12  Martin Baulig  <martin@ximian.com>
6733
6734         * reflection.c (mono_reflection_create_runtime_class): Remove the
6735         hack for generic type definitions and non-`Run' assemblies.
6736         (mono_reflection_bind_generic_parameters): Also use
6737         `klass->wastypebuilder' to check for TypeBuilders.
6738
6739 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6740
6741         * class.c (mono_class_layout_fields): Fix calculation of has_references
6742         for generic types.
6743
6744         * class.c (inflate_generic_class): Fix a leak.
6745         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
6746         for generic types.
6747
6748 2005-07-11  Martin Baulig  <martin@ximian.com>
6749
6750         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
6751         on error.
6752
6753 2005-07-11  Martin Baulig  <martin@ximian.com>
6754
6755         * loader.c (find_method): Also lookup in
6756         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
6757
6758 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6759
6760         * appdomain.c (mono_domain_unload): Don't free the error message
6761         before passing it to mono_get_exception_...
6762
6763         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
6764         
6765 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
6766
6767         * threads.c: try to better guess an available RT signal (bug #75387).
6768
6769 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6770
6771         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
6772         and CACHE_OBJECT.
6773
6774 2005-07-07  Martin Baulig  <martin@ximian.com>
6775
6776         * class.c (mono_type_get_name_full): Return NULL for
6777         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
6778         fixes #75408.
6779
6780 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6781
6782         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
6783         exit the appdomain as well being aborted.
6784
6785         * threadpool.c: Create all threadpool threads inside the root appdomain, and
6786         change back to the root domain after calling managed code. This enables
6787         appdomains using threadpools to be unloaded.
6788
6789 2005-07-07  Martin Baulig  <martin@ximian.com>
6790
6791         * class-internals.h
6792         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
6793         into `MonoDynamicGenericClass' since we only need it for dynamic
6794         types.
6795
6796         * reflection.c (mono_class_bind_generic_parameters): We don't need
6797         to compute the `parent' here.
6798
6799 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
6800
6801         * culture-info-table.h : regenerated.
6802
6803 2005-07-06  Martin Baulig  <martin@ximian.com>
6804
6805         * icall.c
6806         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
6807
6808         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
6809
6810 2005-07-06  Martin Baulig  <martin@ximian.com>
6811
6812         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
6813         we're doing a signature-only comparision; fixes #74945.
6814
6815 2005-07-06  Martin Baulig  <martin@ximian.com>
6816
6817         * class-internals.h (MonoGenericClass): Moved some things out into
6818         a new `MonoInflatedGenericClass' type.  
6819         (MonoInflatedGenericClass): New type; the `klass' of a
6820         `MonoGenericClass' is now computed lazyly in
6821         mono_get_inflated_generic_class().      
6822
6823         * class.c (mono_get_inflated_generic_class): New public function.
6824         (mono_class_inflate_generic_method): Removed the unused
6825         `MonoClass *' argument.
6826         (setup_generic_vtable): Don't call mono_get_inflated_method() on
6827         all the methods.
6828         (mono_class_create_generic): Make this static and merge it with
6829         mono_class_create_generic_2(); we're now called automatically from
6830         mono_get_inflated_generic_class().
6831
6832         * loader.c (mono_method_signature): Call
6833         mono_get_inflated_method() here.
6834
6835 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
6836
6837         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
6838         type of fields with RVA.
6839
6840         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
6841         for this pseudo class.
6842         (my_mono_class_from_generic_parameter): Likewise.
6843         (mono_class_init): Allow interfaces to have cctors.
6844
6845 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6846
6847         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
6848         lazily for AOT methods.
6849
6850 2005-07-05  Martin Baulig  <martin@ximian.com>
6851
6852         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
6853         returns FALSE for a successful match, not TRUE.
6854
6855 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6856
6857         * loader.c (mono_method_get_index): Optimize this a bit.
6858
6859 2005-07-04  Martin Baulig  <martin@ximian.com>
6860
6861         * class.c
6862         (class_compute_field_layout): Move the check for generic type
6863         definitions into mono_class_layout_fields().  Fixes #74684.
6864         (mono_class_from_generic_parameter): Correctly compute
6865         `klass->parent'; fixes #75457.
6866
6867         * reflection.c (register_assembly, register_module): Make sure
6868         `domain->rejobject_hash' is already created.
6869
6870 2005-07-02  Martin Baulig  <martin@ximian.com>
6871
6872         * class-internals.h
6873         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
6874         `MonoDynamicGenericClass'.      
6875
6876 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
6877
6878         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
6879         returned by a field getter is null, since null is a valid value.
6880
6881 2005-07-01  Martin Baulig  <martin@ximian.com>
6882
6883         * reflection.c (mono_reflection_generic_class_initialize): Update
6884         the `dgclass->fields [i].parent' to the correct class.
6885         (mono_image_get_fieldref_token): Use the declaring type, not the
6886         reflected type.
6887
6888 2005-07-01  Martin Baulig  <martin@ximian.com>
6889
6890         * loader.c (find_method): Also look in the interfaces; fixes #75429.
6891
6892 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
6893
6894         * threads.c (thread_cleanup): assert that thread != NULL
6895         (wait_for_tids_or_state_change): We were using the wrong variable
6896         when accessing wait->threads. `i' was always out of the bounds of
6897         the array.
6898
6899 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6900
6901         * loader.c: map user32 and kernel32 to libMonoSupportW
6902
6903 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
6904
6905         * appdomain.c (unload_thread_main): Mark this as WINAPI.
6906
6907 2005-06-28  Martin Baulig  <martin@ximian.com>
6908
6909         * loader.c (method_from_methodspec): Fix #75334.
6910
6911 2005-06-28  Martin Baulig  <martin@ximian.com>
6912
6913         Fix #74953 - Arrays now implement the generic IList<T> interface
6914         on the 2.0 platform.
6915
6916         * class-internals.h (MonoDefaults): Added `generic_array_class'.
6917
6918         * reflection.c (mono_class_bind_generic_parameters): New public
6919         function; similar to mono_reflection_bind_generic_parameters(),
6920         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
6921
6922         * domain.c (mono_init_internal): Try to initialize.
6923         `mono_defaults.generic_array_class' here; this'll only succeed if
6924         we're using the 2.0 corlib.
6925
6926         * icall.c
6927         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
6928         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
6929         (mono_lookup_internal_call): Added support for nested classes.
6930
6931         * loader.c
6932         (mono_get_method_from_token): Set `result->signature->pinvoke' if
6933         we're an interncall and have generic arguments.
6934
6935         * class.c
6936         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
6937         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
6938         instance of System.Array.InternalArray<T> for arrays, so they
6939         implement the generic IList<T> interface.
6940
6941 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
6942
6943         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
6944         (chastamar@yahoo.com). Fixes #75374.    
6945
6946 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
6947
6948         * culture-info-table.h: regenerated.
6949
6950 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6951
6952         * icall.c: handle spaces correctly for base64 strings.
6953
6954 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
6955
6956         * *.c: Kill some warnings.
6957
6958 2005-06-23  Duncan Mak  <duncan@novell.com>
6959
6960         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
6961         that this builds on Solaris 10 (x86).
6962
6963 2005-06-23  Martin Baulig  <martin@ximian.com>
6964
6965         * class.c
6966         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
6967         generic type definitions.
6968
6969 2005-06-23  Martin Baulig  <martin@ximian.com>
6970
6971         Fix #75331.
6972
6973         * metadata.c (mono_class_get_overrides): Renamed to
6974         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
6975         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
6976         pass it to mono_get_method_full().
6977
6978 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
6979
6980         * reflection.c (mono_reflection_create_runtime_class): take the
6981         mono_domain_lock in this method. Prevents deadlocks
6982
6983 2005-06-22  Martin Baulig  <martin@ximian.com>
6984
6985         * loader.c (method_from_methodspec): Fix #75330.
6986
6987 2005-06-22  Martin Baulig  <martin@ximian.com>
6988
6989         * reflection.c (type_get_qualified_name): Use
6990         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
6991         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
6992         argument; use it if we don't have an assembly name.
6993
6994 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
6995
6996         * object.c: In mono_message_init, set "copy out" flag for in
6997         parameters with the [Out] flag.
6998
6999 2005-06-21  Martin Baulig  <martin@ximian.com>
7000
7001         * class.c
7002         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
7003         and MONO_TYPE_PTR.
7004
7005 2005-06-21  Martin Baulig  <martin@ximian.com>
7006
7007         * class.c (mono_class_init): Don't initialize `class->fields' for
7008         generic instances since they're initialized again in
7009         compute_field_layout(). 
7010         (compute_field_layout): Set the field's `generic_info' here; fix
7011         #75320. 
7012
7013 2005-06-21  Martin Baulig  <martin@ximian.com>
7014
7015         * class-internals.h
7016         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
7017
7018         * metadata.c (mono_metadata_generic_method_equal): Also
7019         distinguish the `generic_class'; fixes #75334.
7020
7021 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7022
7023         * domain.c:
7024         * appdomain.c:
7025         * domain-internals.h:
7026         * reflection.c: 'domain_assemblies' field is now protected by its own
7027         lock. Don't call into managed code to run the AssemblyLoad event if we
7028         now there are no registered delegates for it.
7029
7030 2005-06-20  Martin Baulig  <martin@ximian.com>
7031
7032         * class.c (mono_class_is_assignable_from): Use a custom version of
7033         mono_class_has_parent() to make things work for generic instances;
7034         fix #75300.
7035
7036 2005-06-20  Martin Baulig  <martin@ximian.com>
7037
7038         * loader.c (method_from_methodspec): Apply a patch from
7039         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
7040
7041 2005-06-20  Martin Baulig  <martin@ximian.com>
7042
7043         * class.c (mono_class_init): Reverted Zoltan's last change; it
7044         breaks generics.
7045
7046 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
7047
7048         * threads.c (wait_for_tids_or_state_change): Add missing locking.
7049
7050 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7051
7052         * socket-io.c: fix the index in the socket array for writable/error
7053         sockets. Fixes bug #75306.
7054
7055 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
7056
7057         * class.c (mono_class_init): Allow interfaces to have static ctors.
7058
7059 2005-06-17  Martin Baulig  <martin@ximian.com>
7060
7061         * loader.c (method_from_methodspec): Use `context->container' when
7062         parsing the `gmethod->inst'.
7063
7064 2005-06-17  Martin Baulig  <martin@ximian.com>
7065
7066         * class.c (mono_type_get_name_recurse): Don't add the assembly
7067         name for type arguments.
7068
7069 2005-06-15  Martin Baulig  <martin@ximian.com>
7070
7071         * reflection.c (mono_image_get_inflated_method_token): Encode
7072         correct klass; fixes #75260.
7073
7074 2005-06-13 Michal Moskal <malekith@nemerle.org>
7075
7076         * icall.c: Make GetCorrespondingMethod/Constructor take
7077         MonoReflectionMethod method not MonoMethod. Removed
7078         MonoType.GetCorrespondingField, and make
7079         MonoGenericType.GetCorrespondingField take name not
7080         MonoClassField.
7081
7082 2005-06-13  Michal Moskal <malekith@nemerle.org>
7083
7084         * reflection.c (field_encode_signature, encode_locals):
7085          Make sizes of buffers for types larger (for big generic types).
7086          (create_generic_typespec,
7087          mono_reflection_sighelper_get_signature_local,
7088          mono_reflection_sighelper_get_signature_field):
7089          Add asserts for too small buffers.
7090
7091 2005-06-15  Martin Baulig  <martin@ximian.com>
7092
7093         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
7094         if our parent is not a dynamic type.
7095
7096 2005-06-15  Martin Baulig  <martin@ximian.com>
7097
7098         * class-internals.h (MonoTypeNameFormat): New enum.
7099
7100         * class.c
7101         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
7102         (mono_type_get_full_name): Removed.
7103         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
7104         argument instead of the boolean's.
7105
7106         * icall.c (ves_icall_System_MonoType_getFullName):
7107         Added `gboolean assembly_qualified'.    
7108
7109         * reflection.h
7110         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
7111
7112         * reflection.c (mono_reflection_parse_type): Parse the new type
7113         name format.
7114
7115 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7116
7117         * icall.c: no need to convert from utf16 to utf8 and then back again
7118         after the call to GetLogicalDrives.
7119
7120 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7121
7122         * icall.c: frombase64. Fix problems exposed by new tests.
7123
7124 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7125
7126         * icall.c: added internal calls for converting char [] and strings in
7127         base64 into byte [].
7128
7129 2005-06-10  Martin Baulig  <martin@ximian.com>
7130
7131         * class.c (mono_class_create_generic_2): Read the nested classes
7132         from the metadata rather than from `gklass->nested_classes' since
7133         `gklass' might not be initialized yet.
7134
7135 2005-06-09  Duncan Mak  <duncan@novell.com>
7136
7137         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
7138         all public headers. Fixes #74919.
7139
7140 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
7141
7142         * domain.c: The key for proxy_vtable_hash is now a pointer
7143         array. Added new GHashFunc and GCompareFunc functions for this.
7144
7145         * class.h: The list of interfaces in MonoRemoteClass is known in
7146         advance and can't grow (we create a new MonoRemoteClass if needed),
7147         so now the interface array can be allocated together with
7148         MonoRemoteClass.
7149         
7150         * object.c: Added a new method create_remote_class_key.
7151         Fixed mono_remote_class so it does not depend on
7152         mono_upgrade_remote_class.
7153         Removed extend_interface_array.
7154         Added new method clone_remote_class(), which makes a copy of a remote
7155         class and adds a new interface or class to it.
7156         mono_upgrade_remote_class() now creates a new remote class (or gets
7157         it from the cache) if an vtable upgrade is needed. In this way
7158         we make sure that other objects sharing the same remote class
7159         don't get the new vtable with unwanted interfaces.
7160         
7161         * object-internals.h:
7162         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
7163         
7164         * marshal.c: Track changes in mono_upgrade_remote_class().
7165
7166 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
7167         * icall.c: Add runtime methods for obtaining members of inflated
7168         class, which were created from supplied non-inflated members. It
7169         is used in internal Get{Method,Constructor,Field} methods in
7170         System.Type
7171
7172 2005-06-09  Martin Baulig  <martin@ximian.com>
7173
7174         * reflection.c
7175         (mono_reflection_bind_generic_method_parameters): Fix #75169.
7176
7177 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7178         * reflection.c (mono_image_basic_init): Define
7179         Version in MonoDynamicAssembly. 
7180         
7181 2005-06-08  Martin Baulig  <martin@ximian.com>
7182
7183         Fix #75136.
7184
7185         * loader.c
7186         (mono_method_signature_full): New public method; takes a
7187         `MonoGenericContext *'.
7188         (find_method): Use mono_method_signature_full() and pass the
7189         klass'es context to it.
7190
7191         * class.c (mono_class_is_inflated_method): Use
7192         mono_method_signature_full() and pass the context to it.
7193
7194 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
7195
7196         * object.c: add proper locking in mono_remote_class_vtable(),
7197         fixes possible memory corruption.
7198
7199 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
7200
7201         * marshal.c (mono_remoting_marshal_init): set
7202         initialized after initialization.
7203
7204 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
7205
7206         * locales.c : hush.
7207
7208 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
7209
7210         * object.c (extend_interface_array): fix really silly
7211         memory corrupting / comparison bug.
7212
7213 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7214
7215         * reflection.c: Functions added to support the creation
7216         of CustomAttributeData, which includes Attribute data
7217         used by ReflectionOnly methods.
7218
7219         * reflection.h:  mono_reflection_get_custom_attrs_data and
7220          mono_custom_attrs_data_construct added (functions exposed).
7221
7222          * icall.c: Added mono_reflection_get_custom_attrs_data
7223          as icall.
7224         
7225 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
7226
7227         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
7228         lupus's request.
7229
7230 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
7231
7232         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
7233
7234         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
7235         dynamic DllImportAttribute.
7236
7237         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
7238         dynamic DllImportAttribute.
7239
7240         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
7241         Fixes #75162.
7242
7243 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7244
7245         * threads.c: avoid segfault when an unstarted thread is aborted.
7246
7247 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
7248
7249         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
7250         Returns the name and version of the runtime for reporting.
7251
7252 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7253
7254         * appdomain.c: bump corlib version.
7255         * object-internals.h: new field in MonoReflectionAssembly.
7256
7257 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7258
7259         * object-internals.h: Carlos forgot to add this field.
7260
7261 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7262
7263         * icall.c: Added create_version to create instances
7264         of Version of MonoReflectionAssemblyName. This change helps
7265         the AssemblyName tests to keep running fine.
7266         
7267 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
7268   
7269         * object.c (mono_method_return_message_restore): A somehow less
7270         intrusive fix for #75138.
7271
7272 2005-06-03  Raja R Harinath  <rharinath@novell.com>
7273
7274         * object.c (mono_method_return_message_restore): Fix computation
7275         of expected number of out args.
7276
7277 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7278
7279         * reflection.c (mono_image_get_method_info): Fix the case when the
7280         charset is empty.
7281
7282 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
7283
7284         * object.c: Added missing null check in
7285           mono_method_return_message_restore.
7286
7287 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7288
7289         * reflection.c (mono_image_get_method_info): Handle the case when
7290         dllentry is empty.
7291
7292 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
7293
7294         * object.c: When creating the vtable for a proxy, take into account
7295         all inherited interfaces, not only the ones registered in
7296         iclass->interfaces. This fixs bug #74996.
7297         Also, in mono_method_return_message_restore, verify that the array
7298         of out args has the expected lengh.
7299
7300 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7301
7302         * socket-io.c: update the timeout in Poll when the call is interrupte.
7303
7304 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7305
7306         * socket-io.c: support abort/suspend in Select_internal after last
7307         change.
7308
7309 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7310
7311         * threadpool.c: remove warning.
7312
7313 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7314
7315         * icall.c:
7316         * socket-io.[ch]: Select_internal uses poll() now when available, thus
7317         removing the 1024 limit from select(). Runtime part of the fix for
7318         bug #71203.
7319
7320 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7321
7322         * socket-io.c: when resolving the addresses for the same
7323         host returned by gethostname(), get the local IPs from the interface
7324         list. Loopback addresses are discarded if the are interfaces up with
7325         non-loopback ones. Fixes bug #63265.
7326
7327 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7328
7329         * appdomain.c, verify.c, object-internals.h, reflection.c:
7330         bumped corlib number to 36, and added new extra_flags field
7331         to ReflectionMethodBuilder and friends.  Fixes #75060.
7332
7333 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7334
7335         * gc.c: register a new weak link only if the object is non-null
7336         (fixes bug#75047).
7337
7338 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7339
7340         * culture-info.h : short time pattern too.
7341
7342 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7343
7344         * culture-info.h : expand long time pattern string length.
7345
7346 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7347
7348         * culture-info-table.h : update (more French date format; #72788).
7349
7350 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7351
7352         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7353         the method is static. Fixes #75029.
7354
7355 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7356
7357         * reflection.c: Update the table_idx field of method builders after
7358         saving the module, since it can change. This is a workaround for
7359         bug #74914. 
7360
7361 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7362
7363         * culture-info-table.h : update (additional French date format).
7364
7365 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7366
7367         * icall.c (ves_icall_type_Equals): Revert last change.
7368         
7369         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7370
7371         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7372
7373 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7374
7375         * class-internals.h: Added executioncontext_class field to 
7376         MonoDefaults structure.
7377         * domain.c: Cache System.Threading.ExecutionContext class in 
7378         mono_defaults.
7379         * object.c: Capture the ExecutionContext for asynchroneous calls in
7380          mono_async_result_new.
7381         * object-internals.h: Added execution_context and original_context 
7382         fields to MonoAsyncResult. Added execution_context to MonoThread.
7383         * security-manager.c|.h: Added mono_get_context_capture_method to 
7384         return the capture method (if required by the security manager or by
7385         the framework version used).
7386         * threadpool.c: Apply capture (if present) ExecutionContext in 
7387         mono_async_invoke and revert to original context after it completes.
7388
7389 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7390
7391         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7392
7393 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7394
7395         * culture-info-table.h : zh-CHT related workaround.
7396
7397 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7398
7399         * marshal.c (emit_marshal_custom): Add some error checking and call the
7400         methods in the ICustomMarshaler interface. Fixes #74875.
7401         
7402         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7403         native->managed wrappers.
7404
7405 2005-05-12  Martin Baulig  <martin@ximian.com>
7406
7407         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7408         here and use the loader lock.
7409
7410         * mono-debug.c: Properly lock when the debugger is not attached.
7411         (mono_debug_init): Release the initial lock if we're not running
7412         in the debugger.
7413
7414 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7415
7416         * marshal.c (emit_marshal_custom): Pass through NULL values without
7417         calling the custom marshalling routines.
7418
7419         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7420         conversion in structures. Fixes #74882.
7421
7422 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7423
7424         * culture-info-table.h : zh-* cultures were missing.
7425
7426 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7427
7428         * threads.c: Added a new event background_change_event which is signaled
7429         when a thread changes its background mode.
7430         Moved here several checks previously done in managed code. The checks
7431         require the thread lock, and using the thread lock in managed code
7432         can result in deadlocks.
7433         Merged Start_internal and Thread_internal into a single method. Now 
7434         Thread_internal does all work of creating and starting a thread.
7435         Added icalls for setting and getting the state of the object. Moved from
7436         managed code to avoid locking there.
7437         Added wait_for_tids_or_state_change() which is called instad of
7438         wait_for_tids when waiting for non-backround threads to end. This method
7439         will return if one of the threads ends or the background_change_event
7440         is signaled.
7441         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7442         the background mode. This method signals the background_change_event
7443         event.
7444         * icall.c:
7445         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7446         removed Start_internal.
7447         
7448 2005-05-11  Martin Baulig  <martin@ximian.com>
7449
7450         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7451         to order of some fields to get proper alignment on 64-bit machines.
7452
7453 2005-05-11  Martin Baulig  <martin@ximian.com>
7454
7455         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
7456         changes as they're broken and completely fuck up the debugger.
7457
7458         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
7459
7460 2005-05-10  Martin Baulig  <martin@ximian.com>
7461
7462         * reflection.c (mono_reflection_generic_class_initialize): Don't
7463         call mono_class_setup_parent() here.
7464
7465 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7466
7467         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7468         send/receive timeout use an integer in milliseconds. We were using a
7469         struct timeval.
7470
7471 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7472
7473         * locales.c:
7474         (internal_get_cultures): reserve the first slot of the array for the
7475         InvariantCulture, which will be filled in managed code.
7476
7477 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7478
7479         * reflection.c (mono_image_fill_module_table): Initialize the
7480         GENERATION field as well.
7481
7482 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7483
7484         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7485         Monitor.Enter on the object.
7486
7487 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7488
7489         * threads.c: Enable the wait for running threads when exiting.
7490         * icall.c: Suspend all threads before exiting.
7491
7492 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7493
7494         * assembly.c (mono_assembly_load_reference): Fix warning.
7495
7496 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7497
7498         * threadpool.c: changed the default number of threads per cpu. From now
7499         on, the default will be 20 + (5 * number of cpus) instead of 50.
7500
7501 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7502
7503         * loader.c (mono_method_get_signature_full): Add locking here.
7504
7505 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7506
7507         * appdomain.c: Moved methods for parsing and freeing assembly
7508         names to assembly.c.
7509         * assembly.c, domain-internals.h: Created public methods for parsing
7510         assembly names. Fixed mono_assembly_load_with_partial_name:
7511         it now finds the best match, taking into account the version,
7512         token and culture specified in the partial name. Also return
7513         the latest version if no version information is specified.
7514
7515 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7516
7517         * threadpool.c: replace check for SocketAsyncCall class.
7518
7519 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7520
7521         * threadpool-internals.h:
7522         * Makefile.am: added threadpool-internals.h
7523
7524         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7525         that happen in threadpool threads (tested on MS).
7526         (mono_thread_pool_remove_socket): new function that dispatch any pending
7527         AIO call on a socket that is closing. By now only epoll really needs it,
7528         as select/poll wake up when the socket closes.
7529
7530
7531         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7532
7533 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7534
7535         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7536
7537 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7538
7539         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7540
7541 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7542
7543         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7544         has an abort request, convert it into a suspend request.
7545
7546 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7547
7548         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7549         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7550         is not supported yet.
7551
7552 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7553
7554         * image.c: register assemblies loaded from data (bundles) in the loaded
7555         assemblies hash. Fixes bug #74772.
7556
7557 2005-04-29  Martin Baulig  <martin@ximian.com>
7558
7559         * class.c (mono_type_get_name_recurse): Update to the new naming
7560         schema from the latest .NET 2.x beta2.
7561         (mono_class_setup_vtable_general): If we're a generic instance,
7562         copy the vtable from our generic type definition and inflate all
7563         the methods in it.
7564
7565         * loader.c (find_method): Update to the new naming schema from the
7566         latest .NET 2.x beta2.
7567
7568 2005-04-29  Raja R Harinath  <harinath@gmail.com>
7569
7570         * class.c (mono_class_init): Add a mono_loader_unlock to the
7571         #74734 fix.
7572
7573 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
7574
7575         * icall.c (ves_icall_System_Environment_Exit): Remove the 
7576         suspend_all_other_threads () call for the time being, since it can hang.
7577
7578         * threads.c (mono_thread_manage): Similarly, disable the waiting for
7579         the background threads to exit, since it can also hang.
7580
7581         * class.c (mono_class_init): Applied patch from Ankit Jain 
7582         (radical@gmail.com). Avoid pending init errors when a field refers
7583         to a nested class using a typeref. Fixes #74734.
7584
7585         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
7586         this for dynamic modules.
7587
7588 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7589
7590         * threads.c: don't wait for threads that are in the process of aborting
7591         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
7592         and waiting for background threads to finish. This makes xsp and
7593         mod-mono-server exit without random length delays and/or hangs.
7594
7595 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7596
7597         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
7598
7599 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
7600
7601         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
7602         dynamic types to prevent infinite loops. Fixes #74727.
7603
7604         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
7605         ..._is_assignable_to.
7606
7607 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
7608
7609         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
7610
7611 2005-04-25  Martin Baulig  <martin@ximian.com>
7612
7613         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
7614
7615         * domain.c
7616         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
7617
7618         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
7619
7620         * reflection.c (build_compressed_metadata): Set metadata header
7621         version to 2.0.
7622
7623 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
7624
7625         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
7626         number into an integral and a decimal part. Fixes #70473.
7627
7628         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
7629
7630 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
7631
7632         * culture-info-table.h : reflected the latest locale-builder output.
7633
7634 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7635
7636         * threadpool.c: check for SuspendRequested too when deciding if
7637         mono_thread_interruption_checkpoint should be called.
7638
7639 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7640
7641         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
7642         * threads.c: remove interruption_mutex and use Interlocked instead. When
7643         suspending all the threads, wait for all the suspended events at once.
7644         If we're shutting down and get an APC that is going to be queued,
7645         call mono_thread_execute_interruption immediately, as the thread might
7646         be sleeping on a pthread condition or mutex.
7647
7648         * icall.c: call mono_runtime_set_shutting_down before suspending the
7649         threads.
7650
7651         Fixes bug #74693. And now xsp is happier when exiting.
7652
7653 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
7654
7655         * loader.c (mono_stack_walk): Fix #74690.
7656
7657 2005-04-22  Martin Baulig  <martin@ximian.com>
7658
7659         * mono-debug.h (MonoDebugMethodJitInfo): Added
7660         `MonoDebugMethodJitInfo *jit'.
7661
7662         * mono-debug.c (mono_debug_read_method): Cache the
7663         MonoDebugMethodJitInfo in `address->jit'.
7664         (mono_debug_free_method_jit_info): New public method.
7665
7666 2005-04-22  Martin Baulig  <martin@ximian.com>
7667
7668         * class.c (mono_class_is_assignable_from): Disallow
7669         type parameter -> interface.
7670
7671 2005-04-21  Dick Porter  <dick@ximian.com>
7672
7673         * threads.c (mono_thread_create): Turn an assertion into an error.
7674
7675 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
7676
7677         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
7678         
7679         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
7680         Fix some gcc 4.0 warnings.
7681
7682 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
7683
7684         * file-io.c: fix alt dir separator char on unix systems
7685         and cleanup (fixes bug #71214).
7686
7687 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
7688
7689         * marshal.c: Use CALLVIRT instead of CALL when dispatching
7690         a call to a remote domain, since the method may be an
7691         interface method in the client domain. This fixes bug #74192.
7692
7693 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7694
7695         * threadpool.c: recv/send are now performed before going back to managed
7696         code to save one transition.
7697
7698 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7699
7700         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
7701
7702         * metadata/threadpool.c: removed hack to workaround the bug above.
7703
7704         Fixes bug #74618.
7705
7706 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
7707
7708         * reflection.c reflection.h: Fix handling of parameter defaults in
7709         dynamic methods. Also fixes handling of parameter attributes.
7710         Fixes #74609.
7711
7712         * mono-debug.c (mono_debug_close_image): Fix warning.
7713
7714 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7715
7716         * socket-io.h: replaced old unused field with new 'blocking'.
7717         * threadpool.c: restore socket blocking state on windows(tm).
7718
7719 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
7720
7721         * icall.c: don't return the codebase in the AssemblyName[] returned by
7722         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
7723         * object-internals.h: Removed FIXME (fields were presents) and fixed
7724         versioncompat declaration.
7725
7726 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7727
7728         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
7729         not closed, so don't cleanup when it happens.
7730
7731 2005-04-13  Chris Toshok  <toshok@ximian.com>
7732
7733         * mono-debug-debugger.h: change prototype for
7734         mono_debugger_lookup_type.
7735
7736         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
7737         this function, although it should probably be named
7738         mono_debugger_init_type.
7739
7740 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7741
7742         * threadpool.c: fix non-AIO case.
7743
7744 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
7745
7746         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
7747         the built-in profiler to measure just JIT compilation times.
7748
7749 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7750
7751         * threadpool.c: the epollfd might be closed by another thread at
7752         any time, so ignore EBADF at treat it as a "we're closing" sign.
7753
7754 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7755
7756         * threadpool.c: release the semaphores with a count equals to the number
7757         of working threads in both IO and regular pools. Fixed typo that messed
7758         up the count of IO pool threads. Don't initialize the pipe handles if
7759         we're using epoll.
7760
7761 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7762
7763         * threadpool.c: some systems don't like a NULL when deleting the socket
7764         from epoll.
7765
7766 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7767
7768         * threadpool.c: fix semaphore allocation.
7769
7770 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7771
7772         * threadpool.c: added epoll() based implementation for asynchronous IO
7773         that is used instead of the default poll() when available.
7774         It can be disabled by setting MONO_DISABLE_AIO.
7775
7776 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7777
7778         * threadpool.c: windows needs 'closesocket' and instead of returning
7779         0 when the stream is closed while in select, it returns -1. Fixes bug
7780         #74573.
7781
7782 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
7783
7784         * class.c (class_compute_field_layout): Fix the regression caused by
7785         the previous try.
7786
7787 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7788
7789         * threadpool.c: separate pool for socket async. IO.
7790         * threadpool.h: mono_max_worker_threads is not a global any more.
7791
7792 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
7793
7794         * class.c (class_compute_field_layout): Fix #74549.
7795
7796 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7797
7798         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
7799         use 2 connected sockets instead.
7800
7801 2005-04-08  Miguel de Icaza  <miguel@novell.com>
7802
7803         * mono-config.c: Add new entry point for mkbundle
7804         mono_config_parse_memory. 
7805
7806 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7807
7808         * threadpool.c: removed another unused function.
7809
7810 2005-04-08  Ankit Jain  <radical@corewars.org>
7811
7812         * reflection.c (get_default_param_value_blobs): Add 'types'
7813         parameter to get the types encoded in the constant table.
7814         (mono_param_get_objects): Use the type from the constant table,
7815         not the type of the parameter, when creating default values.
7816         Handle null default values correctly.
7817
7818 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7819
7820         * file-io.c:
7821         * file-io.h:
7822         * threadpool.c:
7823         * threadpool.h:
7824         * icall.c:
7825         * socket-io.c: removed dead code for async IO.
7826
7827 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7828
7829         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
7830
7831         * threadpool.c: intercept socket async. calls and pass them to a thread
7832         that is polling and dispatching the job items to the threadpool as
7833         socket become ready. Fixes bugs #71217, #71933.
7834
7835         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
7836         between char and short/ushort arrays.
7837
7838         * socket-io.c: remove dead code.
7839
7840 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7841
7842         * locales.c,
7843           icall.c : removed InternalToUpper_Comp() and
7844           InternalToLower_Comp().
7845
7846 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7847
7848         * char-conversions.h : The tables were incorrectly generated. Should
7849           be generated against invariant culture.
7850
7851 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
7852
7853         * object.c (mono_runtime_invoke_array): Fix return value when 
7854         passing pre-created valuetype objects to ctors.
7855
7856         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
7857         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
7858         Fixes #74338.
7859
7860 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
7861
7862         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
7863         only used with --security and hides the wrong corlib version error.
7864
7865 2005-03-30  Joshua Tauberer  <tauberer@for.net>
7866
7867         * class.c: Changed mono_class_name_from_token so that types
7868         outside of a namespace don't have an initial period.  Improved
7869         the g_warning message used in _mono_class_get when loading
7870         fails.
7871         * assembly.c: In mono_assembly_load_reference, when an assembly
7872         can't be found, "No such file or directory" is misleading and
7873         unhelpful because a few paths were checked for the presence of
7874         the assembly.  When that happens (ENOENT), display a nicer
7875         message indicating the directories that were searched.  In all
7876         cases, the warning is made easier to read for non-hackers.
7877
7878 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
7879
7880         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
7881         project/solution.
7882         * appdomain.h|domain.c: Removed inline from functions.
7883         * appdomain.c: Reduced warnings when compiling on windows.
7884         * icall.c: Fixed output_debug declaration to gunichar2*.
7885         * mono-config.c: Reduced warnings when compiling on windows.
7886         * rand.c: Added missing "windows.h". Added missing return value.
7887         * rawbuffer.c: Added missing winsock2.h for windows.
7888         * sysmath.h: Added mono-compiler.h header to allow/ease 
7889         compilation with non-GCC compilers.
7890         * threads.c: Fixed declarations to compile with VS.NET C compiler.
7891         Removed cast warnings.
7892
7893         Adapted from the work of J Lothian (for VC6).
7894
7895 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
7896
7897         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
7898         from default_path.
7899
7900 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
7901
7902         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
7903         the 2.0 profile.
7904
7905 2005-03-27  Raja R Harinath  <harinath@gmail.com>
7906
7907         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
7908         has to be in $(exec_prefix).  $(prefix) is for arch-independent
7909         stuff, and it would probably use $(prefix)/share rather than
7910         $(prefix)/lib.
7911
7912 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7913
7914         * console-io.c: added 2 includes that might be missing.
7915
7916 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
7917
7918         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
7919         profile.
7920
7921         * reflection.c (create_custom_attr): Allocate the params array using
7922         alloca so it gets GC tracking.
7923
7924 2005-03-23  Chris Toshok  <toshok@ximian.com>
7925
7926         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
7927         out some spew.
7928
7929 2005-03-24  Raja R Harinath  <rharinath@novell.com>
7930
7931         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
7932         changes to pick up any changes in prefix, etc.
7933
7934 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7935
7936         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
7937         
7938         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
7939         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
7940
7941 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7942
7943         * class-internals.h object-internals.h class.c reflection.c: Extend the
7944         mono_lookup_dynamic_token () function to return the class of the
7945         token as well. 
7946
7947         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
7948         well. Fixes #73848.
7949
7950 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
7951
7952         * security-manager.c: Skip inheritance checks for intra-corlib
7953         class inheritance and method overrides. This skips a lot of checks
7954         and (anyway) permissions cannot work until corlib is loaded.
7955
7956 2005-03-23  Martin Baulig  <martin@ximian.com>
7957
7958         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
7959         MONO_TYPE_GENERICINST.  
7960
7961 2005-03-23  Martin Baulig  <martin@ximian.com>
7962
7963         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
7964
7965 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7966
7967         * class.c: added locking comments to some functions.
7968         Cache the interface offsets arrays (saves about 20 KB
7969         of runtime memory in a typical app).
7970         Reduce the time overhead in mono_class_setup_supertypes ().
7971
7972 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
7973
7974         * icall.c: speedup and fix leaks in GetMethodsByName and
7975         GetPropertiesByName.
7976
7977 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7978
7979         * reflection.c: some locking fixes.
7980
7981 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7982
7983         * metadata.c: added missing break in case statement.
7984
7985 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
7986
7987         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
7988         typedbyref return values. Fixes #73941.
7989
7990 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
7991
7992         * security-manager.c|h: Added demandunmanaged method and 
7993         suppressunmanagedcodesecurity class to MonoSecurityManager.
7994         Renamed aptc class to allowpartiallytrustedcallers.
7995
7996 2005-03-17  Martin Baulig  <martin@ximian.com>
7997
7998         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
7999
8000 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8001
8002         * file-io.c: disabled file async. IO using aio_*. It uses the
8003         threadpool now. Workaround for bug #73718.
8004
8005 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8006
8007         * assembly.h, mono-config.c: added code to deal with bundled configs
8008         for bundled assemblies.
8009
8010 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
8011
8012         * *.c, private.h: cleanup, removing old private.h header file.
8013
8014 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
8015
8016         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
8017         and throw_on_unmappable_char attributes.
8018
8019 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
8020
8021         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
8022         _ProcessName_internal.
8023
8024 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
8025
8026         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
8027         #73631.
8028
8029         * icall.c threads.c threads-types.h: Remove slothash icalls as they
8030         are no longer used.
8031
8032 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
8033
8034         * object.c (compute_class_bitmap): Add support for generics. Fixes
8035         #73527.
8036
8037 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8038
8039         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
8040
8041 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8042
8043         * filewatcher.c: commented out the code for windows watcher, as we don't
8044         use it (we use the managed implementation instead).
8045
8046 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8047
8048         * object-internals.h (MonoThread): Remove 'unused1' field.
8049
8050         * appdomain.c: Bump corlib version.
8051
8052         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
8053
8054         * reflection.c (mono_reflection_create_runtime_class): Remove the
8055         AssemblyBuilder.Save optimization since it causes too many problems.
8056
8057 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
8058
8059         * exception.c|h: Added mono_get_exception_reflection_type_load to
8060         create a ReflectionTypeLoadException object.
8061         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
8062         to return NULL is a InheritanceDemand fails during reflection. Updated
8063         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
8064         ReflectionTypeLoadException if an InheritanceDemand fails during 
8065         reflection. Added icall mapping for GetLinkDemandSecurity.
8066         * security-manager.c|h: Added ves_icall_System_Security_
8067         SecurityManager_GetLinkDemandSecurity internal call to return the
8068         class and methods permissions set for a LinkDemand. Removed unused
8069         fields in MonoSecurityManager.
8070
8071 2005-03-10  Martin Baulig  <martin@ximian.com>
8072
8073         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
8074         it's a generic instance.
8075
8076 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
8077
8078         * reflection.c (mono_get_object_from_blob): Applied patch from
8079         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
8080
8081         * class.c (mono_class_is_assignable_from): Another try at fixing 
8082         #73469 without breaking anything.
8083
8084 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
8085
8086         * class.c: (mono_class_is_assignable_from): Revert the last changes
8087         since they don't work with generics.
8088         
8089         * class.c (mono_class_is_assignable_from): Fix build bustage.
8090
8091         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
8092         the managed IsAssignableFrom method. Fixes #73469.
8093
8094         * reflection.c (mono_reflection_call_is_assignable_from): New helper
8095         function.
8096
8097 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
8098
8099         * object.c (mono_load_remote_field_new): Fix returning uninitialized
8100         memory when the remoting callback does not sets the out arguments.
8101         Fixes #73007.
8102
8103         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
8104         by mistake.
8105
8106         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
8107
8108         * object-internals.h (MonoStackFrame): Sync with managed object layout.
8109
8110         * appdomain.c: Bump corlib version.
8111
8112 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
8113
8114         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
8115         function.
8116
8117         * threads.c (mono_thread_attach): Detect threads which are not started
8118         by the GC pthread wrappers.
8119
8120 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
8121
8122         * icall.c: Added new icall for RNG.
8123         * rand.c|h: Added new icall to open the RNG. This allows to share a 
8124         single handle on Linux to access /dev/urandom and fix #73183.
8125
8126 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
8127
8128         * object.c: setting the new vtable in a transparent proxy object must
8129         not change the GC descriptor.
8130
8131 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8132
8133         * object.c: fixed compilation without GCJ support.
8134         * reflection.c: for runtime-created types ensure klass->has_references
8135         is correct (bug #73215).
8136
8137 2005-03-02  Martin Baulig  <martin@ximian.com>
8138
8139         * class.c (mono_class_is_assignable_from): Make this work if
8140         `oklass' is a generic instance; fixes #72831.
8141
8142 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8143
8144         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
8145         with hasthis set.
8146         
8147         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
8148
8149         * marshal.c: Reorganize native->managed marshalling code to also use
8150         the emit_marshal_... functions.
8151
8152 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8153
8154         * object.c: typed allocs have issues with bitmap sizes > 30,
8155         so check for max_set >= 30.
8156
8157 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8158
8159         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
8160         managed code. Fixes #73012.
8161
8162         * metadata.h (MonoMarshalSpec): Add elem_mult field.
8163
8164         * metadata.c reflection.c: Load/Emit elem_mult as well.
8165         
8166         * metadata.h (MonoMarshalSpec): Add comment.
8167
8168         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
8169
8170         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
8171         num_elem to -1 if not given.
8172
8173         * object-internals.h (MonoReflectionMarshal): Add has_size field.
8174
8175         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
8176         given values.
8177
8178 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
8179
8180         * null-gc.c (mono_gc_free_fixed): Was not compilable.
8181
8182 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
8183
8184         * reflection.c (encode_marshal_blob): Encode param_num field as well.
8185
8186         * object-internals.h (MonoReflectionMarshal): Add param_num field.
8187
8188 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8189
8190         * object.c: generalized the reference bitmap creation
8191         and added hooks for the new GC.
8192         * class-internals.c: removed the gc_bitmap field from MonoClass.
8193
8194 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8195
8196         * domain.c: help the compiler to produce better code
8197         in mono_jit_info_table_find ().
8198
8199 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8200
8201         * object.c: make all allocations look typed.
8202
8203 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8204
8205         * socket-io.c: load Mono.Posix if it's not loaded already
8206         (fixes bug#73033).
8207
8208 2005-02-24  Martin Baulig  <martin@ximian.com>
8209
8210         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
8211         * reflection.c (dup_type): Likewise.
8212
8213 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
8214
8215         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
8216         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
8217
8218 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8219
8220         * domain.c, threads.c, object-internals.h: make the critical thread
8221         local vars use the fast access mode (even when we're compiled in
8222         a lib). Provide accessors to be used by the jit during codegen.
8223
8224 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8225
8226         * appdomain.c: Changed hook functios behavior to include
8227         support for the reflection only assemblies. Some icalls were changed
8228         to support the mentioned assemblies too. Signatures of static methods
8229         try_assembly_resolve and real_load now have an additional parameter:
8230         refonly.
8231
8232         * assembly.c: General changes to mono_assembly_ methods to support
8233         reflection only api. Functions mono_assembly_open, mono_assembly_load,
8234         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
8235         suffix, to support an additional gbool parameter to specify whether
8236         the assembli is reflection only or not. Created some new hook functions 
8237         to add support for reflection only assemblies. Signatures of static 
8238         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
8239         have now an additional parameter: refonly.
8240
8241         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
8242         indicating whether the assembly is reflection only or not.
8243
8244         * exception.c: Add mono_get_exception_invalid_operation.
8245
8246         * icall.c: Throw an InvalidOperationException when trying to invoke
8247         a property/method/event, or trying to set/get the value of a field.
8248         Also add an icall to retrieve the ref_only flag to the
8249         MonoReflectionAssembly.
8250
8251 2005-02-23  Chris Toshok  <toshok@ximian.com>
8252
8253         Part of fix for #72827.
8254         * mono-debug.c (mono_debug_add_method): add lexical block data to
8255         the info we write.  Kind of a hack at the moment - we copy the
8256         lexical block info from the MonoDebugMethodInfo to the
8257         MonoDebugMethodJitInfo here, before writing it.
8258         (mono_debug_read_method): read the lexical block info.
8259
8260         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
8261
8262         * debug-mono-symfile.h: add lexical block support.
8263
8264         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
8265         support.
8266
8267 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8268
8269         * loader.c (mono_lookup_pinvoke_call): Fix warning.
8270
8271         * object.c (mono_runtime_free_method): Call mono_free_method () and
8272         put the TODOs there.
8273
8274         * loader.c (mono_free_method): Free up most memory allocated for 
8275         dynamic methods.
8276
8277 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8278
8279         * reflection.c: properly flag a Type argument to a
8280         named custom attr value (bug #72248).
8281
8282 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8283
8284         * reflection.c: reduce code duplication in named custom
8285         attribute encoding.
8286
8287 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
8288
8289         * reflection.c: properly encode custom attrs of type object
8290         (bug #72649).
8291
8292 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8293
8294         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
8295
8296 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
8297
8298         * socket-io.c: load System.dll if it's not loaded already
8299         (bug #72850 and #70477).
8300
8301 2005-02-21  Martin Baulig  <martin@ximian.com>
8302
8303         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8304         generic instances.
8305
8306 2005-02-21  Martin Baulig  <martin@ximian.com>
8307
8308         * reflection.c (mono_image_build_metadata): We also need to
8309         "fixup" the MethodImpl table after we computed the final method
8310         indices.  Call fixup_methodimpl() to do that.
8311         (fixup_methodimpl): New private method.
8312
8313 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8314
8315         * assembly.c: special case mscorlib.dll (bug#72536),
8316         patch from Carlos Alberto Cortez.
8317
8318 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
8319
8320         * threads-types.h threads.c: Fix build bustage.
8321
8322         * threads.c: Use a union for long<->double conversions.
8323
8324         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8325         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8326
8327         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8328         containing the checkpoint call with NOT_TAKEN.
8329         
8330         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8331         checkpoint before pushing the arguments, so they won't have to be
8332         spilled to stack.
8333
8334 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8335
8336         * domain.c, assembly.c, domain-internals.h: make some data
8337         const and relocation-free.
8338
8339 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8340
8341         * object.c, appdomain.c, class-internals.h: introduce the
8342         MonoClassRuntimeInfo structure to hold the info needed to
8343         use a class at runtime. Made mono_class_vtable() lock-free
8344         for all the appdomains.
8345
8346 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8347
8348         * metadata-internals.h, image.c: introduce a per-image mempool to
8349         be used for memory that has the same lifetime as the image.
8350
8351 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8352
8353         * domain.c: In mono_init_internal(), instead of selecting the first
8354         runtime version supported by an executable, get a list of all
8355         supported versions and select the one for which an mscorlib exists
8356         (since even if the runtime supports a given version, it doesn't mean
8357         that the framework for that version is installed).
8358         Modified get_runtimes_from_exe to support this behavior.
8359         In supported_runtimes, added information about additional system
8360         assembly versions.
8361         
8362         * assembly.c: Added support for more than one system assembly version
8363         per runtime version. Updated the assembly list.
8364         In mono_assembly_remap_version, removed the initial version check,
8365         since we don't know to which version we need to compare until we
8366         get the version set on which the assembly is based.
8367         Moved the code for loading corlib into the new method
8368         mono_assembly_load_corlib(), so it can be used by the initialization
8369         code.
8370         
8371         * domain-internals.h: Updated data structures and added declaration
8372         for mono_assembly_load_corlib.
8373
8374 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8375
8376         * reflection.c (resolve_object): Fix the creation of the signature in 
8377         the SignatureHelper case.
8378
8379         * assembly.c (mono_assembly_remap_version): Fix binary search.
8380         
8381 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8382  
8383         * class.c: Added inheritance check when a method is overloaded (from a
8384         virtual method or when implementing an interface) and when a class is
8385         inherited. Added functions to set a failure for a class and to 
8386         retreive the exception from a failure.
8387         * class-internals.h: Added fields to MonoClass to keep the exception
8388         information status for inheritance (or other exceptions) to be thrown
8389         later (i.e. not at load time).
8390         * object.c: Throw the inheritance SecurityException when a type is to 
8391         be created with either class or method inheritance violations.
8392         * reflection.c|h: Fix when getting declsec from a class. Removed 
8393         unrequired code for class. Improved sanity in parameter naming.
8394         * security-manager.c|h: Added functions to check for class and method
8395         inheritance.
8396
8397 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8398
8399         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8400         and has_finalize in dynamic types as well.
8401
8402 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8403
8404         * culture-info-table.h : fixed currency format for en-GB (and so on).
8405
8406 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8407
8408         * gc.c: ensure the GC handles never have 0 as a value.
8409
8410 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8411
8412         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8413         a pointer to a struct to unmanaged code. Fixes #72625.
8414
8415 2005-02-16  Martin Baulig  <martin@ximian.com>
8416
8417         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8418
8419 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8420
8421         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8422
8423 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8424
8425         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8426
8427         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8428         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8429         etc. Fixes #71471.
8430
8431         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8432
8433         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8434
8435 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8436
8437         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8438         changes to make the current context a field in MonoThread.
8439
8440 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8441
8442         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8443         the last change.
8444         
8445         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8446         extracted from mono_marshal_get_native_wrapper.
8447
8448         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8449         to create wrappers around native functions.
8450
8451         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8452         delegates for arbitrary function pointers. Fixes #71472.
8453
8454 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8455
8456         * threads.c: cleaned up the code a little.
8457
8458 2005-02-15  Martin Baulig  <martin@ximian.com>
8459
8460         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
8461         the data table.
8462
8463         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
8464         allocate larger chunks if needed.
8465
8466 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8467
8468         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8469         in by mistake.
8470
8471 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8472
8473         * domain.c: keep the domains in an array and ensure the domain ids
8474         are kept small, so they can be used as indexes to domain-specific data
8475         with a small memory overhead.
8476
8477 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8478
8479         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8480
8481 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8482
8483         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8484
8485 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8486
8487         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8488
8489         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8490         values.
8491
8492         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8493         
8494 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8495
8496         * domain-internals.h: add the hashtable here.
8497
8498         * class-internals.h: Remove `info' from MonoMethod
8499
8500         * domain.c: Add a new hashtable, jit_trampoline_hash
8501
8502 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8503
8504         * object.c: don't set the value of static fields
8505         (fixes bug#72494).
8506
8507 2005-02-11  Martin Baulig  <martin@ximian.com>
8508
8509         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8510         (mono_debug_add_method): Silently ignore the method if it's too big.
8511         (mono_debug_add_type): Likewise.
8512
8513 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8514
8515         * threads.c, appdomain.c: remove #ifdefs from the code.
8516
8517 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8518
8519         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8520         common security informations. This allows us to stay in unmanaged code
8521         when doing LinkDemand and it's special cases (except for the first 
8522         time for initialization). The flags a very much used with --security.
8523         * reflection.c|h: Added code to get declarative security attributes 
8524         for LinkDemand and InheritanceDemand. This required to refactor the
8525         existing code for Demand.
8526         * security-manager.c|h: Added new method fields for the special cases
8527         of LinkDemand.
8528
8529 2005-02-10  Martin Baulig  <martin@ximian.com>
8530
8531         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8532         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8533
8534 2005-02-10  Martin Baulig  <martin@ximian.com>
8535
8536         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8537         debugging code; this is almost a complete rewrite.
8538
8539         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8540
8541 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8542
8543         * domain.c, object.h: expose mono_string_equal () and 
8544         mono_string_hash ().
8545         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8546         it's implemented in managed code.
8547
8548 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8549
8550         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8551         lo leak objects between appdomains.
8552
8553 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8554
8555         * assembly.c: old compilers compilation fix from 
8556         robertj@gmx.net (Robert Jordan).
8557
8558 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8559
8560         * class-internals.h: Little reminder for the future.
8561
8562         * debug-helpers.c: Fix up wrapper_type_names
8563
8564 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8565
8566         * image.c, metadata-internals.h: when loading an image from a file,
8567         mmap all of it and use the same codepaths as when using a
8568         in-memory image: the code is simpler and we use less memory
8569         (both writable and readonly).
8570
8571 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8572
8573         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
8574         API to alloc runtime data structures that need to be tracked by the
8575         GC and contain pointers.
8576         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
8577         make the code more readable and eventually use a different GC.
8578
8579 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
8580
8581         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
8582         for out arguments.
8583         
8584 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
8585
8586         * object.c: In release_type_locks(), don't release the cctor lock
8587         if it has already been released. This fixes a crash in the
8588         thread5 test.
8589
8590 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8591
8592         * gc.c, marshal.c, icall.c: register a delegate for finalization
8593         only when the native function pointer has been allocated for it.
8594
8595 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8596
8597         * object.c: cleaned up some code, allocate objects that are
8598         pointer free with the atomic malloc variant. Allocate memory
8599         for static data from the mempool if it's pointer-free.
8600         Allocate the bounds array at the end of the array data, when needed.
8601         * object-internals.h, object.h: move a private function in a private
8602         header.
8603         * class.c: handle missing case in tracking references in fields.
8604
8605 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8606
8607         * class.c, class-internals.h: keep track if a type has
8608         reference fields in either the instance or static fields.
8609
8610 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
8611
8612         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
8613         and renamed to MonoRuntimeInfo. Added fields to store the expected
8614         framework assembly version. Changed mono_get_framework_version and
8615         mono_get_runtime_version for a single mono_get_runtime_info method.
8616         
8617         * assembly.c: Added method to remap system assembly versions to the
8618         current executing runtime version. Removed old mapping code.
8619         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
8620         
8621         * icall.c, reflection.c: Track api changes.
8622
8623 2005-02-06  Miguel de Icaza  <miguel@novell.com>
8624
8625         * loader.c (method_from_memberref): Improve error reporting,
8626         produce the class name instead of the typeref/typedef index. 
8627
8628 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
8629
8630         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
8631
8632 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8633
8634         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
8635         stdcall and charset name mangling.  Reorganize the code and add
8636         some tracing stuff.
8637
8638 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8639
8640         * monodiet.c: More iters!
8641
8642         * marshal.c: Iter usage.
8643
8644         * icall.c: Iter usage.
8645
8646         * object.c: Use iters.
8647
8648         * debug-helpers.c: More iters
8649
8650 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8651
8652         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
8653         under win32.
8654
8655 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8656
8657         * mono-debug-debugger.c: use iters
8658
8659         * class.c, class-internals.h: mono_class_setup_events is static
8660         now
8661
8662         * All callers: use iters
8663
8664 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8665
8666         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
8667         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
8668
8669 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8670
8671         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
8672
8673         * marshal.h: Add prototypes for ldfld/stfld_remote.
8674
8675         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
8676         this is called during startup.
8677         
8678 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
8679
8680         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
8681         MonoThreadsSync struct private in monitor.c. Changed the way
8682         MonoThreadsSync is allocated so it's faster and there is no
8683         need to keep track of it with a finalizer and it uses less memory.
8684         This also finally allows us to allocate mono objects as ptrfree when
8685         there are no reference fields.
8686
8687 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
8688
8689         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
8690         disappearing link to the GC interface and use them to simplify
8691         the gchandles code.
8692
8693 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8694
8695         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
8696         stfld_remote which call mono_load/store_field_new. This allows methods
8697         calling ldfld/stfld wrappers to be AOTed.
8698
8699         * console-io.c: Include sys/filio.h under solaris.
8700         
8701         * console-io.c: Include curses.h if needed correctly.
8702
8703 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8704         
8705         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
8706         method->klass as well.
8707
8708         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
8709
8710         * class.c (mono_class_init): Switch on lazy initialization of 
8711         methods.
8712
8713         * class.c (mono_class_get_finalizer): Handle the case when the 
8714         finalizer is inherited.
8715
8716 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8717
8718         * console-io.c: <curses.h> is needed by term.h on solaris.
8719
8720 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
8721
8722         * icall.c, class-internals.h, monodiet.c, class.c: Remove
8723         mono_class_setup_properties where possible. Remove this ftn from
8724         the header file, and make it static.
8725
8726 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8727
8728         * loader.c: Add missing setup_... call.
8729
8730         * class.c: Add missing setup_... calls.
8731
8732         * class.c (mono_class_init): Switch on lazy initialization of 
8733         the generic vtable.
8734         
8735         * class.c (mono_class_init): Fix generics broken by the recent changes.
8736
8737         * monodiet.c (handle_type): Add missing setup_... calls.
8738
8739         * class.c: Back out garbage in previous patch.
8740         
8741         * class.c: Add missing setup_... calls.
8742
8743         * class.c (mono_class_get_method_from_name_flags): Avoid calling
8744         mono_class_setup_methods () if possible.
8745
8746         * class-internals.h (MonoClass): Add 'has_cctor' flag.
8747
8748         * class-internals.h (MonoCachedClassInfo): New structure.
8749
8750         * class.c: Initialize properties and events fields of MonoClass lazily.
8751
8752         * class.c: Add infrastructure for lazily initializing the methods and
8753         vtable fields of MonoClass. Not yet used.
8754
8755         * class.c (mono_class_get_finalizer): New helper function.
8756
8757         * class.c: Add infrastructure for loading some class related data from
8758         an AOT file.
8759
8760         * object.c: Add infrastructure for initializing the vtable from data
8761         in the AOT file.
8762
8763         * gc.c (run_finalize): Use mono_class_get_finalizer ().
8764
8765         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
8766         appropriate initialization function before accessing parts of the
8767         MonoClass structure.
8768
8769         * marshal.c: Fix warnings.
8770         
8771         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
8772
8773         * mono-debug-debugger.c (get_exception_message): Use 
8774         mono_class_get_method_from_name_flags ().
8775
8776 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
8777
8778         * reflection.c, appdomain.c: Replace a few manual searches that
8779         Zoltan missed. (Paolo approved this part of my initial patch).
8780
8781 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
8782
8783         * profiler.c: disable recording statistical events at report time.
8784
8785 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8786
8787         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
8788         to byteswap arrays of enum values, too (bug #72080).
8789
8790 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
8791
8792         * appdomain.c (set_domain_search_path): Allow this to be called if
8793         domain->setup is not yet set.
8794
8795         * loader.c (mono_method_get_index): New helper function.
8796
8797         * loader.c reflection.c: Use mono_method_get_index ().
8798
8799         * class.c (mono_class_get_method_from_name_flags): New helper method.
8800
8801         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
8802         this.
8803
8804         * class.c (mono_class_get_cctor): New helper method.
8805
8806         * string-icalls.c object.c class.c marshal.c reflection.c: Use
8807         mono_class_get_method () to look up methods.
8808
8809 2005-02-01  Miguel de Icaza  <miguel@novell.com>
8810
8811         * console-io.c: Fix the build, this should work on Windows.
8812
8813 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
8814
8815         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
8816         be set to null to keep things valid
8817
8818 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8819
8820         * icall.c: added Console 2.0 icalls.
8821         * Makefile.am: added console-io.[ch]
8822         * console-io.[ch]: internal calls for Console 2.0 API.
8823
8824 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8825
8826         * class.c: make sure we consider all the interfaces
8827         when calculating max_interface_id (bug found by
8828         Jeroen Frijters running ikvm).
8829
8830 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
8831
8832         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
8833         valuetype fields to null.
8834
8835         * object.c (set_value): Ditto. Fixes #71669.    
8836
8837 2005-01-31  Martin Baulig  <martin@ximian.com>
8838
8839         * metadata.c (mono_metadata_has_generic_params): New public
8840         function; checks whether something is a generic method.
8841
8842 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
8843
8844         * appdomain.c: fix infinite recursion when adding assemblies.
8845
8846 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
8847
8848         * object.c: Fix small typo to return all items for Environment.
8849         GetCommandLineArgs.
8850
8851 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8852
8853         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
8854         reflection.c: more domain and assembly-unload related fixes
8855         and memory leaks plugs.
8856
8857 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
8858
8859         * 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.
8860
8861 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
8862
8863         * loader.c (mono_method_signature): Make this method lazy
8864         (mono_get_method_from_token): Don't computate the signature here.
8865
8866         Doing this saves quite a bit of memory. I got 90 kb on starting up
8867         monodoc. It should also save some disk reads on startup.
8868
8869         * *: MonoMethod->signature might be NULL now. You *MUST* use
8870         mono_method_signature.
8871
8872 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
8873
8874         * object.c (mono_runtime_get_main_args): Return an array from the
8875         current domain here. Fixes #71938.
8876
8877 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
8878
8879         * monitor.c: formatting changes to comply with the
8880         mono coding style and remove #ifdefs from the code.
8881
8882 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8883
8884         * metadata.c, private.h: remove some unneeded data
8885         and use a more compact representation for table schemas.
8886
8887 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
8888
8889         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
8890         to get a better distribution in hash tables.
8891         * *.c: use mono_aligned_addr_hash() where appropriate.
8892         * assembly.c: make var static.
8893
8894 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
8895
8896         * domain-internals.h: Put MonoJitInfo on a diet.
8897
8898         * domain.c: Fix a warning.
8899
8900 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8901
8902         * gc.c: rework the gc handles code to reuse handles
8903         when freed.
8904
8905 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8906
8907         * domain.c: fixed long standing bug in mono_string_equal() which
8908         was brought to light with the ldstr changes.
8909
8910 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
8911
8912         * reflection.c: Remove warning by adding missing include for marshal.h
8913
8914 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8915
8916         * domain.c, object.c: change the ldstr_table to hold
8917         MonoString* as keys: makes the runtime isinterned lookup
8918         faster and simplifies memory management.
8919
8920 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
8921  
8922         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
8923         possible to add imperative security checks before calling the icall.
8924         * reflection.c: Return security attributes on the original MonoMethod
8925         (and not the wrapped one). This fix permissions on icalls.
8926
8927 2005-01-25  Dick Porter  <dick@ximian.com>
8928
8929         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
8930         the check for mktime() support actually test the mktime() return
8931         value.  "Fixes" bug 71682, though the output is still different to
8932         MS.
8933
8934 2005-01-25  Martin Baulig  <martin@ximian.com>
8935
8936         * class.c (mono_class_is_assignable_from): Make this work for
8937         generic instances.
8938
8939 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
8940
8941         * marshal.c (mono_string_utf8_to_builder)
8942         (mono_string_builder_to_utf16): We might not have ownership of the
8943         string. In thise case, we need to create a new buffer.
8944
8945         * object-internals.h (mono_stringbuilder_capacity): sb->str might
8946         be null, in which case, use the default capacity.
8947
8948 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8949
8950         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
8951         GC events to the profiler.
8952
8953 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8954
8955         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
8956         if you don't want the GC to run.
8957
8958 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
8959
8960         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
8961         start providing a GC API and keeping different implementations in
8962         their own file.
8963         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
8964
8965 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
8966
8967         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
8968         mmap rather than allocating a huge buffer.
8969         (mono_debug_close_mono_symbol_file): Free the buffer allocated
8970         above.
8971
8972 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
8973
8974         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
8975         and CheckExecutionRights.
8976         * reflection.c|h: Keep the index of the declarative security to be 
8977         used, instead of the pointer, when AOT compiler is used. Also add 
8978         class initialization when requesting demands.
8979         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
8980         CheckExecutionRights. Both properties are now FALSE by default, and
8981         unmodifiable, unless the --security option is used.
8982
8983 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8984
8985         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
8986         reflection.c: properly refcount images and assemblies, many leaks fixed.
8987
8988 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8989
8990         * threadpool.c: increase the timeout for threads in the thread pool to
8991         10s.  Fixes bug #67159.
8992
8993 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
8994
8995         * class-internals.h: Sun's compiler insists on explicit
8996         signed on bit fields to handle then correctly.
8997
8998 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
8999
9000         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
9001         Make the size of the array fit only the number of invalid path
9002         chars that we have.
9003
9004         * class.c (_mono_class_get): Improve the error reporting when a
9005         class referenced is not found, to assist debugging. 
9006
9007 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
9008
9009         * threads.c: fix off-by-one error.
9010         * domain.c: free data allocated in the domain.
9011
9012 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9013
9014         * reflection.c (mono_method_body_get_object): Fill out exception info
9015         as well.
9016
9017         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
9018         structure.
9019         
9020 2005-01-19  Martin Baulig  <martin@ximian.com>
9021
9022         * loader.c (mono_get_method_constrained): Make this work again.
9023
9024 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9025
9026         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
9027         guint16 to match the managed side.
9028
9029         * reflection.c (mono_reflection_body_get_object): Fill out local
9030         variables array.
9031
9032         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
9033         as well.
9034
9035         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
9036         'local_var_sig_token'.
9037
9038 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
9039
9040         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
9041         System.Drawing.
9042
9043         * reflection.c (mono_method_body_get_object): Handle abstract and
9044         runtime methods.
9045
9046 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
9047
9048         * marshal.c, loader.c, class-internals.h, reflection.c:
9049         store the emthod data for a wrapper in an array instead of a list.
9050
9051 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
9052
9053         * marshal.c: change the code to allocate memory more
9054         conservatively for method wrappers.
9055
9056 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
9057
9058         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
9059         fields from MonoClass to the marshal info structure where they belong.
9060
9061 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9062
9063         * class.c, object.c, class-internals.h, marshal.c: rearrange
9064         some fields and tweak some types to lower memory usage.
9065
9066 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
9067
9068         * threads.c (signal_thread_state_change): Handle the case when the
9069         target thread is the current thread.
9070
9071         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
9072
9073         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
9074         emit_ptr_to_object_conv. 
9075
9076         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
9077         marshalling. Fixes #71352.
9078
9079 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9080
9081         * metadata.h, blob.h: move table enum to blob.h so it can be included
9082         in any header.
9083         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
9084         cut the size of MonoImage/MonoDynamicImage.
9085
9086 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
9087
9088         * profiler.c (mono_profiler_install_simple): Fix default arguments.
9089
9090 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9091
9092         * reflection.c, reflection.h, icall.c: add a function to check
9093         if an attribute type is defined for a metadata object.
9094
9095 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
9096
9097         * object-internals.h: Added some needed fields from StringBuilder class.
9098         * marshal.c: Set the maxCapacity when creating a StringBuilder.
9099
9100 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
9101
9102         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
9103         threads before shutting down the runtime.
9104
9105         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
9106
9107 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9108
9109         * object-internal.h, threads.c: implement stacksize and 
9110         parameterized thread start functionality (requires
9111         matching corlib). Marked broken code for later removal.
9112
9113 2005-01-12  Martin Baulig  <martin@ximian.com>
9114
9115         * class-internals.h (MonoGenericClass): Moved the `initialized'
9116         flag to MonoDynamicGenericClass, removed `init_pending'.
9117         (MonoGenericInst): Added `is_reference' flag.
9118
9119 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
9120
9121         * reflection.c (mono_image_create_pefile): Only set the pe_offset
9122         inside the MSDOS header. Fixes #71201.
9123
9124         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
9125         gc thread.
9126         (mono_domain_finalize): Ditto.
9127
9128 2005-01-12  Martin Baulig  <martin@ximian.com>
9129
9130         * class.c (mono_get_shared_generic_class): Use the cache for
9131         non-dynamic generic classes.
9132
9133         * class-internals.h (mono_class_create_generic_2): Removed
9134         function prototype, this function is now static inside class.c.
9135
9136         * class.c (mono_class_create_generic_2): Made this static, only
9137         call it from mono_class_init() and mono_class_setup_parent().
9138         (collect_implemented_interfaces_aux): Call mono_class_init() on
9139         the interfaces we collect.
9140         (mono_class_setup_vtable): Call mono_class_init (class->parent).
9141
9142 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9143
9144         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
9145         it a real thread handle.
9146
9147         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
9148         MonoJitExceptionInfo, since each catch clause needs its own variable.
9149         
9150 2005-01-11  Dick Porter  <dick@ximian.com>
9151
9152         * image.c (mono_pe_file_open): New variant on mono_image_open()
9153         that does not set up the CLI metadata; used for FileVersionInfo so
9154         it can get the data for windows binaries too.
9155         
9156         * process.c (process_read_string_block): Don't read off the end of
9157         the StringTable block.
9158
9159         These both fix bug 70766.
9160
9161 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
9162
9163         * gc.c: set some fields to NULL at GC cleanup time.
9164         * threads.c: if we quit the main thread, call exit ().
9165
9166 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9167
9168         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
9169
9170 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
9171
9172         * threads.h, threads.c, object.c: added accessor and settor for
9173         main_thread. Handle it specially when exiting from it: wait
9174         for other foreground threads to exit.
9175
9176 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
9177
9178         * process.c, verify.c: remove some bloat.
9179
9180 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
9181
9182         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
9183         the calling convention to cdecl under win32.
9184
9185 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
9186
9187         * object.c (mono_object_get_size): New function to get the size of
9188         an object instance.
9189
9190         * profiler.c (simple_allocation): Use above.
9191
9192 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9193
9194         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
9195         ves_icall_System_AppDomain_getRootDomain (as it's not required to
9196         get an appdomain by it's id and we can't assume the root's id is 0).
9197         * domain-internals.h: Change the function prototype to match.
9198         * icall.c: Change the icall table for AppDomain.
9199
9200 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
9201
9202         * locales.c (string_invariant_compare_char): Only compute
9203         GUnicodeTypes in the case where we need them.  Test for ordinality
9204         first and return if so.
9205
9206         From the commit:
9207
9208                 /*
9209                  * FIXME: here we must use the information from c1type and c2type
9210                  * to find out the proper collation, even on the InvariantCulture, the
9211                  * sorting is not done by computing the unicode values, but their
9212                  * actual sort order.
9213                  */
9214
9215 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9216
9217         * loader.c: for P/Invoke methods, allow the "Internal" shared
9218         library name to refer to the calling process symbol namespace.
9219
9220 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
9221
9222         * Makefile.am: Add the security manager to the build.
9223         * security-manager.c|h: New. Initialization of the security manager.
9224
9225 2005-01-07  Dick Porter  <dick@ximian.com>
9226
9227         * threads.c: 
9228         * monitor.c: Update thread state during Monitor and WaitHandle
9229         waits.  Fixes bug 71031.
9230
9231 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
9232
9233         * reflection.c (property_encode_signature): Correctly handle when the
9234         property has no methods.
9235
9236 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
9237
9238         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
9239         
9240         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
9241         fields from mb, not rmb. Fixes #71017.
9242
9243         * marshal.c (emit_ptr_to_str_conv): Add support for 
9244         ByValTStr -> string conversion. Fixes #71015.
9245
9246         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
9247
9248         * mempool.c (mono_mempool_contains_addr): New helper function.
9249
9250 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9251
9252         * metadata.c (mono_metadata_compute_size): Fix size calculation of
9253         HasSematics encoded fields.
9254         
9255         * metadata.c (mono_type_to_unmanaged): Improve error message for 
9256         invalid string marshalling.
9257
9258         * metadata.c: Fix warnings.
9259         
9260 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9261
9262         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
9263         profiler support.
9264
9265 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9266
9267         * domain.c object.c domain-internals.h: Revert part of r38077 since the
9268         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
9269         tests.
9270
9271 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
9272
9273         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
9274         so methods containing these can be AOTed.
9275
9276 2005-01-03  Martin Baulig  <martin@ximian.com>
9277
9278         * loader.c (find_method): Removed the hack for generic instances.
9279         (method_from_memberref): If our parent is a generic instance, pass
9280         its generic type definition to find_method() and then inflate the
9281         method.
9282         (mono_get_method_constrained): Pass the generic type definition to
9283         find_method() and inflate the method later.
9284
9285         * class-internals.h (MonoStats): Added `generic_class_count'.
9286
9287         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
9288         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
9289
9290         * reflection.c (mono_custom_attrs_from_params): Don't ignore
9291         generic type definitions.
9292
9293 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
9294
9295         * loader.c icall.c: Fix warnings.
9296
9297 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
9298
9299         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
9300         blittable types. Fixes #70864.
9301
9302 2004-12-29  Martin Baulig  <martin@ximian.com>
9303
9304         * icall.c
9305         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
9306
9307         * reflection.c (mono_method_get_object): Create a
9308         "System.Reflection.MonoGenericMethod" for inflated methods; don't
9309         call mono_get_inflated_method().
9310
9311         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
9312
9313 2004-12-27  Martin Baulig  <martin@ximian.com>
9314
9315         * class-internals.h (MonoMethod): Added `is_inflated' flag.
9316         (MonoMethodInflated): Added `inflated' field.
9317
9318         * class.c (mono_class_inflate_generic_method): Don't really
9319         inflate the method here; just set the `is_inflated' flag in the
9320         MonoMethod.
9321         (mono_class_get_inflated_method): Actually inflate the method here
9322         if it's not already inflated; we use the MonoMethodInflated's new
9323         `inflated' field as a cache.
9324
9325 2004-12-26  Martin Baulig  <martin@ximian.com>
9326
9327         * class.c
9328         (inflate_generic_class): Moved some code out of inflate_generic_type().
9329         (mono_class_inflate_generic_method): If we're already inflated,
9330         inflate the context and use the declaring method; ie. make sure
9331         the declaring method of an inflated method is always the generic
9332         method definition.
9333         (mono_class_create_from_typedef): Create
9334         `class->generic_container->context->gclass'.
9335
9336 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9337
9338         * metadata-internals.h, marshal.c, reflection.c: More
9339         MonoGHashTable->GHashTable.
9340
9341         * domain-internals.h, class.c: Change MonoGHashTable's into
9342         GHashTables for some cases where no gc stuff is used
9343
9344         All users: update apis
9345
9346 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9347
9348         * metadata.c (builtin_types): Make this `const'. Makes this get
9349         put into the shareable section.
9350         (mono_metadata_init): Casts to make gcc happy.
9351
9352 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9353
9354         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9355
9356 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9357
9358         * icall.c: Added an internal call to retrieve the position and length
9359         of assembly-level declarative security attributes (RequestMinimum, 
9360         RequestOptional and RequestRefuse). This is used by the Assembly class
9361         to re-create the corresponding permission sets.
9362
9363 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9364
9365         * marshal.c: fix the stelemref wrapper to be type correct
9366         (and faster).
9367
9368 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9369
9370         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9371         to do key & 0x7fffffff. Hashtable already does this. It just
9372         results in longer code.
9373
9374 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9375
9376         * appdomain.c: Bump corlib version.
9377         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9378         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9379         * reflection.c|h: Add functions to get declarative security infos
9380         (blob position and length) for assemblies, classes and methods.
9381
9382 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9383
9384         * reflection.c: sort the constant table (bug #70693).
9385
9386 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9387
9388         * object-internals.h, threads.c, domain.c: add accessors for
9389         the MonoThread and MonoDomain tls keys.
9390
9391 2004-12-18  Martin Baulig  <martin@ximian.com>
9392
9393         * class.c (inflate_generic_type): If we're inflating a generic
9394         instance, set `ngclass->context->container = context->container';
9395         ie. the container we inflated into.
9396
9397         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9398         inflate_generic_type() changes.
9399
9400 2004-12-17  Martin Baulig  <martin@ximian.com>
9401
9402         * class-internals.h
9403         (MonoGenericClass): Replaced `MonoType *generic_type' with
9404         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9405         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9406         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9407
9408 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9409
9410         * exception.c (mono_exception_from_token): New helper function.
9411
9412 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9413
9414         * assembly.c (mono_assembly_load_with_partial_name): Call 
9415         mono_assembly_loaded before invoking the preload hooks. Fixes
9416         #70564.
9417
9418         * object-internals.h (MonoThread): Change culture_info and 
9419         ui_culture_info into an array.
9420
9421         * threads.c: Cache culture info objects from more than one appdomain.
9422
9423         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9424         current UI culture.
9425
9426 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9427
9428         * threads.h threads.c appdomain.c: Clear the culture_info field of
9429         all threads during unloading if they point to an object in the dying
9430         appdomain.
9431
9432 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9433
9434         * culture-info.h (TextInfoEntry): New struct
9435         * object-internals.h: sync with managed
9436         * locales.c: fill the `text_info_data' field
9437         * culture-info-tables.h: update
9438
9439 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9440
9441         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9442         collector.
9443
9444 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9445
9446         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9447         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9448
9449 2004-12-12  Martin Baulig  <martin@ximian.com>
9450
9451         * mono-debug-debugger.c (write_type): If we're an enum and the
9452         builtin types have already been initialized, call mono_class_init().
9453
9454 2004-12-11  Martin Baulig  <martin@ximian.com>
9455
9456         * metadata.c (mono_metadata_load_generic_params): Added
9457         `MonoGenericContainer *parent_container' argument; automatically
9458         compute `container->is_method'; pass the correct owner to
9459         get_constraints().      
9460
9461         * reflection.c (compare_genericparam): Sort the GenericParam table
9462         according to increasing owners. 
9463
9464 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
9465
9466         * profiler.c: allow disabling the default profiler.
9467
9468 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9469
9470         * decimal.c, icall.c: allow disabling System.Decimal support.
9471
9472 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9473
9474         * reflection.c: Add support for null attribute arguments.
9475
9476 2004-12-09  Martin Baulig  <martin@ximian.com>
9477
9478         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9479         names to get rid of compiler warnings.
9480
9481 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9482
9483         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9484         mono_marshal_load_type_info (). Fixes #69625.
9485         (mono_marshal_get_ptr_to_struct): Likewise.
9486
9487 2004-12-08  Martin Baulig  <martin@ximian.com>
9488
9489         * mono-debug.h: Bumped version number to 47.
9490
9491         * mono-debug-debugger.c
9492         (mono_debugger_event_handler, mono_debugger_event): Take two
9493         guint64 arguments insteed of a gpointer and a guint32.  
9494
9495 2004-12-08  Martin Baulig  <martin@ximian.com>
9496
9497         * debug-mono-symfile.h
9498         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9499         `address' to `native_offset'.
9500
9501 2004-12-08  Martin Baulig  <martin@ximian.com>
9502
9503         * class.c (mono_class_create_from_typespec): Only inflate if we
9504         either have `context->gclass' or `context->gmethod'.
9505
9506 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9507
9508         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9509
9510         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9511
9512         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9513
9514         * reflection.c (mono_assembly_get_object): Remove the workaround put
9515         in for the release.
9516         
9517         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9518
9519         * appdomain.c: Bump corlib version.
9520
9521         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9522         be visible in other appdomains.
9523
9524 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9525
9526         * threads.c: Interlocked inc and dec for longs were messed up,
9527         use a KISS based impl for this. Fixes 70234
9528
9529 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9530
9531         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9532
9533 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9534
9535         * icall.c: fix to follow policy not to allow struct
9536         arguments in icalls.
9537
9538 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9539
9540         * process.c: make the patch that handles spaces in file paths work
9541         on mono/windows too.
9542
9543 2004-12-06  Martin Baulig  <martin@ximian.com>
9544
9545         * class.c (mono_class_create_generic): Call
9546         mono_class_setup_supertypes() if we're dynamic.
9547         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9548
9549 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9550
9551         * object-internals.h: Add new fields to MonoThread.
9552
9553         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9554
9555         * icall.c threads-types.h threads.c: Add new icalls.
9556
9557         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9558
9559         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9560         managed side.
9561
9562         * appdomain.c: Bump corlib version.
9563
9564         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
9565         internal assemblies. Fixes #69181.
9566
9567 2004-12-05  Martin Baulig  <martin@ximian.com>
9568
9569         * class.c (mono_class_inflate_generic_signature): Make this a
9570         no-op if `context' is NULL or we don't have any type parameters;
9571         also copy `sentinelpos'.        
9572
9573 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
9574
9575         * image.c: Add unbox_wrapper_cache.
9576
9577         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
9578
9579         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
9580         function generator.
9581         
9582         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
9583         Fixes #70173.
9584
9585         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
9586         
9587 2004-12-04  Martin Baulig  <martin@ximian.com>
9588
9589         * loader.c (mono_method_get_signature_full): New public function;
9590         like mono_method_get_signature(), but with an additional
9591         `MonoGenericContext *' argument.
9592
9593         * class.c (mono_class_inflate_generic_signature): Formerly known
9594         as inflate_generic_signature(); make this public.
9595
9596 2004-12-04  Martin Baulig  <martin@ximian.com>
9597
9598         * metadata.c
9599         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
9600         instead of a `MonoGenericContainer *'.  
9601         (mono_metadata_parse_array_full): Likewise.
9602         (mono_metadata_parse_signature_full): Likewise.
9603         (mono_metadata_parse_method_signature_full): Likewise.
9604         (mono_metadata_parse_generic_inst): Likewise.
9605         (mono_metadata_parse_generic_param): Likewise.
9606         (mono_metadata_parse_mh_full): Likewise.
9607         (mono_type_create_from_typespec_full): Likewise.
9608
9609 2004-12-03  Martin Baulig  <martin@ximian.com>
9610
9611         * class-internals.h (MonoGenericContainer): Replaced the
9612         `MonoGenericContext * pointer with a `MonoGenericContext'
9613         structure and made it the first element.
9614
9615 2004-12-03  Martin Baulig  <martin@ximian.com>
9616
9617         * class.c
9618         (inflate_generic_type): Set the `context->container' when creating
9619         a new MonoGenericContext.
9620         (mono_class_inflate_generic_method): Likewise.
9621         (mono_class_create_from_typespec): Just use `context->container'
9622         to get the container.
9623
9624         * loader.c (method_from_methodspec): Set `context->parent' from
9625         `context->container' - and if that's a method container, use its
9626         parent.  Also set the `context->container' when creating a new
9627         MonoGenericContext.
9628         (mono_get_method_from_token): Use just `context->container' to get
9629         the container.
9630
9631         * metadata.c (do_mono_metadata_parse_generic_class): Also set
9632         `gclass->context->container'.
9633
9634         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
9635         the `context->container' when creating a new MonoGenericContext.
9636
9637 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
9638
9639         * reflection.c (compare_genericparam): Sort params with identical
9640         owner by their number. Fixes gen-111 on sparc.
9641
9642 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9643
9644         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
9645         around the domain changes.
9646
9647         * appdomain.c (mono_domain_unload): Handle the case when the thread
9648         calling Unload is itself being aborted during unloading. Fixes #70022.
9649
9650         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
9651
9652         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
9653         checkpoint_func as an icall so it gets a wrapper.
9654         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
9655         in the cross-appdomain wrappers too.
9656
9657         * threads.c (mono_thread_has_appdomain_ref): Make this public.
9658
9659         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
9660
9661         * reflection.c: Fix some memory leaks.
9662         
9663 2004-12-02  Martin Baulig  <martin@ximian.com>
9664
9665         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
9666
9667         * metadata.c (generic_class_cache): New static hashtable.
9668         (mono_metadata_lookup_generic_class): New public method.
9669
9670 2004-12-02  Martin Baulig  <martin@ximian.com>
9671
9672         * class.c (mono_class_create_from_typedef): Call
9673         mono_class_setup_parent() and mono_class_create_mono_type() before
9674         parsing the interfaces.
9675
9676 2004-12-02  Martin Baulig  <martin@ximian.com>
9677
9678         * metadata.c (generic_inst_cache): New static hashtable.
9679         (mono_metadata_lookup_generic_inst): New public function.
9680         (mono_metadata_inflate_generic_inst): New public function.
9681         (mono_metadata_parse_generic_inst): New public function.
9682         (do_mono_metadata_parse_generic_class): Use the new
9683         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
9684         since this'll also use the cache.
9685
9686         * reflection.c (mono_reflection_bind_generic_method_parameters):
9687         Use mono_metadata_lookup_generic_inst() to use the new cache.
9688
9689         * class.c (inflate_mono_type): Use
9690         mono_metadata_inflate_generic_inst() to inflate a generic
9691         instance; this'll also use the new cache.
9692
9693         * loader.c (method_from_methodspec): Use
9694         mono_metadata_parse_generic_inst() and
9695         mono_metadata_inflate_generic_inst() rather than parsing it
9696         manually, so we can use the new cache.
9697
9698 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9699
9700         * threads.c (wait_for_tids): Do not incorrectly free threads when 
9701         the wait times out.
9702
9703 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
9704
9705         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
9706         iter->args based on whether parameters are passed in registers (i.e.
9707         MONO_ARCH_REGPARMS is defined)
9708
9709 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
9710
9711         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
9712         the exception message. Fixes #70070.
9713         (method_from_methodspec): Fix warnings.
9714
9715 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9716
9717         * process.c: (complete_path) return the path quoted
9718
9719 2004-12-01  Martin Baulig  <martin@ximian.com>
9720
9721         * class-internals.h (MonoGenericInst): New structure.
9722         (MonoGenericClass): Replaced `type_argc', `type_argv' and
9723         `is_open' with `MonoGenericInst *inst'.
9724         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
9725         `is_open' with `MonoGenericInst *inst'.
9726
9727 2004-11-30  Martin Baulig  <martin@ximian.com>
9728
9729         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
9730
9731         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
9732         to `generic_class_cache'.
9733
9734         * metadata.c
9735         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
9736         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
9737         (mono_generic_inst_is_valuetype): Renamed to
9738         mono_generic_class_is_valuetype().
9739
9740         * class-internals.h
9741         (MonoGenericInst): Renamed to MonoGenericClass.
9742         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
9743         (MonoClass): Renamed `generic_inst' to `generic_class'.
9744         (MonoGenericContext): Renamed `ginst' to `gclass'.
9745
9746         * object-internals.h
9747         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
9748
9749         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
9750         mono_reflection_generic_class_initialize().
9751
9752         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
9753         now known as "System.Reflection.MonoGenericClass".
9754         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
9755
9756 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
9757
9758         * class-internals.h: Added a flag field to MonoClass to cache the
9759         declarative security attributes actions associated with the class.
9760         * domain-internals.h: Added booleans to MonoJitInfo to cache the
9761         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
9762         applicable to the JITted method.
9763         * reflection.c|h: Added functions to extract (as flags) which security
9764         actions are available (declaratively) for a method, class or assembly.
9765         * metadata.c|h: Added functions to search the declarative security
9766         table in the metadata.
9767         
9768 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
9769
9770         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
9771         EXPORTEDTYPES are already in the class name cache, so there is no
9772         need to add extra code here to look at them. Just removes a bit of
9773         cruft.
9774
9775         (ves_icall_System_Environment_get_TickCount): No need for #if
9776         WINDOWS. We already have the code in io-layer.
9777
9778 2004-11-28  Martin Baulig  <martin@ximian.com>
9779
9780         * loader.c
9781         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
9782         Fixes gen-112.cs.
9783
9784 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
9785
9786         * assembly.c (do_mono_assembly_open): Instead of having a
9787         conditional WITH_BUNDLE, incorporate support for bundles here, by
9788         having a global `bundles' variable holding a pointer to the actual
9789         bundles. 
9790
9791         (mono_register_bundled_assemblies): New API call used by the
9792         bundle code. 
9793
9794         See mkbundle.1 for details.
9795         
9796 2004-11-27  Martin Baulig  <martin@ximian.com>
9797
9798         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
9799         the vtable for generic methods.
9800
9801 2004-11-26  Martin Baulig  <martin@ximian.com>
9802
9803         * metadata.c
9804         (mono_metadata_generic_method_hash): New public function.
9805         (mono_metadata_generic_method_equal): Likewise.
9806
9807         * class-internals.h
9808         (MonoGenericContainer): Added `GHashTable *method_hash'.
9809
9810         * reflection.c (ReflectionMethodBuilder): Added
9811         `MonoGenericContainer *generic_container'.
9812         (reflection_methodbuilder_to_mono_method): Don't create a new
9813         MonoGenericContainer each time we're called.
9814         (mono_reflection_bind_generic_method_parameters): Use
9815         `container->method_hash' to cache the results so we don't create a
9816         different method if we're called several times with the same
9817         arguments.
9818
9819         * loader.c (method_from_methodspec): Use the new
9820         `container->method_hash' here, too.
9821
9822 2004-11-26  Martin Baulig  <martin@ximian.com>
9823
9824         * class.c (inflate_generic_signature): Correctly compute
9825         `res->has_type_parameters'.
9826         (mono_class_vtable): Use the `has_type_parameters' flag to
9827         determine whether we're a generic method.
9828
9829         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
9830
9831 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
9832
9833         * object.c (mono_runtime_run_main): Fix a small memory leak.
9834
9835 2004-11-25  Martin Baulig  <martin@ximian.com>
9836
9837         * class.c (set_generic_param_owner): Fixed the loop.
9838
9839 2004-11-25  Martin Baulig  <martin@ximian.com>
9840
9841         * object.c (mono_class_vtable): Don't create any JIT wrappers for
9842         generic methods.
9843
9844 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
9845
9846         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
9847         names. Fixes #69787.
9848
9849 2004-11-24  Martin Baulig  <martin@ximian.com>
9850
9851         * class.c (mono_class_create_generic_2): If we don't have a
9852         `ginst->parent', inflate `gklass->parent' to get our parent.
9853
9854 2004-11-24  Martin Baulig  <martin@ximian.com>
9855
9856         * reflection.c (compare_genericparam): Correctly sort the
9857         GenericParam table; fixes #69779.
9858
9859 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
9860
9861         * reflection.c: When writing a PE file, don't create a huge
9862         buffer in memory. Just write the arrays we have to the file.
9863         This reduces memory usage.
9864
9865         * metadata-internals.h: MonoDynamicStream pefile is no longer used
9866         globally.
9867
9868 2004-11-17  Martin Baulig  <martin@ximian.com>
9869
9870         * class.c (mono_class_init): Don't setup `class->parent' for
9871         dynamic instances; moved this to mono_class_generic_2().
9872         (mono_class_create_generic): Also set `klass->inited' for dynamic
9873         generic instances.
9874         (mono_class_create_generic_2): Don't do anything for dynamic
9875         generic instances.  Set `klass->parent' here and also call
9876         mono_class_setup_parent() here. 
9877
9878         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
9879         `MonoType *parent' argument; set `ginst->parent' before calling
9880         mono_class_create_generic_2(), so we set the correct parent.
9881
9882 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
9883
9884         * reflection.c: allow getting attributes from ModuleBuilder
9885         (used by ikvm).
9886
9887 2004-11-17  Martin Baulig  <martin@ximian.com>
9888
9889         * class.c (mono_class_create_from_typedef): If a type parameter is
9890         inherited from an outer class, set its owner to that class.
9891
9892 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
9893
9894         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
9895           for (int*) written size. This fixes bug #69592.
9896
9897 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
9898
9899         * icall.c: Added IsAuthenticodePresnet internal call.
9900         * image.c|h: New function that check a MonoImage for an Authenticode
9901         signature in the certificate PE data directory.
9902         * security.c|h: New internal call to ask the runtime if an 
9903         Authenticode signature seems referenced in the PE header.
9904
9905 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
9906
9907         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
9908
9909         * reflection.c (mono_image_create_pefile): Free the assembly streams
9910         after writing out the assembly file.
9911
9912         * object.c (mono_runtime_run_main): Fix small memory leak.
9913
9914         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
9915         property access modifiers. Fixes #69389.
9916
9917 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
9918
9919         * domain.c, object.c, object-internals.h, domain-internals.h,
9920         object.h, marshal.c: keep dynamic code info per domain.
9921
9922 2004-11-15  Martin Baulig  <martin@ximian.com>
9923
9924         * class.c (mono_type_get_name_recurse): Put type arguments in
9925         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
9926         see bug #68387.
9927
9928 2004-11-15  Martin Baulig  <martin@ximian.com>
9929
9930         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
9931         (mono_class_setup_vtable): When computing `the_cname' for a
9932         generic instance, don't include the namespace since we'd otherwise
9933         add it twice.
9934
9935 2004-11-15  Martin Baulig  <martin@ximian.com>
9936
9937         * class.c (mono_class_create_generic): Changed return type to void.
9938         (mono_class_create_generic_2): New public function; setup
9939         `class->method', `class->field' and `class->interfaces' here
9940         instead of in mono_class_init().
9941
9942         * class.h (mono_class_create_generic): Moved to class-internals.h.
9943
9944 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
9945
9946         * reflection.c (mono_image_create_pefile): take a file HANDLE.
9947         rather than writing to memory, write to this file. Right now,
9948         we are just writting into a buffer, and copying that. However
9949         we can avoid the buffer later.
9950
9951         (mono_dynamic_stream_reset): new function
9952
9953         * icall.c, object-internals.h: update for the above.
9954
9955 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
9956
9957         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
9958         have been using gc'd memory. First it is slower, unlikely
9959         the comment in the source code said, secondly, it increases
9960         our footprint to do it in the gc.
9961
9962         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
9963         the method so that it does not have to copy to managed code.
9964
9965 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
9966
9967         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
9968
9969 2004-11-12  Martin Baulig  <martin@localhost>
9970
9971         * reflection.c (mono_image_create_token): Allow generic method
9972         definitions here, since they may appear in an `.override'; see
9973         gen-98/gen-99 for an example.
9974
9975 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
9976
9977         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
9978         #69365.
9979
9980         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
9981         descriptive.
9982
9983 2004-11-11  Martin Baulig  <martin@ximian.com>
9984
9985         * class.c (mono_class_setup_vtable): In an explicit interface
9986         implementation, the method name now includes the arity.
9987
9988 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
9989
9990         * object.c (mono_array_full_copy): Fix warning.
9991
9992 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
9993
9994         * appdomain.c: Removed look_for_method_by_name(). Use the new method
9995         mono_class_get_method_from_name() instead.
9996         
9997         * class-internals.h: Added two new types of wrappers. 
9998         Added MonoRemotingTarget enum. Added new trampoline function type, which
9999         takes an additional MonoRemotingTarget value as parameter, so it is
10000         possible to request a trampoline for a specific target.
10001         
10002         * class.c: Added new mono_class_get_method_from_name() method.
10003         
10004         * class.h: In MonoRemoteClass, we can have now to vtables, one for
10005         general remoting sinks and one specific for cross domain calls.
10006         
10007         * debug-helpers.c: Added new wrapper names.
10008         
10009         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
10010         of a remote class.
10011         
10012         * image.c: Porperly delete value objects form the remoting invoke hashtable.
10013         
10014         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
10015         with several other methods (mono_marshal_get_xappdomain_dispatch,
10016         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
10017         and others) can generate a fast remoting wrapper for cross domain calls.
10018         More information can be found in docs/remoting.
10019         Other changes: Removed mono_find_method_by_name, and used
10020         mono_class_get_method_from_name instead.
10021         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
10022         is stored in the remoting invoke hashtable.
10023         
10024         * marshal.h: published the new method for getting the xdomain wrapper,
10025         and also added a method for getting the adequate wrapper for a given
10026         method and target.
10027         
10028         * object-internals.h, object.c: Added a couple of methods for capying and
10029         cloning arrays.
10030         Modified mono_install_remoting_trampoline, which takes the new remoting
10031         trampoline that has a remoting target as parameter.
10032         mono_class_proxy_vtable now also takes a remoting target as parameter, and
10033         will return the most suitable vtable for the target.
10034         Added mono_remote_class_vtable, which returns the vtable of a remote class
10035         (which can be the normal remoting vtable or the xdomain vtable).
10036         
10037         * threads.c: the xdomain invoke and dispatch wrappers must also be
10038         protected against interruptions.
10039
10040 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10041
10042         * icall.c: use memmove in BlockCopyInternal when the source and
10043         destination arrays are the same.
10044
10045 2004-11-09  Martin Baulig  <martin@ximian.com>
10046
10047         * class-internals.h (MonoGenericContainer): Removed `method' and
10048         `signature', replaced them with `is_method' and `is_signature'
10049         flags.  Added `context'.
10050
10051         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
10052         instead of a `MonoGenericContainer *'.
10053
10054         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
10055         for dynamic type parameters.
10056         (mono_metadata_load_generic_params): Setup `container->context'.
10057
10058         * reflection.c (mono_reflection_setup_generic_class): Setup
10059         `tb->generic_container->context'.
10060         (do_mono_reflection_bind_generic_parameters): Use
10061         mono_class_inflate_generic_type() to correctly inflate types,
10062         rather than using our own hack just for MONO_TYPE_VAR.
10063
10064 2004-11-09  Martin Baulig  <martin@ximian.com>
10065
10066         * class.c (mono_class_inflate_generic_method): Small fix; don't
10067         crash here.
10068
10069         * icall.c
10070         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
10071         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
10072         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
10073         (ves_icall_Type_BindGenericParameters): Likewise.
10074         (ves_icall_Type_get_IsGenericInstance): Likewise.
10075         (ves_icall_Type_GetGenericParameterPosition): Likewise.
10076         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
10077         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
10078         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10079
10080 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
10081
10082         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
10083         assembly versions and public key tokens. Fixes #69113.
10084
10085 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
10086
10087         * metadata.c: fix bug introduced with the type cache changes
10088         on 2004-11-06.
10089
10090 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
10091
10092         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
10093         the MonoClass pointer instead of the token in exception clauses.
10094         * reflection.c: updates for the above and make the code not depend
10095         on the structure of MonoExceptionClause.
10096
10097 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
10098
10099         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10100         Add support for dynamic assemblies. Fixes #69114.
10101
10102         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
10103
10104 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
10105
10106         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
10107         since most only those methods use it. the code member of
10108         MonoMethodPInvoke was dead, so that can be removed too. Also,
10109         remove inline_count (again, not used), and move slot so that it
10110         can share bits with some other flags. This saves 8 bytes in the
10111         structure and gives us about 50 kb back for mcs helloworld.cs
10112
10113         * *.[ch]: Do naming changes for the above.
10114
10115         * loader.c (mono_method_get_header): Lazily init the header
10116         on first access.
10117         (mono_get_method_from_token): don't init the header here
10118         (mono_free_method): the header may never be allocated
10119
10120         Overall, this saves 150 kb of unmanaged allocations
10121         for mcs helloworld.cs. That accounts for 10% of the unmanaged
10122         memory at runtime.
10123         
10124         * loader.c, loader.h (mono_method_get_header): new accessor.
10125
10126         * *.[ch]: use the above method. Prepares us to lazily load
10127         the header.
10128
10129         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
10130         three warnings, which are actual bugs (see 69206).
10131
10132         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
10133         unused. Saves a cool 4 bytes / method.
10134
10135 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
10136
10137         * metadata.c (builtin_types): Add types for System.Object here.
10138         (mono_metadata_parse_type_full): Cache MonoType*'s that are
10139         for a class or valuetype from klass->this_arg or klass->byval_arg.
10140
10141         On mcs for a hello world, this gets us down from 21836 MonoType's
10142         to 14560.
10143
10144         (mono_metadata_free_type): Account for the above change.
10145
10146 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
10147
10148         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
10149         exception instead of asserting if name is null.
10150         (ves_icall_System_AppDomain_GetData): Ditto.
10151
10152 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
10153
10154         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
10155         EnumBuilder.
10156
10157         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
10158         Return NULL when the domain does not have entry_assembly set.
10159
10160         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
10161         Add a 'resource_modules' argument.
10162         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
10163
10164         * reflection.c (mono_reflection_create_runtime_class): Move setting
10165         of wastypebuilder here, so mono_get_type_object () returns a MonoType
10166         for enums too.
10167
10168         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
10169         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
10170         Throw an ArgumentNullException if 'ptr' is null.
10171
10172         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
10173         assemblies here. Fixes #69020.
10174
10175 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
10176
10177         * reflection.c (build_compressed_metadata): Fix the previous patch for
10178         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
10179         the stack.
10180
10181 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
10182
10183         * assembly.c (mono_assembly_names_equal): Allow a match if one of
10184         the cultures is false. Fixes #69090.
10185
10186         * reflection.c (build_compressed_metadata): Fix invalid memory read 
10187         detected by valgrind.
10188         
10189         * reflection.c (mono_reflection_get_type): Avoid triggering a 
10190         TypeResolve multiple times for the same type. Fixes #65577.
10191
10192 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
10193
10194         * marshal.c: Avoid using ldftn to call managed functions. It is
10195         much slower than just a call.
10196
10197         * reflection.c (mono_module_get_object): free the basename we
10198         allocate here from glib.
10199         
10200         * reflection.c (ensure_runtime_vtable): make sure to free
10201         overrides.  Also, we were allocating an array of MonoMethod not an
10202         array of MonoMethod*.
10203
10204         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
10205
10206         * image.c (mono_image_close): free image->guid here.
10207
10208 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
10209
10210         * reflection.c: Fix some spec conformance issues with the PE file
10211         structures so mcs compiled apps run on the Net 2.0 beta.
10212
10213 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
10214
10215         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
10216         Implement this. Fixes #67264.
10217
10218         * debug-helpers.h debug-helpers.c marshal.c: Move 
10219         mono_find_method_by_name to debug-helpers.c.
10220
10221 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
10222
10223         * object.c (mono_release_type_locks): type_initialization_hash is
10224         a GHashTable.
10225
10226         * reflection.c object.c object-internals.h: Fix warnings.
10227
10228         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
10229         without accessors. Fixes #61561.
10230
10231         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
10232         application base from the root domain if not set. Fixes #65641.
10233         (mono_runtime_init): Fix warning.
10234
10235 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10236
10237         * appdomain.c: call mono_thread_pool_init.
10238         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
10239         of worker threads based on the number of CPUs and the environment
10240         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
10241         for non-windows (windows) systems.
10242
10243 2004-10-27  Chris Toshok  <toshok@ximian.com>
10244
10245         * mono-debug-debugger.c (write_class): don't call mono_class_init
10246         here, as even with the check for (!klass->init_pending), we get
10247         into a situation where we're hitting cycles in class
10248         initialization.  Fixes #68816.
10249
10250 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
10251
10252         * image.c: Avoid overwriting values in the loaded_images_hash when an
10253         assembly is loaded multiple times. Fixes #61152.
10254
10255         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
10256         so multiple satellite assemblies for the same name can be loaded.
10257         Fixes #68259.
10258
10259         * mono_domain_assembly_preload: Actually return the loaded assembly, 
10260         not NULL.
10261
10262         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
10263         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
10264
10265         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
10266         pending finalizers are not invoked after the appdomain has been 
10267         unloaded. Fixes #67862.
10268
10269 2004-10-22  Martin Baulig  <martin@ximian.com>
10270
10271         * mono-debug-debugger.c
10272         (mono_debugger_runtime_invoke): Don't box valuetypes.
10273
10274 2004-10-22  Chris Toshok  <toshok@ximian.com>
10275
10276         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
10277         don't hide private methods.
10278
10279 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
10280
10281         * icall.c: Allows the runtime to "share" (when known) the public key
10282         token of an assembly. This avoid the need to recalculate the token 
10283         (from the public key) in managed code.
10284
10285 2004-10-21  Chris Toshok  <toshok@ximian.com>
10286
10287         * debug-helpers.c (append_class_name): argh, revert last patch.
10288         
10289 2004-10-21  Chris Toshok  <toshok@ximian.com>
10290
10291         * debug-helpers.c (append_class_name): use '+' as the delimiter,
10292         not '/', so that it matches what the debugger uses to look up
10293         methods.
10294
10295 2004-10-21  Martin Baulig  <martin@ximian.com>
10296
10297         * mono-debug-debugger.c (mono_debugger_throw_exception): New
10298         public method; this is called each time an exception is thrown and
10299         allows the debugger to use exception catch points.
10300
10301 2004-10-21  Martin Baulig  <martin@ximian.com>
10302
10303         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
10304         the stack pointer and the exception object in some struct and pass
10305         that to the debugger.
10306
10307 2004-10-21  Chris Toshok  <toshok@ximian.com>
10308
10309         * mono-debug-debugger.c (do_write_class): add instance/static
10310         event support.  We don't expose "raise" or "other" yet.
10311         (event_is_static): new method.
10312
10313 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
10314
10315         * mono-debug-debugger.c
10316         (mono_debugger_handle_exception): Remove
10317         bogus return value for fussy compilers.
10318
10319 2004-10-20  Martin Baulig  <martin@ximian.com>
10320
10321         * mono-debug-debugger.c
10322         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
10323         (mono_debugger_handled_exception): Likewise.
10324
10325 2004-10-20  Martin Baulig  <martin@ximian.com>
10326
10327         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10328         MONO_DEBUGGER_EVENT_EXCEPTION.
10329
10330         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10331         public function to send the debugger a notification for an
10332         exception and inform it about a catch/finally clause.
10333
10334 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10335
10336         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10337         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10338         fix 2.95 build. 
10339
10340         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10341
10342 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10343
10344         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10345         marshalled as [In,Out]. Fixes #58325.
10346
10347 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10348
10349         * reflection.c (mono_method_body_get_object): Implement some fields.
10350
10351 2004-10-12  Martin Baulig  <martin@ximian.com>
10352
10353         * reflection.c (mono_reflection_bind_generic_parameters): Small
10354         fix, correctly retrieve our parent from a generic instance.
10355
10356 2004-10-12  Martin Baulig  <martin@ximian.com>
10357
10358         * metadata.c (mono_metadata_generic_param_equal): We always have
10359         an owner.
10360
10361         * class.c
10362         (mono_class_from_generic_parameter): We need to have an owner.
10363         (my_mono_class_from_generic_parameter): Likewise.
10364
10365         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10366         mono_reflection_create_generic_class() and added a new
10367         mono_reflection_setup_generic_class().  
10368         (mono_reflection_initialize_generic_param): If we're a nested
10369         generic type and inherited from the containing class, set our
10370         owner to the outer class.
10371
10372 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10373
10374         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10375
10376         * reflection.c (mono_method_body_get_object): New function to create
10377         a MethodBody object.
10378
10379         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10380
10381 2004-10-11  Martin Baulig  <martin@ximian.com>
10382
10383         * metadata.c (_mono_metadata_type_equal): Renamed to
10384         do_mono_metadata_type_equal() and made static.
10385
10386 2004-10-11  Martin Baulig  <martin@ximian.com>
10387
10388         * appdomain.c: Bump corlib version number to 28.
10389
10390 2004-10-10  Martin Baulig  <martin@ximian.com>
10391
10392         * class-internals.h
10393         (MonoGenericInst): Added `MonoGenericContainer *container'.
10394         (MonoGenericMethod): Likewise.
10395         (MonoGenericContext): Likewise.
10396         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10397
10398         * metadata.c
10399         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10400         (do_mono_metadata_parse_generic_inst): Likewise.
10401         (mono_metadata_parse_type_full): New public method.  This is the actual
10402         mono_metadata_parse_type() implementation - with an additional
10403         `MonoGenericContainer *' argument.
10404         (mono_metadata_parse_array_full): Likewise.
10405         (mono_metadata_parse_signature_full): Likewise.
10406         (mono_metadata_parse_method_signature_full): Likewise.
10407         (mono_metadata_parse_mh_full): Likewise.
10408         (mono_type_create_from_typespec): Likewise.
10409         (mono_metadata_interfaces_from_typedef_full): New public method;
10410         this is similar to the other _full() methods, but we take a
10411         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10412         (mono_metadata_parse_generic_param): Take an additional
10413         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10414         from that container.
10415         (mono_metadata_generic_param_equal): New static method to compare
10416         two type parameters.
10417         (_mono_metadata_type_equal): New static method; takes an
10418         additional `gboolean signature_only' argument - if true, we don't
10419         compare the owners of generic parameters.
10420         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10421         with a TRUE argument - do a signature-only comparision.
10422
10423         * loader.c: Use the new _full() methods and pass the
10424         MonoGenericContainer to them.
10425
10426         * object-internals.h (MonoReflectionTypeBuilder): Added
10427         `MonoGenericContainer *generic_container' field.
10428         (MonoReflectionMethodBuilder): Likewise.
10429
10430 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10431
10432         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10433         case initial images of dynamic assemblies.
10434
10435         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10436
10437         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10438
10439         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10440         length of event->other array.
10441         (typebuilder_setup_events): Ditto.
10442
10443         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10444         'assembly_by_name' and add an 'assemblies' list.
10445
10446         * assembly.h assembly.c: Add a new search hook for determining whenever
10447         an assembly is already loaded. Use this instead of searching in the
10448         loaded_assemblies list.
10449
10450         * domain.c appdomain.c: Implement the new search hook so loaded 
10451         assemblies are now scoped by appdomain. Fixes #67727.
10452
10453 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10454
10455         * threads.c (mono_thread_attach): Initialize synch_lock field so
10456         mono_thread_detach works again.
10457
10458         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
10459         'lib' too. Fixes #63130.
10460
10461 2004-10-06  Jackson Harper  <jackson@ximian.com>
10462
10463         * culture-info-tables.h: regenerated.
10464
10465 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
10466
10467         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10468         implemented by other interfaces in the result. Fixes #65764.
10469         
10470         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10471         Handle unloadable modules without crashing.
10472
10473         * image.c (load_modules): Revert the previous patch since modules must
10474         have a fixed index inside the array.
10475         
10476         * image.c (load_modules): Don't include native modules in the modules
10477         array.
10478
10479 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10480
10481         * reflection.h: Add param_defaults field.
10482
10483         * reflection.c: Add support for parameter defaults in dynamic methods.
10484         Fixes #64595.
10485
10486         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10487         an empty string when a type has no namespace. Fixes #64230.
10488
10489 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10490
10491         * tabledefs.h: Added "internal" security actions to support non-CAS
10492         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10493         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10494
10495 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10496
10497         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10498         constructor of abstract class. Fixes #61689.
10499
10500 2004-10-04  Martin Baulig  <martin@ximian.com>
10501
10502         * class-internals.h (MonoGenericContainer): New type.
10503         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10504         `MonoGenericContainer *generic_container'.
10505         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10506         `MonoGenericContainer *generic_container'.
10507
10508         * metadata.c (mono_metadata_load_generic_params): Return a
10509         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10510         removed the `num' argument.
10511
10512 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10513
10514         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10515         for dynamic images.
10516
10517         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10518         machine fields.
10519
10520         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10521
10522         * reflection.c: Save pe_kind and machine values into the generated
10523         image file.
10524
10525         * appdomain.c: Bump corlib version number.
10526
10527         * object-internals.h: Reorganize layout of LocalBuilder.
10528
10529         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10530         New helper function.
10531
10532         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10533         created MonoType for dynamic types. Fixes #66180.
10534
10535 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10536
10537         * threadpool.c: the ares hashtable needs a critical section around it.
10538         this prevents some nasty segfaults
10539
10540 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10541
10542         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10543         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10544         bug 67324).
10545         
10546 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10547
10548         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10549         
10550 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10551
10552         * image.c: Always canonicalize image file names, to avoid loading
10553         the same assembly twice when referenced using a relative path.
10554
10555 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10556
10557         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10558
10559         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10560
10561         * marshal.c: Fix warnings.
10562
10563 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
10564
10565         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
10566         attempting to marshal the delegate_trampoline as the method_addr.
10567         This patch has a static hashtable of marshalled delegates so that 
10568         we can map delegate_trampoline addresses back to delegates.  This
10569         allows a delegate passed to managed code to be passed back into native
10570         code.  Fixes #67039
10571
10572 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10573
10574         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
10575
10576         * reflection.c (method_encode_code): Align method headers properly.
10577         Fixes #66025.
10578
10579 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10580
10581         * marshal.c: In the runtime invoke wrapper, reset the abort
10582         exception if it is cached. This avoids the automatic rethrowal of 
10583         the exception after the catch of the wrapper. Also check for pending
10584         interruptions before calling the managed method. This is done using
10585         the new method emit_thread_force_interrupt_checkpoint, since the
10586         normal checkpoint method is ignored when running the invoke wrapper.
10587         * object.c: If the abort exception is rethrown, set the abort_exc
10588         field of the thread, so it will be rethrown aftere every catch.
10589         * threadpool.c: Only run an interruption checkpoint if what has been
10590         requested is a stop of the thread (aborts will be ignored).
10591         * threads.c: By default, a thread will now never be interrumped while
10592         running the runtime invoke wrapper (this ensures that runtime_invoke
10593         will always return to the caller if an exception pointer is provided).
10594         There is a new special method mono_thread_force_interruption_checkpoint()
10595         to force an interruption checkpoint even if running a protected
10596         wrapper, which is used by the same runtime invoke wrapper to do a check
10597         at a safe point.
10598
10599 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10600
10601         * object.c, object-internals.h: Implemented mono_release_type_locks,
10602         which releases the cctor locks held by a thread.
10603         * threads.c, threads.h: In thread_cleanup, release cctor locks held
10604         by a thread. Added mono_thread_exit() method to be used to safely stop
10605         a thread.
10606
10607 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10608
10609         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10610         Move null check before dereference.  Avoid indexing beyond the end
10611         of the 'modules' array.
10612
10613 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10614
10615         * metadata-internals.h (MonoImage): Add module_count field.
10616         * image.c (load_modules): Set image->module_count.
10617         (mono_image_load_file_for_image): Use image->module_count.
10618         * reflection.c (mono_image_load_module): Append to image->modules array 
10619         of dynamic assembly.
10620         (mono_module_get_object): Fix loop to actually increment index.
10621         Use image->module_count.
10622         * assembly.c (mono_assembly_load_references): Use image->module_count.
10623         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
10624         Likewise.
10625
10626 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10627
10628         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
10629         Avoid assert on generic types.
10630
10631 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
10632
10633         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
10634
10635         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
10636
10637         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
10638         function to convert a MarshalSpec structure to its managed counterpart.
10639
10640         * reflection.c: Fix warnings.
10641         
10642         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
10643         field.
10644
10645         * icall.c (mono_create_icall_signature): Fix build.
10646
10647 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
10648
10649         * icall.c: Add MakePointType icall.
10650
10651         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
10652         warnings.
10653
10654 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10655
10656         * threadpool.c: reuse allocated slots in the queue.
10657
10658 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
10659
10660         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
10661
10662         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
10663
10664         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
10665         previous change.
10666
10667         * tabledefs.h: Add constants for pinvoke attributes BestFit and
10668         ThrowOnUnmappableChar.
10669
10670         * icall.c (ves_icall_Type_GetPacking): New icall.
10671
10672 2004-09-24  Martin Baulig  <martin@ximian.com>
10673
10674         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
10675
10676 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10677
10678         * appdomain.c:
10679         (mono_domain_set): allow setting a domain that is being unloaded.
10680         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
10681         being unloaded.
10682
10683 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10684
10685         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
10686         the GetCustomAttributes icall.
10687
10688 2004-09-23  Martin Baulig  <martin@ximian.com>
10689
10690         * object-internals.h (MonoReflectionGenericParam): Replaced
10691         'has_ctor_constraint', `has_reference_type' and `has_value_type'
10692         with `guint32 attrs'.
10693
10694 2004-09-23  Martin Baulig  <martin@ximian.com>
10695
10696         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
10697
10698 2004-09-23  Martin Baulig  <martin@ximian.com>
10699
10700         * object-internals.h (GenericParameterAttributes): New enum.
10701
10702 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10703
10704         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
10705         
10706         * class.c (init_events): Fill out event->other field.
10707
10708         * class.c: Fix warnings.
10709
10710         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
10711
10712 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
10713
10714         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
10715         walk which doesn't supply the IL offset.
10716
10717 2004-09-22  Martin Baulig  <martin@ximian.com>
10718
10719         * reflection.c (mono_reflection_setup_internal_class): If we're
10720         System.ValueType, System.Object or System.Enum, set
10721         `klass->instance_size' and create the vtable.
10722         (mono_reflection_create_internal_class): If we're an enum type,
10723         get the base class from our current corlib.
10724
10725 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
10726
10727         * reflection.h (MonoResolveTokenError): New type.
10728
10729         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
10730         icall.
10731
10732         * icall.c: Add an 'error' argument to the ResolveToken icalls.
10733
10734 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
10735
10736         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
10737         Support also calling constructors, but only for already allocated objects.
10738
10739 2004-09-17  Geoff Norton <gnorton@customerdna.com>
10740
10741         * reflection.c (type_get_qualified_name): If the klass is null
10742         return the typename to avoid a NullRefEx.
10743         (encode_cattr_value): Get the qualified name of the boxed type,
10744         not the underlying enumtype.  Fixes #62984.
10745
10746 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
10747
10748         * marshal.c: Fix problems with previous checkin.
10749
10750 2004-09-21    <vargaz@freemail.hu>
10751
10752         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
10753         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
10754
10755         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
10756
10757 2004-09-21  Geoff Norton <gnorton@customerdna.com>
10758
10759         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
10760         should only return a type for pointers, arrays, and passbyref types.
10761         Fixes bug #63841.
10762
10763 2004-09-21  Martin Baulig  <martin@ximian.com>
10764
10765         * domain.c (mono_debugger_check_runtime_version): New public
10766         function.
10767
10768         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
10769
10770 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
10771
10772         * reflection.c: Added missing sort to the declarative security 
10773         attributes table. MS implementation stops seeing the attributes if the
10774         token number regress in the table (as shown by ildasm and permview).
10775
10776 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
10777
10778         * object-internals.h (MonoReflectionModule): Add 'token' field.
10779         
10780         * reflection.c (mono_reflection_get_token): Add support for Module
10781         and Assembly.
10782         (mono_module_get_object): Set 'token' field.
10783         (mono_module_file_get_object): Set 'token' field.
10784
10785         * icall.c: Add new Assembly and Module icalls.
10786
10787         * appdomain.c: Bump corlib version.
10788
10789 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
10790
10791         * loader.h loader.c class.h class.c: Add helper functions for obtaining
10792         tokens of metadata objects.
10793
10794         * reflection.h reflection.c (mono_reflection_get_token): New function
10795         to obtain the token of a metadata object.
10796
10797         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
10798
10799 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
10800
10801         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
10802         
10803         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
10804
10805 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
10806
10807         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
10808         * object-internals.h: Added 3 MonoArray* members to MonoReflection
10809         AssemblyBuilder to access the permissions set in the class lib.
10810         * reflection.c: Added security attributes encoding step in 
10811         mono_image_build_metadata.
10812         * tabledefs.h: Added new security actions defined in 2.0:
10813         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
10814
10815 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10816
10817         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
10818         macro parameter.
10819
10820 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10821  
10822         * locales.c: nullify the ICU_collator member of CompareInfo when it is
10823           finalized. There where random SIGSEVs at program termination, when
10824           an object being finalized was trying to do a string comparison and
10825           the current culture was already finalized.
10826  
10827 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10828
10829         * threads.c: call thread_cleanup before finishing the thread if we get
10830         there.
10831
10832 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
10833
10834         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
10835         assemblies from the parent. Fixes #65665.
10836
10837 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
10838
10839         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
10840         modifiers.
10841
10842 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
10843
10844         * reflection.h: add prototype for mono_get_dbnull_object
10845         * reflection.c: add prototypes for get_default_param_value_blobs 
10846         and mono_get_object_from_blob for fussier compilers
10847
10848 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
10849  
10850         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
10851         false deadlock checks in class initialization.
10852  
10853 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
10854
10855         * image.c (mono_image_addref): Fix comment.
10856
10857         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
10858         possible.
10859
10860 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
10861
10862         * reflection.c (mono_param_get_objects): Modified to return
10863         ParameterInfo.DefaultValue object.
10864
10865         (get_default_param_value_blobs):
10866         (mono_get_object_from_blob):
10867         (mono_get_dbnull_object): New helper routines. 
10868
10869         * object.c (mono_get_constant_value_from_blob): New helper routine
10870         carved out from get_default_field_value ()
10871
10872         * object-internals.h (mono_get_constant_value_from_blob): Added
10873         function declaration.
10874
10875 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
10876
10877         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
10878         referenced assemblies. Fixes #62135.
10879
10880         * exception.h exception.c (mono_get_exception_file_not_found2): New
10881         helper function.
10882
10883 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
10884
10885         * class.h class.c: Add mono_type_get_underlying_type ().
10886
10887 2004-09-09  Geoff Norton <gnorton@customerndna.com>
10888
10889         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
10890         Fix GetTypes() to support dynamically created assemblies.
10891
10892 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
10893
10894         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
10895         
10896         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
10897         previous patch.
10898
10899         * reflection.h reflection.c loader.c: Allow dynamic construction of
10900         pinvoke methods. Fixes #65571.
10901         
10902         * reflection.c (mono_reflection_get_type): Revert previous change since
10903         it causes regressions.
10904
10905 2004-09-08  Martin Baulig  <martin@ximian.com>
10906
10907         * class.c (class_compute_field_layout): Don't call
10908         mono_class_layout_fields() for open generic instances.
10909
10910 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
10911         * threads.c appdomain.c: fix typo in GC macro
10912
10913 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10914
10915         * threads.c: don't call mono_thread_detach() in start_wrapper(),
10916         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
10917
10918 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
10919
10920         * image.c (mono_image_close): Applied patch from 
10921         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
10922         assembly is loaded multiple times from data.
10923         
10924         * image.c (mono_image_open): Fix warning.
10925
10926 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10927
10928         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
10929         once. Fixes #58334.
10930         
10931         * reflection.c (mono_reflection_create_runtime_class): Initialize
10932         klass->nested_classes. Fixes #61224.
10933
10934 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
10935
10936         * threads.c: sched_yield() on exit, to allow threads to quit.
10937
10938 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10939
10940         * object.c (mono_unhandled_exception): Remove leftover debug code.
10941
10942 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
10943
10944         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
10945
10946 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10947
10948         * marshal.c (emit_marshal_array): Really null terminate string arrays.
10949         
10950         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
10951
10952 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10953
10954         * marshal.c (emit_marshal_array): Null terminate string arrays.
10955         
10956         * marshal.c (raise_auto_layout_exception): Fix warning.
10957
10958         * reflection.c (mono_param_get_objects): Initialize the default value
10959         with DBNull.Value, not null. Fixes #62123.
10960
10961 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
10962
10963         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
10964         throw an exception with a cute explanation.
10965
10966 2004-09-06  Dick Porter  <dick@ximian.com>
10967
10968         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
10969         Close the new process's thread handle, as we don't use it.  The
10970         handle stays around forever otherwise.
10971
10972 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10973
10974         * object.c (arith_overflow): Fix warning.
10975
10976         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
10977         calling conventions in method refs. Fixes #65352.
10978
10979         * reflection.c: Fix warnings.
10980
10981 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
10982
10983         * icall.c: Add a new icall for Array.Clear
10984
10985 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
10986
10987         * object.c: When allocating an array, we have to throw
10988         an overflow exception if any of the lengths are < 0.
10989
10990 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10991
10992         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
10993         properly. Also move implementation of string array marshalling to 
10994         managed code. Fixes #42316.
10995
10996 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10997
10998         * assembly.c: provide more information when loading an assembly fails.
10999
11000 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11001
11002         * filewatcher.c: don't expect the development fam package to be
11003         installed.
11004
11005 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
11006
11007         * marshal.c: Make a copy of the signature cookie since it will be
11008         freed by the caller.
11009         
11010         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
11011
11012         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
11013
11014         * metadata.c (mono_metadata_free_marshal_spec): New function to free
11015         marshal specs.
11016
11017         * marshal.c: More refactoring.
11018         
11019         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
11020         smaller functions.
11021
11022 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
11023
11024         * object.c: In mono_message_invoke, fill the output parameter array after
11025           calling the managed method (it was done before the call). This fixes
11026           bug #59299.
11027
11028 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11029
11030         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
11031         as well.
11032
11033 2004-09-02  Martin Baulig  <martin@ximian.com>
11034
11035         * class.c (mono_class_instance_size): Don't allow generic type
11036         definitions or open generic instances.
11037         (mono_class_array_element_size): If we're a value type, call
11038         mono_class_instance_size() on the original class.
11039
11040         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
11041         handle generic instances.
11042
11043         * mono-debug-debugger.c (write_type): Handle generic instances
11044         like classes.
11045
11046 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11047
11048         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
11049         the allocation request fails. Fixes #65089.
11050
11051         * object.c (mono_runtime_free_method): Do not call mono_free_method.
11052         
11053         * object.c (mono_runtime_free_method): New function to free a dynamic
11054         method.
11055
11056         * marshal.c (mono_delegate_free_ftnptr): New function to free the
11057         delegate trampoline.
11058
11059         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
11060         with hasthis as dynamic,
11061
11062         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
11063
11064         * domain.c (mono_jit_info_table_remove): New function to remove an
11065         entry from the jit info table.
11066
11067         * class-internals.h (MonoMethod): Add 'dynamic' field.
11068
11069         * loader.c: Fix warnings.
11070
11071 2004-09-01  Martin Baulig  <martin@ximian.com>
11072
11073         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
11074         instead of mono_debugger_lock() because the latter one is a no-op
11075         unless running in the debugger.
11076
11077 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11078
11079         * class.c (class_compute_field_layout): Classes with auto-layout or
11080         reference fields are not blittable.
11081         
11082 2004-09-01  Dick Porter  <dick@ximian.com>
11083
11084         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
11085         mono_image_get_filename() to get the assembly location.
11086
11087         * icall.c:
11088         * metadata.h: Fix compile warnings
11089
11090 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11091
11092         * class.c (class_compute_field_layout): System.Object is blittable.
11093
11094         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
11095         as in/out. Fixes #59909.
11096
11097 2004-09-01  Martin Baulig  <martin@ximian.com>
11098
11099         * metadata.h (MONO_TYPE_ISREFERENCE): Call
11100         mono_metadata_generic_inst_is_valuetype() if we're a generic
11101         instance to check whether our underlying type is a reference type.
11102
11103 2004-09-01  Martin Baulig  <martin@ximian.com>
11104
11105         * metadata.c (mono_type_size): If we're a generic instance, call
11106         mono_class_value_size() for value types.
11107
11108 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
11109
11110         * marshal.c: Implement more custom marshalling functionality. Fixes
11111         #64915.
11112
11113 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11114
11115         * mono-debug.c, debug-mono-symfile.c: add some locking love.
11116
11117 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
11118
11119         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
11120
11121         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
11122
11123         * icall.c: Fix some warnings.
11124
11125         * threads.c (abort_appdomain_thread): Fix unref errors.
11126         (mono_thread_current): Fix THREAD_DEBUG define.
11127
11128 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
11129
11130         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
11131
11132         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
11133
11134 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
11135
11136         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
11137         string arrays.
11138
11139 2004-08-28  Martin Baulig  <martin@ximian.com>
11140
11141         * metadata.c
11142         (mono_metadata_generic_inst_is_valuetype): New public function.
11143
11144         * metadata.h (MONO_TYPE_ISSTRUCT): Call
11145         mono_metadata_generic_inst_is_valuetype() if we're a generic
11146         instance to check whether our underlying type is a valuetype.
11147
11148 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
11149
11150         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
11151         #63768.
11152
11153 2004-08-25  Martin Baulig  <martin@ximian.com>
11154
11155         * loader.c (mono_get_method_from_token): Abstract methods can also
11156         be generic and thus have type parameters.
11157
11158         * metadata-internals.h
11159         (MonoDynamicImage): Added `GPtrArray *gen_params'.
11160
11161         * reflection.c (mono_image_get_generic_param_info): Don't create a
11162         metadata row, just add an entry to the `gen_params' array.
11163         (build_compressed_metadata): Sort the `gen_params' array and then
11164         actually create the metadata.
11165
11166 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11167
11168         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
11169
11170 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
11171
11172         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
11173
11174 2004-08-24  Martin Baulig  <martin@ximian.com>
11175
11176         * class.cs (mono_class_is_subclass_of): Like an interface, a
11177         generic instance also derives from System.Object.
11178
11179 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
11180
11181         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
11182         custom modifiers to be in any order. Fixes #61990.
11183
11184 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
11185
11186         * object.c: Register mono_object_new_fast icall.
11187         
11188         * object.c (mono_class_get_allocation_ftn): Return to calling
11189         mono_object_new_fast, since it seems faster to compute the object 
11190         size in unmanaged code than passing it as a parameter.
11191
11192         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
11193
11194         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
11195         this function with Boehm as the oom handler, so we don't have to check
11196         the result of GC_malloc.
11197
11198         * object.c: Remove checks for oom.
11199
11200         * object.h object.c (mono_class_get_allocation_ftn): New function to
11201         return the icall which can be used to allocate an instance of a given
11202         class. 
11203
11204         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
11205
11206         * class-internals.h: Add 'enabled' field.
11207
11208 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
11209
11210         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
11211
11212 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
11213         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
11214         value 0x0010.
11215
11216 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
11217
11218         * appdomain.c: use the Tls function for appdomain too,
11219         at Zoltan's request. Actually return in mono_context_get
11220
11221         * appdomain.c, profiler.c, threads.c: use __thread
11222
11223 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
11224
11225         * appdomain.c threads.c: Call GC_CreateThread on windows.
11226
11227         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
11228         multiple libraries since this don't work on windows.
11229
11230 2004-08-18  Martin Baulig  <martin@ximian.com>
11231
11232         * class-internals.h
11233         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
11234         MonoMethodHeader.
11235
11236         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
11237         MonoMethodNormal since we also need it for abstract and interface
11238         methods.
11239
11240         * reflection.c
11241         (build_compressed_metadata): Sort the GenericParam table.
11242         (mono_image_create_token): Added `gboolean create_methodspec'
11243         argument; this is false when generating a MethodImpl token.
11244         (reflection_methodbuilder_to_mono_method): Abstract and interface
11245         methods may also have generic parameters.
11246
11247 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
11248
11249         * appdomain.c: thread local alloc
11250
11251 2004-08-17  Martin Baulig  <martin@ximian.com>
11252
11253         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
11254
11255         * icall.c
11256         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
11257         argument.
11258
11259         * class.c (mono_type_get_full_name): New public function.
11260         (mono_type_get_name): Don't include the type arguments.
11261
11262 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
11263
11264         * Makefile.am: Build static versions of libmetadata and libmonoruntime
11265         for inclusion into the mono executable.
11266
11267 2004-08-16  Martin Baulig  <martin@ximian.com>
11268
11269         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
11270         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
11271
11272 2004-08-14  Martin Baulig  <martin@ximian.com>
11273
11274         * class.c (dup_type): Also copy the `byref' field.
11275
11276 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
11277
11278         * reflection.c (create_dynamic_mono_image): Revert the last change 
11279         since it breaks bootstrap.
11280
11281 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
11282
11283         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
11284
11285         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
11286         not free them with g_free.
11287
11288 2004-08-11  Martin Baulig  <martin@ximian.com>
11289
11290         * reflection.c (mono_reflection_setup_internal_class): Also call
11291         mono_class_setup_mono_type() if we already have a `tb->type.type'.
11292
11293 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
11294
11295         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
11296         called during default (first) AppDomain creation. Keep track of
11297         Evidence when loading assemblies.
11298
11299 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11300
11301         * opcodes.c, opcodes.h: reduce runtime relocations.
11302
11303 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
11304
11305         * culture-info.h, locales.c: fixes and chages to sue the new
11306         optimized format of the locale data.
11307         * culture-info-tables.h: regenerated.
11308
11309 2004-08-06  Geoff Norton <gnorton@customerdna.com>
11310         
11311         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
11312
11313 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
11314
11315         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
11316         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
11317         * domain-internals.h: icall declaration.
11318         * icall.c: icall registration.
11319         * object-internals.h: New fields in MonoAssembly for CAS.
11320
11321 2004-08-05  Duncan Mak  <duncan@ximian.com>
11322
11323         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
11324         CEE_LDELEM_ANY.
11325
11326 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11327
11328         * reflection.c: fix to deal with object[] arrays in custom ctors
11329         (bug #62550).
11330
11331 2004-08-05  Martin Baulig  <martin@ximian.com>
11332
11333         * class.c (mono_class_array_element_size): Added support for
11334         generic instances and correctly handle "recursive" types.
11335
11336 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11337
11338         * assembly.c: Fix warnings.
11339
11340 2004-08-04  Martin Baulig  <martin@ximian.com>
11341
11342         * class.c
11343         (mono_type_get_name_recurse): Added `gboolean include_arity'
11344         argument specifying whether or not we should include the generic
11345         arity in the type name.
11346         (_mono_type_get_name): New static function.
11347         (mono_class_setup_vtable): If we're a generic instance, don't
11348         include the generic arity in the names of explicit method
11349         implementations.        
11350
11351 2004-08-03  Martin Baulig  <martin@ximian.com>
11352
11353         * class.c (mono_type_get_name_recurse): Enclose the generic type
11354         arguments in `<', '>'.
11355
11356 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11357
11358         * gc.c: make GC warning messages use the trace API, they are just
11359         noise to most of the users.
11360
11361 2004-08-03  Martin Baulig  <martin@ximian.com>
11362
11363         * debug-mono-symfile.c (read_string): Correctly read the string.
11364
11365 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11366
11367         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11368         
11369         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11370         icalls.
11371         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11372
11373 2004-07-30  Martin Baulig  <martin@ximian.com>
11374
11375         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11376         Reflect latest symbol writer changes.   
11377
11378 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11379
11380         * object.c: always create an object if null is passed
11381         to Invoke() where a valuetype is expected.
11382
11383 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11384
11385         * marshal.c (mono_marshal_init): make managed
11386         signatures match native ones better for 64bits.
11387
11388 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11389
11390         * appdomain.c: hack to build correctly the private bin path on windows.
11391         Fixes bug #61991.
11392
11393 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11394
11395         * assembly.c: Load mscorlib from the correct framework directory
11396           (mono/<version>/mscorlib.dll).
11397         * appdomain.h: Added prototypes for new functions.
11398         * internals.h: Added some prototypes.
11399         * domain.c: When initializing the runtime, get from the executable and
11400           the configuration files the runtime version that the app supports.
11401           Added support methods for reading app.exe.config. Added list of versions
11402           supported by the JIT. Added two new methods: mono_init_from_assembly,
11403           which initializes the runtime and determines the required version from
11404           the provided exe file, and mono_init_version, which initializes
11405           the runtime using the provided version.
11406         * icall.c: Get machine.config from version-specific directory.
11407         * reflection.c: When generating an image, embed the version number
11408           of the current runtime.
11409
11410 2004-07-28  Dick Porter  <dick@ximian.com>
11411
11412         * socket-io.c
11413         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11414         returned sockaddr size before creating the remote address object.
11415         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11416         61608.
11417
11418 2004-07-28  Dick Porter  <dick@ximian.com>
11419
11420         * locales.c (string_invariant_compare_char): Fix invariant char
11421         compares between upper and lower cases.  Fixes bug 61458.
11422
11423 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11424         
11425         * marshal.c: actually cache stelem.ref wrappers.
11426         
11427 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11428
11429         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11430         sections and remove the mono_cli_rva_map () function.
11431
11432 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11433
11434         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11435         by Geoff Norton (<gnorton@customerdna.com>).
11436
11437 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11438
11439         * class.c: fix class loads for pointer types (typeof(int) !=
11440         typeof(int*)).
11441
11442 2004-07-27  Martin Baulig  <martin@ximian.com>
11443
11444         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11445         reading the debugging information from an external ".mdb" file.
11446
11447 2004-07-24  Martin Baulig  <martin@ximian.com>
11448
11449         * reflection.c (mono_image_get_type_info): Only write a class
11450         layout entry if we actually have a size or a packing size.
11451
11452 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11453
11454         * reflection.c (type_get_fully_qualified_name): 
11455         insert cast to get type checking of ?: with non-gcc compilers
11456
11457 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11458
11459         * rand.c: use g_getenv for both lookups of
11460         MONO_EGD_SOCKET
11461
11462 2004-07-17  Martin Baulig  <martin@ximian.com>
11463
11464         * reflection.c (mono_reflection_bind_generic_method_parameters):
11465         Set `gmethod->reflection_info'.
11466
11467 2004-07-17  Martin Baulig  <martin@ximian.com>
11468
11469         * class.c (mono_class_create_from_typedef): Insert the newly
11470         created class into the hash table before computing the interfaces
11471         since we could be called recursively.
11472
11473 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11474
11475         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11476         function to implement stelem.ref in managed code
11477         * class-internals.h, debug-helpers.c: a new wrapper type
11478         for the above.
11479
11480 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11481
11482         * gc.c: allow GC handles to work even when no GC is compiled in.
11483         Fix part of bug #61134 (GetAddrOfPinnedObject).
11484
11485 2004-07-13  Peter Williams  <peter@newton.cx>
11486  
11487         * process.c (complete_path): Make sure we don't attempt to execute
11488         directories.
11489  
11490 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11491
11492         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11493           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11494           and will add/subtract the hour if needed
11495
11496 2004-07-12  Martin Baulig  <martin@ximian.com>
11497
11498         * reflection.c (mono_field_get_object): If we have
11499         `field->generic_info', take the attributes from
11500         `field->generic_info->generic_type'.    
11501
11502 2004-07-12  Martin Baulig  <martin@ximian.com>
11503
11504         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11505         This function must be called before initializing the runtime.
11506         (mono_debug_init_1): New function; call this after initializing
11507         the runtime, but before loading the assembly.  It tells the
11508         debugger to load corlib and the builtin types.
11509
11510         * mono-debug-debugger.c: Did some larger changes in the debugging
11511         code; support recursive class declarations, make sure we actually
11512         add all classes.
11513
11514 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11515
11516         * debug-helpers.c: undo my previous patch and fixed the real issue in
11517         ../mini/exceptions-x86.c
11518
11519 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11520
11521         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11522         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11523         called from other .cctors.
11524
11525 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11526
11527         * loader.c: Removed the mono_loader_wine_init hack now that we are
11528         doing a managed version of Windows.Forms.
11529
11530 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11531
11532         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11533         threadpool.c, threads.c: remove static data from rootset.
11534
11535 2004-07-09  Dick Porter  <dick@ximian.com>
11536
11537         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11538         Don't do any more processing if the matched length was 0.  It was
11539         increasing the size of the string before.  Fixes bug 61167.
11540
11541 2004-07-09  Dick Porter  <dick@ximian.com>
11542
11543         * socket-io.h:
11544         * socket-io.c
11545         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11546         Add support for SO_PEERCRED if its available.
11547
11548 2004-07-09  Peter Bartok <pbartok@novell.com>
11549         * loader.c: winelib.exe.so error message is now only displayed if
11550         MONO_DEBUG is set. To help us avoid questions when people are trying
11551         out the new Managed.Windows.Forms.
11552
11553 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11554
11555         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11556         for isinst and castclass wrappers.
11557
11558         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11559         to libmetadata from the JIT, so they could be used by the marshalling
11560         code and the interpreter.
11561
11562         * marshal.c: Register marshalling related JIT icalls here instead of
11563         in mini.c. Use CEE_MONO_ICALL instead of the family of 
11564         CEE_MONO_PROC<x> opcodes to call marshalling functions.
11565
11566         * metadata.h: Remove unneeded marshalling conversions.
11567
11568         * opcodes.c: Update for new opcodes.
11569         
11570 2004-07-08  Martin Baulig  <martin@ximian.com>
11571
11572         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
11573         (mono_debug_get_domain_data): Make this function static.
11574
11575 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11576
11577         * gc.c, object.h: add nice GC handle API for embedders.
11578
11579 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
11580
11581         * reflection.c: more changes for the new api
11582
11583         * object.c: When we reflect on a field w/ a constant value, it
11584         will not have a memory location, so we must access metadata. Also,
11585         allow easier reading of strings so that we can read them from
11586         the constant data.
11587
11588         * class.c (mono_class_layout_fields): no need for literal fields here.
11589
11590         * class-internals.h: api changes for const fields
11591
11592         * icall.c (ves_icall_get_enum_info): use new apis for const fields
11593
11594 2004-07-06  Martin Baulig  <martin@ximian.com>
11595
11596         * mono-debug.h: Increment version number to 44.
11597
11598         * mono-debug.c (mono_debug_add_wrapper): The second argument is
11599         now a gpointer, rewrote this whole method.
11600
11601         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
11602         function.  Add information about the wrapper in a new "misc table".
11603
11604         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
11605         for the new misc table.
11606
11607 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
11608
11609         * metadata-internals.h image.c: Add a cache for helper signatures.
11610
11611         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
11612
11613 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
11614
11615         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
11616         delegates from a delegate. Fixes #61033.
11617         
11618         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
11619         marshalling of stringbuilder arrays. Fixes #59900.
11620
11621 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
11622
11623         * icall.c: Add EnumBuilder:setup_enum_type icall.
11624
11625 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
11626
11627         * icall.c: Added a new icall for the property version of
11628         OffsetOfStringData.
11629
11630 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
11631
11632         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
11633         it has a constant size across platforms.
11634
11635         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
11636         stack trace.
11637
11638 2004-06-29  Martin Baulig  <martin@ximian.com>
11639
11640         * mono-debug.c (mono_debug_add_method): Protect the whole function
11641         in mono_debugger_lock(), not just parts of it.
11642
11643 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11644
11645         * reflection.c: make sure padding bytes in heaps are zeroed.
11646
11647 2004-06-24  David Waite  <mass@akuma.org>
11648
11649         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
11650         image.c, loader.c, locales.c, marshal.c, metadata.c,
11651         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
11652         string-icalls.c, threads.c: change to C90-style comments from C99 /
11653         C++ -style
11654
11655 2004-06-24  Dick Porter  <dick@ximian.com>
11656
11657         * threads.c
11658         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
11659         return createdNew.  Fixes bug 60412.
11660
11661         * threads-types.h: 
11662         * icall.c: Add createdNew parameter to CreateMutex icall
11663
11664 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11665
11666         * reflection.c, object-internals.h: save default value in params.
11667
11668 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11669
11670         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
11671         no need to build a new path combining that with the application base.
11672         Fixes bug #60442.
11673
11674 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
11675
11676         * reflection.c: fixed minor standard compliance issues.
11677
11678 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11679
11680         * reflection.c: fixed issue with encoding some custom attributes
11681         (arrays in properties and fields, bug #60411).
11682
11683 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11684
11685         * reflection.c: fix start address when copying the public key token.
11686
11687 2004-06-23  Martin Baulig  <martin@ximian.com>
11688
11689         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
11690         the `exc' object in a static object to put it into the GC's root set.
11691
11692 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
11693
11694         * reflection.c: make mono_reflection_setup_internal_class ()
11695         callable a second time to setup a new parent class.
11696
11697 2004-06-23  Dick Porter  <dick@ximian.com>
11698
11699         * threads.c: Check for WAIT_IO_COMPLETION return values.
11700
11701 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
11702
11703         * appdomain.c: Removed the g_free on the public key token. Now copy 
11704         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
11705         * assembly.c: Added public key token string value when loading 
11706         assemblies. Fix bug #60439.
11707         * icall.c: Added missing informations (like public key) in 
11708         GetReferencedAssemblies. Fix #60519.
11709         * image.h: Changed definition for public key token from const char*
11710         public_tok_value to guchar public_key_token [17];
11711         * reflection.c: Updated for changes to public key token.
11712
11713 2004-06-22  Lluis Sanchez Gual
11714
11715         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
11716         for the field in base classes.
11717
11718 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11719
11720         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
11721         mark headers as not supported, they are installed only for use by the
11722         debugger.
11723
11724 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
11725
11726         * *.c, *.h: avoid namespace pollution in public headers.
11727
11728 2004-06-21  Martin Baulig  <martin@ximian.com>
11729
11730         * exception.c (mono_get_exception_security): It's in
11731         "System.Security", not in "System".
11732
11733         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
11734         the exception classes.
11735
11736 2004-06-21  Martin Baulig  <martin@ximian.com>
11737
11738         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
11739         Protect the exception object from being finalized.
11740
11741 2004-06-21  Martin Baulig  <martin@ximian.com>
11742
11743         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
11744         public function.
11745
11746 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
11747
11748         * reflection.c: Load the assembly in mono_reflection_type_from_name,
11749         if it was not loaded before. Fix parts of #60439.
11750
11751 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
11752
11753         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
11754         code that was broken since Ben's change: wrappers are now
11755         dependent on the method signature only again.
11756
11757 2004-06-21  Martin Baulig  <martin@ximian.com>
11758
11759         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
11760         added interface support.
11761
11762 2004-06-21  Martin Baulig  <martin@ximian.com>
11763
11764         * class.c (mono_vtable_get_static_field_data): New public method.
11765
11766 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
11767
11768         * filewatcher.c : Windows build fix to be compliant with API changes.
11769
11770 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11771
11772         * class.h, class.c: more accessors.
11773         * metadata.h, metadata.c: prepare for hiding MonoType and
11774         MonoMethodSignature: people should use the accessors from now on
11775         outside of the tree.
11776
11777 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11778
11779         * *.c, *.h: more API cleanups.
11780
11781 2004-06-18  Jackson Harper  <jackson@ximian.com>
11782
11783         * assembly.c: Trace loading assemblies.
11784         * loader.c: Trace loading native libraries.
11785         * mono-config.c: Trace loading config files.
11786         
11787 2004-06-18  Dick Porter  <dick@ximian.com>
11788
11789         * locales.c: Tell ICU the lengths of strings, it can cope with
11790         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
11791
11792 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
11793
11794         * image.c: swapped name/filename;
11795
11796 2004-06-18  Martin Baulig  <martin@ximian.com>
11797
11798         * mono-debug-debugger.c (write_class): Write the parent class at
11799         the end of the header.
11800
11801 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11802
11803         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
11804
11805 2004-06-17  Raja R Harinath  <rharinath@novell.com>
11806
11807         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
11808         (bundle_obj): New conditional define.
11809         (BUILT_SOURCES): Remove.
11810         ($(bundle_srcs)): Make parallel-make safe.
11811         (libmonoruntime_la_LIBADD): Make unconditional.
11812         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
11813         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
11814
11815 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
11816
11817         * culture-info-tables.h: It was inconsistent with the latest
11818           supp info files.
11819
11820 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
11821
11822         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
11823         be loaded.
11824
11825         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
11826         with gcc 2.95.
11827
11828 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11829
11830         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
11831         cleaned up public header threads.h.
11832
11833 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11834
11835         * Makefile.am, *.c, *.h: more API cleanups.
11836
11837 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
11838
11839         * Makefile.am: removed monosn from compilation.
11840         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
11841         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
11842         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
11843         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
11844         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
11845         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
11846
11847 2004-06-15  Jackson Harper  <jackson@ximian.com>
11848
11849         * assembly.c: Make locales lower case when searching the GAC for
11850         assemblies. gacutil will always make locales lowercase when
11851         installing so this effectively makes them case insensitive.
11852         
11853 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
11854
11855         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
11856         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
11857           parameter which allows to choose whether the wait can be interrupted or 
11858           not. Also added the method mono_monitor_enter(), which locks the monitor
11859           using an infinite wait and without allowing interruption.
11860           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
11861           interrupted.
11862         * object.h: Added new fields in MonoThread. suspend_event holds the event
11863           used to susped/resume the thread. synch_lock is the lock object to use for
11864           modifying the thread state.
11865         * threads.c: Use the new synch_lock object for locking, instead of "this",
11866           which can generate deadlocks.
11867           Moved thread state change in Thread.Sleep and Thread.Join from managed
11868           to unmanaged code. This avoids a deadlock when the thread was suspended
11869           just after acquiring the thread lock.
11870           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
11871           Implemented Thread.Suspend using an event instead of ThreadSuspend,
11872           which is not fully implemented in the io-layer.
11873         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
11874
11875 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
11876
11877         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
11878         threads-types.h: more API cleanups.
11879
11880 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11881
11882         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
11883         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
11884         threadpool.c, threads.c: first pass at the exported API cleanup.
11885
11886 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
11887
11888         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
11889
11890 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11891
11892         * icall.c: added internalGetHome.
11893
11894 2004-06-14  Dick Porter  <dick@ximian.com>
11895
11896         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
11897         possible to return successfully when '.' or '..' were the only
11898         entries in a directory, but were skipped.  The MonoIOStat was not
11899         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
11900         Fixes bug 59574.
11901
11902 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11903
11904         * reflection.c: make binaries run on .Net 1.1 by default.
11905
11906 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11907
11908         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
11909
11910 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
11911
11912         * marshal.c: keep track of struct size with explicit layout
11913         (bug #59979).
11914
11915 2004-06-12  Martin Baulig  <martin@ximian.com>
11916
11917         * mono-debug-debugger.c: Comment out a debugging g_message().
11918
11919 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11920
11921         * reflection.c, reflection.h: do not free custom attrs that are cached.
11922         * icall.c: use braces to make code clearer.
11923
11924 2004-06-11  Martin Baulig  <martin@ximian.com>
11925
11926         * class.h (MonoInflatedField): New type.
11927         (MonoClassField): Replaced `MonoType *generic_type' with
11928         `MonoInflatedField *generic_info'.
11929
11930         * icall.c
11931         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
11932
11933 2004-06-11  Martin Baulig  <martin@ximian.com>
11934
11935         * reflection.c (mono_image_create_method_token): Correctly encode
11936         varargs methods.
11937
11938 2004-06-11  Martin Baulig  <martin@ximian.com>
11939
11940         * metadata.c (mono_metadata_parse_method_signature): When parsing
11941         a MethodDef which has VarArgs, also set sentinelpos if we don't
11942         have any parameters.
11943
11944 2004-06-11  Martin Baulig  <martin@ximian.com>
11945
11946         * verify.c (mono_method_verify): In CEE_CALL, use
11947         mono_method_get_signature() to get the method's signature, unless
11948         we're a PInvoke method.
11949
11950 2004-06-10  Jackson Harper  <jackson@ximian.com>
11951
11952         * assembly.c: Use <path>/lib/mono/gac for the extra paths
11953         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
11954         logical name as the supplied path is just a prefix to the gac not
11955         the direct path to it.
11956         
11957 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
11958
11959         * reflection.c: make the token for a created method match
11960         the token of the MethodBuilder it was created from
11961         (IKVM requires this behaviour now).
11962
11963 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
11964
11965         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
11966         reflection.c, socket-io.c: leak fixes.
11967
11968 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
11969
11970         * icall.c: handle sentinel pos in vararg methods in position different
11971         from 0.
11972
11973 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11974
11975         * culture-info-tables.h: freshly generated.
11976
11977 2004-06-09  Martin Baulig  <martin@ximian.com>
11978
11979         * loader.c (mono_get_method_constrained): Call `mono_class_init
11980         (constrained_class)'.   
11981
11982 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
11983
11984         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
11985         any methods. Fixes #59629.
11986
11987 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11988
11989         * culture-info-tables.h: reflecting locale-builder updates.
11990
11991 2004-06-08  Dick Porter  <dick@ximian.com>
11992
11993         * object.h:
11994         * locales.c: Fixed compile warnings, including a real bug in
11995         CompareInfo_internal_compare.
11996         
11997 2004-06-08  Dick Porter  <dick@ximian.com>
11998
11999         * locales.c
12000         (ves_icall_System_Globalization_CompareInfo_internal_index):
12001         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12002         Double-check the resuls of usearches, because ICU currently
12003         ignores most of the collator settings here.  Fixes bug 59720.
12004         
12005 2004-06-08  Dick Porter  <dick@ximian.com>
12006
12007         * locales.c
12008         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12009         Fix memory leak and segfault-causing typo.  No idea how this one
12010         lasted so long without being noticed.
12011
12012 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
12013
12014         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
12015         any methods. Fixes #59629.
12016
12017 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12018
12019         * assembly.c:
12020         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
12021         own the critical section before). Removed dead code (that's done
12022         in the preload hook).
12023
12024         (mono_assembly_load_with_partial_name): call the preload hook.
12025
12026 2004-06-08  Martin Baulig  <martin@ximian.com>
12027
12028         * metadata.c (mono_metadata_signature_alloc): Default
12029         `sentinelpos' to -1.
12030
12031         * reflection.c (mono_image_get_array_token): Likewise.
12032
12033 2004-06-08  Martin Baulig  <martin@ximian.com>
12034
12035         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
12036
12037         * metadata.c (mono_metadata_parse_method_signature): When parsing
12038         a MethodDef which has VarArgs, set sentinelpos.
12039
12040         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
12041         `gint16' since we're using -1 for non-varargs methods.
12042
12043         * reflection.c
12044         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
12045         (method_encode_signature): Added varargs support.
12046         (method_builder_encode_signature): Likewise.
12047         (mono_image_get_varargs_method_token): New static method.
12048         (mono_image_create_method_token): New public method; this is
12049         called via an icall instead of mono_image_create_token() when
12050         calling a varargs method.       
12051
12052 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
12053
12054         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
12055
12056 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12057
12058         * culture-info-tables.h : Reflecting the latest locale-builder that
12059           fixed empty array representation ({} to {0}).
12060
12061 2004-06-07  Jackson Harper  <jackson@ximian.com>
12062
12063         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
12064         looking up extra gac paths. This allows MONO_GAC_PATH to act
12065         exactly like a prefix.
12066         
12067 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12068
12069         * reflection.c (mono_reflection_type_from_name): Make a copy of the
12070         type name before modifying it. Fixes #59405.
12071
12072 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12073
12074         * culture-info.h: added fields for "all datetime patterns".
12075         * locales.c: (  ves_icall_System_Globalization_CultureInfo
12076           _construct_datetime_format ()): fill xxx_patterns fields.
12077         * object.h: added fields for "all datetime patterns" to
12078           MonoDateTimeFormatInfo.
12079         * culture-info-tables.h: reflecting locale-builder updates.
12080
12081 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12082
12083         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
12084         the event has no add and remove methods. Fixes #59629.
12085
12086 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
12087
12088         * object.c: Fixed possible integer overflow when allocating large
12089         strings.
12090
12091 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12092
12093         * culture-info-tables.h: reflecting locale-builder updates.
12094
12095 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12096
12097         * culture-info-tables.h: reflecting locale-builder updates.
12098
12099 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
12100
12101         * culture-info-tables.h: reflecting locale-builder updates.
12102
12103 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
12104
12105         * threads.c: Made Thread.Sleep abortable.
12106
12107 2004-06-02  Martin Baulig  <martin@ximian.com>
12108
12109         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
12110
12111         * debug-mono-symfile.h: Bumped symbol file version number to 37.
12112
12113 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
12114
12115         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
12116
12117 2004-05-30  Jackson Harper  <jackson@ximian.com>
12118
12119         * reflection.c: Do not hardcode assembly versions or public key
12120         tokens anymore. All of this except the corlib section was dead
12121         code anyways.
12122         
12123 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
12124
12125         * object.c (mono_runtime_invoke_array): Automatically create boxed
12126         objects for byref valuetypes if needed. Fixes #59300.
12127         
12128         * object.c (mono_method_return_message_restore): Handle 
12129         MONO_TYPE_OBJECT as well.
12130
12131 2004-05-28  Jackson Harper  <jackson@ximian.com>
12132
12133         * reflection.c: The modified type encoding was causing build
12134         problems. Reverted for now.
12135         
12136 2004-05-28  Jackson Harper  <jackson@ximian.com>
12137
12138         * reflection.c/h: Take an assembly ref so that we dont create
12139         fully qualified names when encoding types in the same assembly as
12140         the custom attribute being emitted.
12141         * appdomain.c: Increment version number.
12142         
12143 2004-05-26  Duncan Mak  <duncan@ximian.com>
12144
12145         * icall.c
12146         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
12147         Set the full version number (major, minor, build, revision).
12148
12149 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
12150
12151         * marshal.c (emit_struct_conv): increment src/dst after blit
12152         (mono_marshal_get_managed_wrapper,
12153         mono_marshal_get_native_wrapper): make sure we have marshalling
12154         info before marshalling params (info computation affects
12155         blittable)
12156
12157         * class.c (class_compute_field_layout): correctly deal with
12158         blittable
12159         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
12160         value types (as per what windows dows by default)
12161         (mono_class_setup_mono_type): System.ValueType is blittable
12162         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
12163         blittable
12164
12165         * marshal.c (mono_marshal_load_type_info): flag types  as
12166         non-blittable if the native layout doesn't match the managed
12167         layout
12168
12169 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12170
12171         * appdomain.c: don't add stuff in the private search path that is
12172         above the application base. If application base is not set, there's
12173         no private search path.
12174
12175 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
12176
12177         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
12178         byref struct arguments in native->managed marshalling.
12179
12180 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
12181
12182         * marshal.c (mono_marshal_get_runtime_invoke): correctly
12183         cache methods using signature (special case for methods
12184         that are value type or string class)
12185         
12186         * image.c (mono_image_close): clean up allocated GSList's
12187         in runtime_invoke_cache.
12188
12189 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12190
12191         * mono-config.c: set the correct path for mono_cfg_dir on windows when
12192         there's no MONO_CFG_DIR environment variable defined.
12193
12194 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12195
12196         * threads.c: windows version must be >= 0x0500 to include OpenThread.
12197
12198 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
12199
12200         * threadpool.c: Really wait for 500ms after the async call, even if the wait
12201           is interrumped.
12202         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
12203           before waiting for it, and call CloseHandle after the wait to unref it.
12204           This will make sure that handles are not disposed too early.
12205
12206 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12207
12208         * appdomain.c:
12209         * appdomain.h:
12210         * icall.c: removed
12211         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
12212         needed now.
12213
12214         * object.c: se the application_base only for the domain that runs
12215         Main. Fixes bug #59216,
12216
12217 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12218
12219         * appdomain.c:
12220         * object.c: only the domain in which Main is run have
12221         SetupInformation.ConfigurationFile set, so moved a few lines from
12222         appdomain.c to object.c.
12223
12224 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12225
12226         * appdomain.c: we tried to load [name].(dll|exe), but according
12227         to bug #57710, we must also try [culture]/[name].(dll|exe) and
12228         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
12229         There's a test case attached to bug #58922.
12230
12231 2004-05-27  Dick Porter  <dick@ximian.com>
12232
12233         * icall.c:
12234         * file-io.c: Implemented icalls for locking and unlocking regions
12235         in a file.
12236         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
12237         FALSE on error (fixes both compiler warning and real bug.)
12238
12239 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
12240
12241         * culture-info-tables.h: reflecting locale-builder updates.
12242
12243           (Added missing ChangeLog entry for 05/26)
12244
12245 2004-05-27  Jackson Harper  <jackson@ximian.com>
12246
12247         * locales.c: Fix some cut and paste errors.
12248         
12249 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12250
12251         * mono-config.c: set the correct path for config. directory on windows.
12252
12253 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12254
12255         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
12256           on win32.
12257
12258 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12259
12260         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
12261         from pinvoke functions.
12262         
12263         * marshal.c (mono_ftnptr_to_delegate): Implement this.
12264
12265 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12266
12267         * culture-info-tables.h: reflecting locale-builder updates.
12268
12269 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12270
12271         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
12272         #59086.
12273
12274 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
12275
12276         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
12277         * icall.c: Modified icalls for RNG.
12278         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
12279         Windows (CryptoAPI).
12280
12281 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12282
12283         * locales.c: Fix build.
12284
12285 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12286
12287         * culture-info-tables.h: reflecting locale-builder updates.
12288
12289 2004-05-25  Jackson Harper  <jackson@ximian.com>
12290
12291         * locales.c: When creating the current culture use the $LANGs
12292         specific culture. So DateTimeFormat and NumberFormat entries are created.
12293         
12294 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12295
12296         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
12297         a char array as parameter.
12298
12299 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
12300
12301         * image.c: In mono_image_open(), always use an absolute path name to
12302           look for already loaded images.
12303
12304 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
12305
12306         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
12307         missing in the windows build (like older cygwin include files).
12308
12309 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
12310
12311         * icall.c: Fixed check for possible integer overflow in Buffer_
12312         BlockCopy icall. Replaced comments style // by /* */.
12313
12314 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
12315
12316         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
12317         
12318         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
12319         check after MONO_VTADDR. Fixes pinvoke2.exe.
12320
12321         * marshal.h marshal.c metadata.h: Add beginnings of support for
12322         ftnptr -> delegate marshalling.
12323
12324 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12325
12326         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12327         * threads.c: Fix warnings.
12328
12329 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12330
12331         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12332         * icall.c: Registered icalls for Suspend and Resume.
12333         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12334           Thread.Abort.
12335         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12336         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12337         * process.c: Use WaitForSingleObjectEx.
12338         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12339           checkpoints.
12340         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12341           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12342           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12343           background threads. Added basic support for Abort in Windows.
12344           Start new threads using a managed delegate invoke wrapper. This wrapper
12345           has an interruption checkpoint that is needed since an interruption
12346           can be requested before the thread leaves the unmanaged code that starts 
12347           the thread.
12348         * marshal.c: Added interruption checkpoint after every native call, and
12349           also before managed calls for wrappers called from unmanaged code to
12350           go into managed code.
12351         * object.h: Added new field in MonoThread to keep track of interruption
12352           requests.
12353
12354 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12355
12356         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12357         calls.
12358
12359 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12360
12361         * appdomain.c:
12362         * assembly.c:
12363         * gc.c:
12364         * locales.c:
12365         * mono-config.c:
12366         * rand.c: getenv -> g_getenv (windows!)
12367
12368         * process.c: complete_path is also used on non-windows platforms.
12369
12370 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12371
12372         * icall.c: new signature for Process_Start.
12373
12374         * process.[ch]: new signature for Process_Start. If we're on windows
12375         and UseShellExecute is false, we have to search for the program by
12376         ourselves if we don't get a full path.
12377
12378 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12379
12380         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12381         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12382
12383 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12384
12385         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12386         Fixes bug #58373.
12387
12388 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12389
12390         * process.c: use double quotes to quote program name and arguments on
12391         windows. Fixes bug #58575.
12392
12393 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12394
12395         * file-io.c: don't return "." and ".." when using windows Find*File.
12396
12397 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12398
12399         * marshal.c: Don't pass wrappers to message init because method 
12400         addressed used to lookup metadata. part of remoting[2|3] fix.
12401
12402 2004-05-15  Jackson Harper  <jackson@ximian.com>
12403
12404         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12405         path is essentially the same as MONO_PATH except that it points to
12406         GACs instead of lib directories.
12407         * loader.h: The user gac is gone so we dont need function to
12408         enable/disable it.
12409         * mono-config.c: user gac option is now gone.
12410         
12411 2004-05-15  Jackson Harper  <jackson@ximian.com>
12412
12413         * culture-info.h: Make defines more consistent, add calendar data
12414         to the culture info table.
12415         * culture-info-tables.h: Add basic calendar data. Basically
12416         everyone gets default gregorian until all the data is
12417         updated.
12418         * locales.c: Use the new consistent defines. Set calendar data for
12419         culture info objects.
12420         * object.h: add a field for calendar data to CultureInfo
12421         
12422 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12423
12424         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12425         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12426         a signature.
12427         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12428         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12429         an extra param that is the pointer of the method to invoke. The IL for
12430         the invoke method is no longer specific to the method, but to the
12431         signature of the method. Thus, we can share the same code for multiple
12432         methods. This reduces the number of methods that have to be compiled.
12433
12434 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12435
12436         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12437
12438         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12439
12440         * icall.c: Optimize Buffer.BlockCopy.
12441
12442 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12443
12444         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12445         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12446         quote). Changed them to "MMMM yyyy".
12447
12448 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12449
12450         * rand.c
12451         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12452
12453 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12454
12455         * reflection.h: Updated after changes to managed structures.
12456
12457         * appdomain.c: Bump corlib version.
12458
12459 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12460
12461         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
12462         windows.
12463
12464 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12465
12466         * Makefile.am: link to ../os/libmonoos.la on windows.
12467
12468         * assembly.c:
12469                 -If MONO_DEBUG, warn about non-existing directories in
12470                 MONO_PATH.
12471                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12472                 compile time variable.
12473                 -Removed init_default_path and call mono_set_rootdir from
12474                 libmonoos.a instead (windows only).
12475
12476         * assembly.h: declare mono_assembly_getrootdir().
12477
12478         * domain.c:
12479         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12480
12481         * loader.c: s/getenv/g_getenv/
12482
12483 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12484
12485         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12486
12487         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12488
12489         * metadata.h: Add new marshalling conversions.
12490
12491         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12492         function.
12493
12494         * reflection.c (mono_reflection_get_type): Lookup the type in all
12495         modules of a multi-module assembly. Fixes #58291.
12496
12497 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12498
12499         * threads.c: Before aborting a background, set the StopRequested
12500         state.  This avoids throwing the Abort exception.
12501         In mono_thread_manage, don't continue with the shutdown until all
12502         aborted threads have actually stopped.
12503
12504 2004-05-10  Jackson Harper  <jackson@ximian.com>
12505
12506         * locales.c: Remove the modifier from culture names.
12507         
12508 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12509
12510         * Makefile.am: monosn is not installed any more. It has been deprecated
12511         in favor of sn.
12512
12513 2004-05-07  Jackson Harper  <jackson@ximian.com>
12514
12515         * locales.c
12516         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12517         Fix array construction, add bailout if the length is 0.
12518
12519 2004-05-07  Dick Porter  <dick@ximian.com>
12520
12521         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12522         machine doesn't have a DNS entry.  Patch by Urs Muff
12523         (umuff@quark.com), fixes bug 57928.
12524
12525 2004-05-06  Jackson Harper  <jackson@ximian.com>
12526
12527         * reflection.c: Handle null PublicTokens properly. alloc mem for
12528         assembly names culture so we dont crash when freeing it.
12529         
12530 2004-05-06  Jackson Harper  <jackson@ximian.com>
12531
12532         * assembly.c: Check the usergac when loading with partial names.
12533         
12534 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12535
12536         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12537         does nothing for now (not required for Linux/Windows) but the class
12538         library can call it (and a newer or modified runtime could need it).
12539         * icall.c: Registred icall.
12540
12541 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12542
12543         * loader.c: prints a message on module loading error we set MONO_DEBUG
12544         environment variable.
12545
12546 2004-05-05  Jackson Harper  <jackson@ximian.com>
12547
12548         * appdomain.c: Handle PublicKeyToken=null properly.
12549         
12550 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12551
12552         * environment.c|h: Added icall ves_icall_System_Environment_
12553         GetOSVersionString to get the current OS version as a string.
12554         * icall.c: Registred icall.
12555
12556 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12557
12558         * object.c: in mono_object_get_virtual_method(), take into account that
12559         non-virtual methods don't have a slot in the vtable. Check needed when
12560         the object is a proxy.
12561
12562 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12563
12564         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
12565         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
12566
12567         * object.c (mono_class_compute_gc_descriptor): Fix warning.
12568
12569         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
12570         passed when a valuetype is expected.
12571
12572         * object.c (mono_unhandled_exception): Only set the exit code if the
12573         exception happens in the main thread. Fixes thread5.exe.
12574
12575         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
12576         invalid names. Fixes #58047.
12577
12578 2004-05-03  Jackson Harper  <jackson@ximian.com>
12579
12580         * assembly.c: This line was committed accidently and is unneeded.
12581         
12582 2004-05-03  Jackson Harper  <jackson@ximian.com>
12583
12584         * icall.c: Add new icall for Assembly::LoadWithPartialName
12585         * assembly.c/.h: new function that probes the GAC to load partial
12586         assembly names by Paolo Molaro.
12587         
12588 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12589
12590         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
12591         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
12592         (type_get_fully_qualified_name): Added PublicKeyToken when building a
12593         full type name.
12594
12595 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12596
12597         * appdomain.c: fixed check for 'neutral' culture and removed warning.
12598         * reflection.c: fix bug when parsing a full type name and Version is not
12599         the last thing in the string.
12600
12601 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
12602
12603         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
12604         crashes when it is freed.
12605
12606 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12607
12608         * assembly.c: print the compat warning to stderr.
12609
12610 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
12611
12612         * assembly.c (mono_assembly_load_references): Add a compatibility
12613         hack to run old applications that might be still referencing the
12614         3300-based assemblies, only do this for System.xxx.
12615
12616 2004-05-01  Jackson Harper  <jackson@ximian.com>
12617
12618         * appdomain.c: If the culture is neutral we set it to "".
12619         
12620 2004-04-29  Jackson Harper  <jackson@ximian.com>
12621
12622         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
12623
12624 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
12625  
12626         * string-icalls.c: added low overhead function for copying chars
12627         * icall.c: added needed icall for the above function
12628  
12629 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12630
12631         * icall.c: fix return value of get_global_assembly_cache.  Implemented
12632         Environment.GetLogicalDrives.
12633
12634 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
12635
12636         * rand.c: try and talk to egd or prngd
12637         for random bytes if opening devices fail.
12638
12639 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
12640
12641         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
12642         alignment for the type using the native alignment of its members 
12643         instead of using klass->min_align.
12644
12645         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
12646
12647 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12648
12649         * file-io.c:
12650         * socket-io.c: added check for sys/aio.h.
12651
12652 2004-04-28  Dick Porter  <dick@ximian.com>
12653
12654         * threads.c: Don't abort a thread thats already aborting, when
12655         terminating everything.
12656
12657 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12658
12659         * icall.c: added 2 new async calls for Socket.
12660
12661         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
12662         IO on *nix systems.
12663
12664         * threadpool.c: removed unused variable.
12665
12666 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
12667
12668         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
12669
12670 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12671
12672         * locales.c: put back string_invariant_tolower () and
12673         string_invariant_toupper ().
12674
12675 2004-04-26 David Waite <mass@akuma.org>
12676
12677         * file-io.h:
12678         * socket-io.h:
12679         * threads.h:
12680         * unicode.h: remove comma from end of enumeration declarations
12681
12682 2004-04-26 David Waite <mass@akuma.org>
12683
12684         * debug-mono-symfile.h:
12685         * decimal.c:
12686         * mono_debug.h:
12687         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
12688
12689
12690 2004-04-26  Jackson Harper  <jackson@ximian.com>
12691
12692         * appdomain.c: Increment version number.
12693         
12694 2004-04-26  Jackson Harper  <jackson@ximian.com>
12695
12696         * appdomain.c: Set assembly references public token value when
12697         PublicKeyToken is specified, not the hash_value. Free public token
12698         values when free assembly name data. Previously the public key
12699         token was hex decoded, however we are using hex encoded public key
12700         tokens, so this is not neccasary.
12701         * assembly.c: Lookup assemblies in the gac if their public token
12702         value is set. Add function to allow enabling user gac
12703         lookups. Specify whether or not the assembly was loaded from the
12704         GAC. Compare full assembly names when checking the cache for
12705         assemblies (Temporarily disabled see comment in code). Remove
12706         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
12707         specifies trace-loader they get extra info to stdout on the
12708         loading of assemblies.
12709         * image.h: Add a field for an assembly references public token
12710         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
12711         whether an assembly has been loaded from the GAC.
12712         * image.c: Remove a corlib -> mscorlib name mapping.
12713         * loader.h: Add function to enable/disable the user gac.
12714         * mono-config.c: Check if the usergac is enabled in the config
12715         file.
12716         * icall.c: New icall to determine whether or not an assembly has
12717         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
12718         * tabldefs.h: Add constant for assemblyref flag that specifies a
12719         full public key is used instead of a public token.
12720         * reflection.c: Remove mscorlib -> corlib mappings. Set
12721         PublicTokenValue instead of hash value. This value is a hex
12722         string so it does not need to be expanded.
12723
12724 2004-04-26  Martin Baulig  <martin@ximian.com>
12725
12726         * mono-debug-debugger.c (mono_debugger_initialize): Set
12727         `mono_debugger_initialized' before calling mono_debug_lock().
12728
12729 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
12730
12731         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
12732           InternalToUpper/InternalToLower.
12733         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
12734           removed invariant culture shortcut.  This is now done in managed code.
12735         * locales.c: (string_invariant_toupper/tolower) removed.
12736
12737 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12738
12739         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
12740         Added Poll internal call.
12741
12742         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
12743         call for Poll. Select was too heavy for polling a single socket.
12744
12745         * threadpool.[ch]: added mono_threadpool_cleanup.
12746         * threads.c: use it. Don't use Thread_Abort on windows.
12747
12748 2004-04-23  Martin Baulig  <martin@ximian.com>
12749
12750         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
12751
12752 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
12753
12754         * icall.c: Registred new icalls for key pair protection and added an
12755         icall for Environment.GetFolderPath on Windows.
12756         * security.c|h: Added new icalls for key pair protection.
12757
12758 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12759
12760         * socket-io.c: don't display the non-supported family warning for known
12761         families. Now this is not displayed on windows when checking support
12762         for IPv4/IPv6.
12763
12764 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12765
12766         * class.c: don't display the layout warning for static fields.
12767
12768 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
12769
12770         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
12771         * locales.c, locales.h: Added new icalls for culture-specific
12772         Char.ToLower and Char.ToUpper.
12773
12774 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12775
12776         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
12777         by David Waite.
12778
12779 2004-04-20  Martin Baulig  <martin@ximian.com>
12780
12781         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
12782         of the type name before passing it to mono_reflection_type_from_name().
12783
12784 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
12785
12786         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
12787         encodings here. Fixes #56965.
12788
12789 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
12790
12791         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12792         fix test on strstr result not that I can see anything that
12793         relies on the result.
12794
12795 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
12796
12797         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
12798         Fixes #57081.
12799
12800         * marshal.c (mono_marshal_get_string_encoding): New helper function.
12801
12802         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
12803         function to determine which marshalling to use for strings. Fixes
12804         #56965.
12805
12806         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
12807
12808         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
12809
12810 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
12811
12812         * icall.c: #include mono-config.h
12813
12814 2004-04-15  Jackson Harper  <jackson@ximian.com>
12815
12816         * culture-info-tables.h: Fix date formats for en-US culture.
12817         
12818 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
12819
12820         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
12821         ThreadPool.SetMinThreads.
12822         * threadpool.c: Implemented ThreadPool.GetMinThreads and
12823         ThreadPool.SetMinThreads.
12824
12825 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12826
12827         * mono-config.c: also load the .config file in the directory
12828         where the assembly was found.
12829
12830 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
12831
12832         * assembly.c: load per-assembly config files.
12833         * icall.c: decrapified code to get the config dir and moved to
12834         mono-config.c.
12835         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
12836         per-assembly config files. When doing a dll map lookup give precedence
12837         to the per-assembly data.
12838
12839 2004-04-14  Martin Baulig  <martin@ximian.com>
12840
12841         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
12842         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
12843         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
12844
12845         * mono-debugger-debugger.c: While the debugger is locked, remember
12846         whether the symbol tables have changes and send one single
12847         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
12848
12849 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
12850
12851         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
12852
12853         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
12854         function.
12855
12856         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
12857         account when marshalling string arrays. Fixes #56965.
12858
12859 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
12860
12861         * icall.c: Add new icalls mapping for security.
12862         * security.c|h: Add internal calls for WindowsIdentity,
12863         WindowsImpersonationContext and WindowsPrincipal.
12864
12865 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
12866
12867         * class.c: Added comment to ensure the System.MonoDummy class
12868         is removed when no longer necessary
12869
12870 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
12871
12872         * appdomain.c: Pass arguments to the bootstraping exceptions to
12873         minimize JITed methods at boot
12874
12875         * metadata.c (mono_exception_from_name_two_strings): Allow for the
12876         second string to be null.
12877
12878         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12879         Change the protocol to minimize the JIT methods at startup.  Now
12880         it Returns the internal codepage, if the value of "int_code_page"
12881         is 1 at entry, and we can not compute a suitable code page
12882         number, returns the code page as a string.
12883
12884 2004-04-13  Jackson Harper  <jackson@ximian.com>
12885
12886         * culture-info-tables.h: Fix number of decimal digits for all
12887         english locales.
12888
12889 2004-04-13  Jackson Harper  <jackson@ximian.com>
12890
12891         * icall.c: Clairfy out of sync error message. It is not always
12892         your corlib that is out of sync.
12893
12894 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
12895
12896         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
12897         properties when only the set accessor is overriden. Fixes #55874.
12898
12899 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
12900
12901         * assembly.c (mono_assembly_load_references): Make this thread safe.
12902         Fixes #56327.
12903
12904 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
12905
12906         * monosn.c: Add missing initialization calls.
12907
12908 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
12909
12910         * locales.c:
12911         ves_icall_System_Globalization_CultureInfo_construct_number_format
12912         Fix g_assert so it compiles on fussier compilers re int/ptr
12913         mismatch
12914
12915 2004-04-08  Dick Porter  <dick@ximian.com>
12916
12917         * socket-io.h:
12918         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
12919         53992.  Also rearrange the code so that the internal calls return
12920         an error value and exceptions are thrown from managed code.
12921
12922         * icall.c: Add type info to the socket icalls.
12923
12924 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12925
12926         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
12927         owes me a beer.
12928
12929 2004-04-07  Martin Baulig  <martin@ximian.com>
12930
12931         * class.c (mono_class_from_generic_parameter): Don't default
12932         `klass->parent' to `mono_defaults.object_type'.
12933
12934 2004-04-07  Martin Baulig  <martin@ximian.com>
12935
12936         * reflection.c (mono_reflection_initialize_generic_parameter): Set
12937         `param->pklass->reflection_info'.       
12938
12939 2004-04-07  Jackson Harper  <jackson@ximian.com>
12940
12941         * culture-info-tables.h: Fix date separator symbol.
12942         
12943 2004-04-07  Martin Baulig  <martin@ximian.com>
12944
12945         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
12946         from System.Type to System.MonoType.
12947
12948 2004-04-07  Martin Baulig  <martin@ximian.com>
12949
12950         * reflection.h
12951         (MonoReflectionGenericParam): Added `has_reference_type' and
12952         `has_value_type' fields.
12953
12954         * reflection.c (mono_image_get_generic_param_info): Encode the
12955         correct flags if we have the `class' or `struct' constraint.
12956
12957 2004-04-07  Martin Baulig  <martin@ximian.com>
12958
12959         * reflection.h
12960         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
12961
12962 2004-04-07  Jackson Harper  <jackson@ximian.com>
12963
12964         * appdomain.c: Revert extra patches, just wanted to bump the
12965         version number.
12966         
12967 2004-04-07  Jackson Harper  <jackson@ximian.com>
12968
12969         * Makefile.am: Add culture-info private headers.
12970         * icall.c: Add new icalls for contructing locales.
12971         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
12972         * locales.h: Declare new culture info construction methods.
12973         * object.h: Add new fields used to avoid the CultureMap to
12974         MonoCultureInfo.
12975         * culture-info.h: Definition of structs used in the culture info
12976         tables.
12977         * culture-info-tables.h: Autogenerated tables that contain culture
12978         info data. This file was generated with the locale-builder tool.
12979         * appdomain.c: Incement corlib version number.
12980         
12981 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
12982
12983         * appdomain.c: (mono_runtime_init) move mono_thread_init
12984         to before mono_object_new calls so critical sections
12985         are initialized before use.
12986
12987 2004-04-07  Martin Baulig  <martin@ximian.com>
12988
12989         * icall.c
12990         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
12991         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
12992         (ves_icall_MonoGenericParam_initialize): Removed.
12993         (monogenericparam_icalls): Removed.
12994         (generictypeparambuilder_icalls): Added new table for
12995         System.Reflection.Emit.GenericTypeParameterBuilder.
12996
12997         * reflection.c
12998         (mono_reflection_define_generic_parameter): Removed.
12999         (mono_reflection_initialize_generic_parameter): This is now called
13000         from GenericTypeParameterBuilder's .ctor.
13001
13002 2004-04-06  Martin Baulig  <martin@ximian.com>
13003
13004         * class.c (mono_class_init): Don't inflate nested classes in a
13005         generic instance.
13006         (mono_type_get_name_recurse): Include the generic arguments for
13007         generic instances and generic type declarations.
13008         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
13009         (_mono_class_get_instantiation_name): Removed.
13010         (mono_class_create_generic): Always use `gklass->name' as our name.
13011
13012         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
13013
13014         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
13015         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
13016         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
13017         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
13018         closed generic methods here.
13019
13020         * reflection.c
13021         (mono_reflection_generic_inst_get_nested_types): Removed.
13022         (inflate_mono_method): Copy the generic parameters from the
13023         MonoMethodHeader into out MonoGenericMethod.
13024
13025 2004-04-06  Martin Baulig  <martin@ximian.com>
13026
13027         * row-indexes.h
13028         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
13029
13030         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
13031
13032         * reflection.c (build_compressed_metadata): If we have any entries
13033         in the GenericParam, MethodSpec or GenericParamConstraint tables,
13034         set the header version to 1.1.
13035
13036 2004-04-06  Martin Baulig  <martin@ximian.com>
13037
13038         * class.c (mono_class_init): If we're a generic instance,
13039         initialize our nested classes, too.
13040         (_mono_class_get_instantiation_name): Deal with the new `!%d'
13041         suffix. 
13042
13043 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13044
13045         * process.c: quote the argument passed to the shell on windows.
13046
13047 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
13048
13049         * threads.c (mono_alloc_special_static_data): Allow this to be
13050         called during startup.
13051
13052 2004-04-02  Martin Baulig  <martin@ximian.com>
13053
13054         * icall.c
13055         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
13056
13057 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
13058
13059         * icall.c: Fix build.
13060
13061 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
13062
13063         * Makefile.am: Added security.c|h.
13064         * icall.c: Added icall for get_UserName;
13065         * security.c: New file for security related icalls. Added function
13066         get_UserName for System.Environment (fix #56144).
13067         * security.h: New. Header file for security.c
13068
13069 2004-04-02  Dick Porter  <dick@ximian.com>
13070
13071         * icall.c: Deleted the icalls that were obsoleted some time ago
13072         by the ICU string code, and which were mixed into the icall
13073         rearranging.  Fixes bug 55969.
13074
13075         * string-icalls.h: 
13076         * string-icalls.c: Deleted the code that those icalls reference.
13077
13078 2004-04-01  Martin Baulig  <martin@ximian.com>
13079
13080         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
13081
13082         * class.c (mono_class_from_generic_parameter): Don't set 
13083         TYPE_ATTRIBUTE_INTERFACE.
13084         (my_mono_class_from_generic_parameter): Likewise.
13085
13086 2004-04-01  Martin Baulig  <martin@ximian.com>
13087
13088         * loader.c (find_method): Added an optional `MonoClass *ic'
13089         argument to search in a specific interface.
13090         (mono_get_method_constrained): New public function.
13091
13092 2004-04-01  Martin Baulig  <martin@ximian.com>
13093
13094         * reflection.c (mono_image_get_generic_field_token): Use the
13095         `handleref' cache here.
13096
13097 2004-04-01  Martin Baulig  <martin@ximian.com>
13098
13099         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
13100
13101         * reflection.c (create_generic_typespec): Use the `typespec' hash
13102         here, not the `typeref' one.    
13103
13104 2004-04-01  Martin Baulig  <martin@ximian.com>
13105
13106         * class.c (mono_class_inflate_generic_type): Moved the
13107         functionality into a new static inflate_generic_type() which
13108         returns NULL if it didn't do anything.  Only increment the
13109         `mono_stats.inflated_type_count' if we actually inflated
13110         something.
13111         (mono_class_get_full): Check the classes type to see whether we
13112         need to inflate it; also inflate MONO_TYPE_(M)VAR.
13113
13114 2004-04-01  Jackson Harper  <jackson@ximian.com>
13115
13116         * reflection.c: Set culture for assembly references.
13117         
13118 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
13119
13120         * reflection.[ch], icall.[ch], Fix support for pinning variables.
13121
13122 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13123
13124         * assembly.c:
13125         (do_mono_assembly_open): the critical section also covers
13126         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
13127
13128 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13129
13130         * threads.c:
13131         (mono_manage_threads): abort the background threads when finishing.
13132         Fixes bug #47232.
13133
13134 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13135
13136         * gc.c: only close the done_event handle if there was no timeout.
13137         C-ified comments.
13138
13139 2004-03-30  Martin Baulig  <martin@ximian.com>
13140
13141         * icall.c (icall_entries): It's called "System.Activator", not
13142         "System.Activation".    
13143
13144 2004-03-30  Martin Baulig  <martin@ximian.com>
13145
13146         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
13147         (mono_class_create_from_typespec): Likewise.
13148
13149 2004-03-30  Martin Baulig  <martin@ximian.com>
13150
13151         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
13152         `has_ctor_constraint' and `initialized'.
13153
13154 2004-03-30  Martin Baulig  <martin@ximian.com>
13155
13156         * reflection.c (encode_new_constraint): New static function to add
13157         the constructor constraint attribute to a type parameter.
13158         (encode_constraints): Call encode_new_constraint() if necessary.
13159
13160         * reflection.h
13161         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
13162
13163         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
13164         
13165 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
13166
13167         * reflection.c, icall.c: add support for pinning variables. 
13168
13169 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
13170
13171         * marshal.c (mono_marshal_get_managed_wrapper):
13172         init bool local with zero rather than null.
13173
13174 2004-03-29  Martin Baulig  <martin@ximian.com>
13175
13176         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
13177         the "official" behavior here.
13178         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
13179
13180 2004-03-29  Martin Baulig  <martin@ximian.com>
13181
13182         * icall.c: Reflect latest API changes.
13183
13184 2004-03-29  Martin Baulig  <martin@ximian.com>
13185
13186         * loader.c (mono_get_method_from_token): Also call
13187         mono_metadata_load_generic_params () for abstract and interface
13188         methods; replace the type arguments in the method signature with
13189         the ones which are loaded from the metadata.
13190
13191 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
13192
13193         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
13194         of the lock is not the current thread. MS.NET don't do it, in spite of
13195         what the documentation says. See bug #56157.
13196
13197 2004-03-28  Martin Baulig  <martin@ximian.com>
13198
13199         * class.c (mono_class_init): Don't call init_properties() and
13200         init_events() for generic instances; set `prop->parent' when
13201         inflating properties.
13202
13203         * reflection.c (mono_generic_inst_get_object): Call
13204         `mono_class_init (ginst->klass)'.
13205         (mono_type_get_object): Only create a MonoGenericInst if your
13206         generic type is a TypeBuilder.
13207         (do_mono_reflection_bind_generic_parameters): Only set
13208         `ginst->is_dynamic' if our generic type is a TypeBuilder.
13209
13210 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
13211
13212         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
13213         Fixes #56091.
13214
13215 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13216
13217         * icall.c: added Kill_internal icall.
13218         * process.[ch]: added Kill_internal icall.
13219
13220 2004-03-25  Martin Baulig  <martin@ximian.com>
13221
13222         * class.h (MonoStats): Added `generic_instance_count',
13223         `inflated_method_count', `inflated_type_count' and
13224         `generics_metadata_size'.       
13225
13226 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13227
13228         * reflection.c: no warnings now.
13229
13230 2004-03-25  Martin Baulig  <martin@ximian.com>
13231
13232         * class.c (mono_class_get_full): New public function; does a
13233         mono_class_get(), but also takes a `MonoGenericContext *'.
13234
13235         * loader.c (mono_field_from_memberref): Renamed to
13236         `field_from_memberref', made static and added `MonoGenericContext *'
13237         argument.
13238         (mono_field_from_token): Added `MonoGenericInst *' argument.
13239         (method_from_memberef): Likewise.
13240         (mono_get_method_from_token): Likewise.
13241         (mono_get_method_full): New public function; does a
13242         mono_get_method(), but also takes a `MonoGenericContext *'.
13243
13244         * verify.c (mono_method_verify): Get the method's generic context
13245         and pass it to mono_field_from_token(), mono_get_method_full() and
13246         mono_class_get_full().
13247
13248 2004-03-25  Martin Baulig  <martin@ximian.com>
13249
13250         * class.c (mono_class_inflate_generic_type): Take a
13251         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
13252         `MonoGenericMethod *'.
13253
13254 2004-03-25  Martin Baulig  <martin@ximian.com>
13255
13256         * loader.h (MonoMethodInflated): Store the MonoGenericContext
13257         instead of the MonoGenericMethod here.
13258
13259 2004-03-25  Martin Baulig  <martin@ximian.com>
13260
13261         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
13262         each time we create a new MonoGenericInst, we also create a new
13263         context which points back to us.
13264
13265         * class.c (inflate_method): Use `ginst->context' instead of
13266         creating a new context.
13267
13268         * loader.c (method_from_memberref): Use
13269         `klass->generic_inst->context' instead of creating a new context.
13270
13271 2004-03-25  Martin Baulig  <martin@ximian.com>
13272
13273         * class.h (MonoGenericContext): New struct.
13274         (MonoGenericMethod): Removed `generic_inst'.
13275
13276         * class.c (mono_class_inflate_generic_method): Take a
13277         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
13278
13279 2004-03-25  Martin Baulig  <martin@ximian.com>
13280
13281         * loader.h (MonoMethodInflated): New typedef.
13282
13283         * metadata.h (MonoMethodSignature): Removed `gen_method', make
13284         `generic_param_count' consume just 30 bits, added `is_inflated'
13285         and `has_type_parameters' flags (one bit each).
13286
13287         * class.c (mono_class_inflate_generic_method): Create a
13288         MonoMethodInflated instead of a MonoMethodNormal and set
13289         `is_inflated' in the method signature.
13290
13291         * class.h (MonoGenericMethod): Removed `generic_method'.
13292
13293 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
13294
13295         * image.c: Make sure the name of a MonoImage is always an absolute path.
13296           This fixes bug #54415.
13297
13298 2004-03-24  Martin Baulig  <martin@ximian.com>
13299
13300         * class.c (mono_class_setup_vtable): If we're a generic instance,
13301         use our generic type's vtable size.
13302
13303 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
13304
13305         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
13306         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
13307         problems.
13308
13309 2004-03-23  Martin Baulig  <martin@ximian.com>
13310
13311         * class.h (MonoDynamicGenericInst): Added `int count_events' and
13312         `MonoEvent *events'.
13313
13314         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
13315         (typebuilder_icalls): Added "get_event_info"; calls
13316         mono_reflection_event_builder_get_event_info(). 
13317
13318         * reflection.c (mono_reflection_generic_inst_initialize): Added
13319         `MonoArray *events'.
13320         (mono_reflection_event_builder_get_event_info): New function.
13321
13322 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
13323
13324         * object.h: add mono_type_initialization_init
13325
13326         * object.c (mono_runtime_class_init): 
13327         implement class constructor synchronization rules
13328         to cope with threading issues.  
13329         add mono_type_initialization_init
13330
13331         * appdomain.c (mono_runtime_init): call 
13332         mono_type_initialization_init
13333
13334         * class.h: removing initializing field from MonoVTable
13335
13336 2004-03-23  Martin Baulig  <martin@ximian.com>
13337
13338         * class.c (my_mono_class_from_generic_parameter): Use
13339         `param->name' if it's not NULL. 
13340
13341 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13342
13343         * class.c: do not insert non-virtual methods in the vtable.
13344         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13345         that means the method is non-virtual. This never would have
13346         happened before.
13347
13348 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13349
13350         * profiler.c: Added lock for accessing coverage_hash.
13351
13352 2004-03-22  Martin Baulig  <martin@ximian.com>
13353
13354         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13355         `method->method->signature->generic_param_count != 0' to make it
13356         work for interface methods.
13357
13358 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13359
13360         * process.c: quote the string passed to the shell using g_shell_quote.
13361
13362 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13363
13364         * threads.c:
13365         (mono_threads_manage): don't remove the finalizer thread and self
13366         from the threads hash table so that mono_thread_manage can be called
13367         more than once.
13368
13369 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13370
13371         * process.c: quote the arguments when UseShellExecute is true. Fixes
13372         bug #55790.
13373
13374 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13375
13376         * threads.c: set mono_thread_detach as a cleanup routine for every
13377         thread. This way it's always executed upon thread termination, either
13378         aborted or finished normally. No more xsp hangs!
13379
13380 2004-03-17  Martin Baulig  <martin@ximian.com>
13381
13382         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13383         `int count_nested' and a `MonoType **nested'.
13384
13385         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13386         most of the functionality into a new static
13387         do_mono_reflection_bind_generic_parameters() and don't take a
13388         `MonoType *nested_in' argument any more.  Don't compute nested
13389         types here.
13390         (mono_reflection_generic_inst_get_nested_types): New public method
13391         to get nested types.
13392
13393         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13394         we're a nested class.
13395
13396         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13397         mono_reflection_generic_inst_get_nested_types() to compute the
13398         nested types.
13399
13400 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13401
13402         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13403         descriptive error message under windows.
13404         
13405 2004-03-17  Martin Baulig  <martin@ximian.com>
13406
13407         * class.c (dup_type): Added `const MonoType *original' argument;
13408         copy the attrs from the original type.
13409
13410 2004-03-17  Martin Baulig  <martin@ximian.com>
13411
13412         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13413         `m->generic_inst_cache' here.
13414
13415 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13416
13417         * exception.h exception.c: Add stack_overflow_exception.
13418
13419 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13420
13421         * threadpool.c:
13422         (overlapped_callback): call SetEvent *after* invoking the callback.
13423         No need to call CloseHandle.
13424
13425 2004-03-16  Martin Baulig  <martin@ximian.com>
13426
13427         * reflection.c (mono_image_get_fieldref_token): Take a
13428         `MonoReflectionField *' instead of a `MonoClassField *' and a
13429         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13430
13431 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13432
13433         * appdomain.c: don't add the culture to the filename we're looking for
13434         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13435
13436 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13437
13438         * locales.c: don't ignore symbols when doing case insensitive compares.
13439         Thanks Dick! Fixes bug #54046.
13440
13441         * threads.c: surround 'threads' usage with enter/leave in
13442         mono_thread_manage.
13443
13444 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13445
13446         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13447         implicitly marshalled as [Out]. Fixes #55450.
13448
13449         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13450         an exception.
13451
13452 2004-03-16  Martin Baulig  <martin@ximian.com>
13453
13454         * class.c (mono_class_from_generic_parameter): Use the actual
13455         parameter name. 
13456
13457 2004-03-16  Martin Baulig  <martin@ximian.com>
13458
13459         * reflection.c (type_get_signature_size): New static function.
13460         Compues the size of the type in a method signature.
13461         (method_get_signature_size): New static function; calls
13462         type_get_signature_size() to compute the actual size of the
13463         method's signature.
13464         (method_encode_signature): Use method_get_signature_size() to get
13465         the signature's size rather than using `nparams * 10'.
13466
13467 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13468
13469         * file-io.h: define here WapiOverlapped on windows. I don't want the
13470         regular OVERLAPPED one.
13471
13472         * file-io.c:
13473         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13474         Disabling AIO on windows.
13475
13476 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13477
13478         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13479         bug #55385.
13480
13481 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13482
13483         * appdomain.c: upgraded corlib version.
13484
13485         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13486         and BeginWrite. Allow opening files for asynchrnous operations.
13487
13488         * file-io.h: new struct that maps FileStreamAsyncResult.
13489         * icall.c: added new icalls.
13490         * process.[ch]: support setting child process environment variables
13491         and use the SHELL or COMSPEC when UseShellExecute is true.
13492
13493         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13494         callback for async. IO is here and also BindHandle.
13495
13496         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13497         from here.
13498
13499 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13500
13501         * reflection.c (create_custom_attr): Allow len == 0.
13502
13503         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13504         computation on big-endian machines.
13505
13506 2004-03-13  Martin Baulig  <martin@ximian.com>
13507
13508         * class.h (MonoGenericInst): Added `int count_ifaces'.
13509
13510         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13511         `ginst->count_ifaces' instead `klass->interface_count' since we
13512         may get called before the vtable is created.
13513
13514         * loader.c (mono_method_get_param_names): If we're a generic
13515         instance, return and don't initialize the class.
13516
13517         * reflection.c (mono_reflection_setup_generic_class): Don't call
13518         ensure_runtime_vtable().
13519         (mono_reflection_bind_generic_parameters): Set
13520         `ginst->count_ifaces'.
13521
13522 2004-03-11  Jackson Harper <jackson@ximian.com>
13523
13524         * icall.c:
13525         * unicode.c:
13526         * unicode.h: Remove unused System.Char icalls.
13527         
13528 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13529
13530         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13531         code when we P/Invoke the first library in Windows.Forms, instead
13532         of when we first open the assembly.
13533
13534         * assembly.c: Drop the lookup from here.
13535
13536 2004-03-10  Martin Baulig  <martin@ximian.com>
13537
13538         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13539         class for properties, fields and events.  Finally fixes #54945.
13540
13541 2004-03-10  Martin Baulig  <martin@ximian.com>
13542
13543         * metadata.c (mono_metadata_class_equal): New static function;
13544         checks whether two generic instances or two generic parameters are
13545         equal.
13546         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13547         compare classes.        
13548
13549 2004-03-10  Martin Baulig  <martin@ximian.com>
13550
13551         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13552
13553         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13554         argument and write it into the `reflection_info' field.
13555
13556         * icall.c
13557         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13558         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13559
13560 2004-03-09  Jackson Harper  <jackson@ximian.com>
13561
13562         * char-conversions.h: use 8 bits for numeric data its all we need
13563         * icall.c: numeric data is only 8 bits now.
13564
13565 2004-03-09  Martin Baulig  <martin@ximian.com>
13566
13567         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
13568
13569         * class.c (init_properties, init_events): Initialize the new
13570         `parent' field.
13571
13572         * reflection.c (typebuilder_setup_properties): Likewise.
13573         (typebuilder_setup_events): Likewise.
13574
13575         * reflection.h (MonoEventInfo): Replaced `parent with
13576         `declaring_type' and `reflected_type'.
13577
13578         * icall.c (ves_icall_get_property_info): Distinguish between
13579         declaring and reflected type.
13580         (ves_icall_get_event_info): Likewise.
13581
13582 2004-03-09  Martin Baulig  <martin@ximian.com>
13583
13584         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
13585         (ves_icall_Type_GetField): Correctly set field->klass.
13586
13587 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
13588
13589         * loader.h: Fix warning.
13590
13591 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
13592
13593         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
13594         library routine if present.  Notice that it will still continue
13595         executing even if its missing, for those working on the Gtk#
13596         edition of Windows.Forms.
13597
13598         * assembly.c (do_mono_assembly_open): If loading the
13599         System.Windows.Forms call mono_loader_wini_init.
13600
13601 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
13602
13603         * class.h: Added MonoRemoteClass struct.
13604         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
13605         function for MonoStrings.
13606         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
13607         Added internal call for getting the proxy type.
13608         * marshal.c: Get the type of transparent proxies from its remote_class.
13609         Added methods that generate the IL for type checks and casts:
13610         mono_marshal_get_isinst, mono_marshal_get_castclass, 
13611         mono_marshal_get_proxy_cancast.
13612         * marshal.h: Declaration of the previous new methods.
13613         * object.c: Added new moethods for creating and updating MonoRemoteClass
13614         instances: mono_remote_class, mono_upgrade_remote_class, 
13615         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
13616         * verify.c: FIx transparent_proxy_fields layout.
13617         * appdomain.c: Bump corlib version.
13618
13619 2004-03-04  Jackson Harper  <jackson@ximian.com>
13620
13621         * icall.c: Add icall to access char conversion tables.
13622         * char-conversions.h: Character conversion tables.
13623         * Makefile.am: Add char-conversions.h private header file.
13624         
13625 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
13626
13627         * appdomain.c (unload_thread_main): Increase unloading timeout to
13628         10 sec as a temporary workaround for Nant problems.
13629
13630 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
13631
13632         * gc.c: Add checks for GC_enable and GC_disable.
13633
13634         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
13635         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
13636         (bug #54988).
13637         
13638 2004-02-27  Martin Baulig  <martin@ximian.com>
13639
13640         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13641         `MonoReflectionType *' instead of a `MonoType *'.
13642
13643 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
13644
13645         * gc.c (run_finalize): Avoid finalizing the object representing the
13646         finalizer thread.
13647         (finalizer_thread): Fix warning.
13648
13649 2004-02-25  Martin Baulig  <martin@ximian.com>
13650
13651         * class.c (_mono_class_get_instantiation_name): Added `int offset'
13652         argument for nested types.
13653         (mono_class_create_generic): Added support for nested generictypes.
13654
13655         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
13656         `GList *nested'.
13657
13658         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
13659
13660         * reflection.c (method_encode_signature): Increase the minimum
13661         value of `size' from 10 to 11.
13662         (mono_reflection_bind_generic_parameters): Take `int type_argc'
13663         and `MonoType **types' arguments instead of the `MonoArray
13664         *types'; added `MonoType *nested_in'.  Recursively instantiate
13665         nested classes. 
13666
13667 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
13668
13669         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
13670         stack_overflow_ex members which are used by exception handling.
13671
13672         * appdomain.c (mono_runtime_init): Initialize the new members.
13673
13674         * gc.c (mono_gc_enable): New helper function.
13675         * gc.c (mono_gc_disable): New helper function.
13676
13677 2004-02-23  Martin Baulig  <martin@ximian.com>
13678
13679         * icall.c: I must have been really stupid - make it actually work
13680         this time ;-)
13681
13682 2004-02-23  Martin Baulig  <martin@ximian.com>
13683
13684         * loader.c (method_from_memberref): Only inflate the method if
13685         it's in another klass.
13686
13687 2004-02-23  Martin Baulig  <martin@ximian.com>
13688
13689         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
13690         (mono_class_init): If we're a generic instance and an interface,
13691         compute `class->interface_id'; also create `class->interfaces'
13692         here and inflate them.
13693
13694         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
13695         `ginst->is_open'.
13696         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
13697
13698         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
13699
13700 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
13701
13702         * reflection.c (method_encode_code): Improved the error message
13703         generated by the exception.
13704
13705 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13706
13707         * icall.c: Martin did not do what he said in the ChangeLog for
13708         2004-02-18, but put back the changes for properties and events.
13709         Commenting those changes out again and adding comment to bug #54518.
13710         
13711         * process.c: removed warning.
13712
13713 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
13714
13715         * marshal.c (emit_struct_conv): Print an error message instead of
13716         asserting when a type does not have the StructLayout attribute.
13717
13718 2004-02-20  Martin Baulig  <martin@ximian.com>
13719
13720         * reflection.c (mono_type_get_object): Also use the cache for
13721         generic instances.
13722         (mono_reflection_bind_generic_parameters): Always compute
13723         `ginst->ifaces'.        
13724
13725 2004-02-20  Martin Baulig  <martin@ximian.com>
13726
13727         * class.h (MonoGenericMethod): Removed `klass'.
13728
13729         * class.c (mono_class_inflate_generic_method): Added `MonoClass
13730         *klass' argument.
13731
13732 2004-02-20  Martin Baulig  <martin@ximian.com>
13733
13734         * reflection.c (method_encode_methodspec): Actually use the
13735         uninflated signature for the memberref.
13736
13737 2004-02-20  Martin Baulig  <martin@ximian.com>
13738
13739         * class.h (MonoGenericMethod): Removed `declaring'.
13740
13741         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
13742         is NULL, compute it here.
13743
13744 2004-02-20  Martin Baulig  <martin@ximian.com>
13745
13746         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
13747
13748         * metadata.c (mono_metadata_generic_inst_hash): New method.
13749         (mono_metadata_generic_inst_equal): New method.
13750
13751         * reflection.c (mono_reflection_bind_generic_parameters): Use the
13752         `klass->image->generic_inst_cache' cache to avoid creating
13753         duplicate MonoGenericInst's.
13754
13755         * class.c (mono_class_inflate_generic_type): Use the cache.
13756
13757 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
13758
13759         * object.c: fixed gc descriptor calculation for embedded valuetypes.
13760
13761 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13762
13763         * icall.c: added Socket.WSAIoctl icall.
13764
13765         * socket-io.[ch]: implemented
13766         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
13767
13768 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
13769
13770         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
13771
13772 2004-02-18  Urs C Muff  <umuff@quark.com>
13773
13774         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
13775         this work on PPC and other big-endian architectures.
13776
13777         * debug-mono-symfile.h: Prepended the names of all the `guint32'
13778         fields with an underscore to make sure they're only accessed by
13779         the read32() macro.
13780
13781 2004-02-18  Martin Baulig  <martin@ximian.com>
13782
13783         * icall.c: Put the klass->refclass changes back for methods and
13784         fields, but not for properties and events.  We're currently not
13785         distinguishing between DeclaringType and ReflectedType for
13786         properties and events, that's what caused the regressions.
13787
13788 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13789
13790         * object.c:
13791         (mono_async_result_new): the handle can be NULL.
13792
13793         * threadpool.c: Use an event instead of a semaphore, don't initialize
13794         it until needed. This saves quite a few semaphores from being created
13795         when using the threadpool.
13796
13797 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
13798
13799         * object.c (mono_string_is_interned_lookup): Fix interning of long
13800         strings. Fixes #54473.
13801
13802         * domain.c (ldstr_equal): Optimize if the two strings are equal.
13803
13804         * icall.c: Revert the klass->refclass changes since they introduce
13805         regressions (bug #54518).
13806
13807 2004-02-18  Martin Baulig  <martin@ximian.com>
13808
13809         * class.c (mono_class_init): If we're a generic instance and don't
13810         come from a TypeBuilder, inflate our members here.
13811         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
13812         (mono_class_create_generic): New public method.
13813         (mono_class_initialize_generic): Removed.
13814         (get_instantiation_name): Renamed to
13815         _mono_class_get_instantiation_name() and made it public.
13816
13817 2004-02-18  Martin Baulig  <martin@ximian.com>
13818
13819         * class.c (mono_class_inflate_generic_type): Clear the new
13820         instance's `nginst->klass' when inflating a generic instance.
13821         (mono_class_is_subclass_of): Added (basic) support for generic
13822         instances.
13823
13824 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
13825
13826         * appdomain.h, domain.c: use a MonoCodeManager instead of a
13827         MonoMempool to hold compiled native code.
13828
13829 2004-02-17  Martin Baulig  <martin@ximian.com>
13830
13831         * class.h (MonoDynamicGenericInst): Added `count_properties' and
13832         `properties'.
13833
13834         * reflection.c (mono_reflection_generic_inst_initialize): Added
13835         `MonoArray *properties' argument.
13836
13837         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
13838
13839 2004-02-17  Martin Baulig  <martin@ximian.com>
13840
13841         * icall.c (ves_icall_Type_GetFields): Renamed to
13842         ves_icall_Type_GetFields_internal() and added a
13843         `MonoReflectionType *rtype' argument; pass it to
13844         mono_field_get_object() to set the field's "reflected" type.
13845         (ves_icall_Type_GetConstructors): Likewise.
13846         (ves_icall_Type_GetEvents): Likewise.
13847         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
13848         argument; pass it to mono_method_get_object() to set the method's
13849         "reflected" type.       
13850
13851 2004-02-17  Martin Baulig  <martin@ximian.com>
13852
13853         * class.h (MonoDynamicGenericInst): New type.
13854         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
13855
13856         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
13857         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
13858         (ves_icall_MonoGenericInst_GetFields): New interncall.
13859
13860         * class.c (mono_class_from_generic): Don't call
13861         mono_class_initialize_generic() if this is a dynamic instance;
13862         ie. it's being created from a TypeBuilder.
13863         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
13864         `class->byval_arg.type'.
13865
13866         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
13867         to `inflate_method' and made static.
13868         (mono_reflection_inflate_field): Removed.
13869         (mono_reflection_generic_inst_initialize): New public method.
13870
13871         * reflection.h (MonoReflectionGenericInst): Removed `methods',
13872         `ctors' and `fields'; added `initialized'.
13873
13874 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
13875
13876         * debug-helpers.c (mono_method_full_name): Fix output for empty
13877         namespaces.
13878
13879 2004-02-12  Martin Baulig  <martin@ximian.com>
13880
13881         * class.h (MonoClassField): Added `MonoType *generic_type'.
13882
13883         * reflection.c (mono_image_get_fieldref_token): Added support for
13884         instantiated generic types.
13885         (field_encode_inflated_field): Removed.
13886         (mono_image_get_inflated_field_token): Removed.
13887         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
13888
13889         * reflection.h (MonoReflectionInflatedField): Removed.
13890
13891 2004-02-12  Martin Baulig  <martin@ximian.com>
13892
13893         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
13894         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
13895
13896         * reflection.c (mono_image_get_methodspec_token): Take a
13897         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
13898         (mono_image_create_token): Check whether we have a
13899         `method->signature->gen_method' and call
13900         mono_image_get_methodspec_token() if appropriate.
13901         (inflated_method_get_object): Removed.
13902         (mono_reflection_bind_generic_method_parameters): Return a
13903         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
13904         (mono_reflection_inflate_method_or_ctor): Likewise.
13905
13906         * reflection.h (MonoReflectionInflatedMethod): Removed.
13907
13908 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
13909
13910         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
13911         for custom valuetype marshalling.
13912
13913         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
13914
13915 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13916
13917         * icall.c: fixed WSAGetLastError_internal name.
13918
13919 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
13920
13921         * threads.c (mono_thread_attach): Allow this to be called multiple
13922         times for a thread.
13923         
13924         * threads.c (build_wait_tids): Do not wait for ourselves.
13925
13926         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
13927         appdomain list is empty.
13928
13929         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
13930         memory returned by mono_string_builder_to_utf16, since it points into
13931         managed memory. Thanks to Bernie Solomon for noticing this.
13932
13933         * icall.c: Add AppDomainSetup icalls.
13934
13935         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
13936
13937         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
13938         types.
13939
13940         * reflection.c (reflection_methodbuilder_to_mono_method): Save
13941         custom attributes to the method_aux struct. Also fix array indexes etc.
13942
13943         * loader.c (mono_method_get_param_names): Make dynamic case work again.
13944         
13945 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
13946
13947         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
13948         (both static and runtime) and reduce startup time.
13949
13950 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
13951
13952         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
13953         AsAny marshalling conversion instead of crashing.
13954
13955         * marshal.c: Fix warnings.
13956
13957 2004-02-09  Martin Baulig  <martin@ximian.com>
13958
13959         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
13960
13961         * reflection.h (MonoReflectionInflatedMethod): Removed the
13962         `declaring' field, it's now in the unmanaged MonoGenericMethod.
13963
13964         * reflection.c (method_encode_methodspec): Removed the `method'
13965         argument; we get it from `gmethod->declaring'.
13966         (inflated_method_get_object): Removed the `declaring' argument.
13967
13968 2004-02-09  Martin Baulig  <martin@ximian.com>
13969
13970         * class.h (MonoGenericMethod): New type.
13971         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
13972         `generic_method'.
13973
13974         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
13975         a `MonoGenericMethod *gen_method' one.
13976
13977         * class.c (mono_class_inflate_generic_type): Take an additional
13978         `MonoGenericMethod * argument.  This is only non-NULL if we're
13979         inflating types for a generic method.   
13980         (mono_class_inflate_generic_signature): Renamed to
13981         inflate_generic_signature() and made static; take a
13982         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
13983         (inflate_generic_header): Take a `MonoGenericMethod *' argument
13984         instead of a `MonoGenericInst *' one.
13985         (mono_class_inflate_generic_method): Likewise.
13986
13987         * reflection.c (encode_generic_method_sig): Take a
13988         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
13989         (method_encode_methodspec): Likewise.
13990         (inflated_method_get_object): Likewise. 
13991
13992         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
13993         field with a `MonoGenericMethod *gmethod' one.  
13994
13995 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
13996
13997         * class.h (mono_class_has_parent): add parens to expansion
13998         so you can ! this.
13999
14000 2004-02-08  Martin Baulig  <martin@ximian.com>
14001
14002         * image.h (MonoImage): Removed `generics_cache'.
14003
14004         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
14005         instead of a `MonoType *' argument; removed the `inflate_methods'
14006         argument.  Don't inflate methods here.
14007
14008         * loader.c (find_method): If it's a generic instance, call
14009         mono_class_init() on the `sclass->generic_inst->generic_type'.
14010
14011         * metadata.c (mono_type_size): Make this work on uninitialized
14012         generic instances; call it on the `ginst->generic_type's class.
14013
14014         * reflection.c (mono_reflection_bind_generic_parameters): Call
14015         mono_class_from_generic() to create the `ginst->klass'.
14016
14017 2004-02-08  Martin Baulig  <martin@ximian.com>
14018
14019         * class.h (MonoClass): Changed type of `generic_inst' from
14020         `MonoType *' to `MonoGenericInst *'.
14021
14022 2004-02-08  Martin Baulig  <martin@ximian.com>
14023
14024         * icall.c (ves_icall_Type_BindGenericParameters): Just call
14025         mono_type_get_object(), this is now creating a `MonoGenericInst'
14026         for MONO_TYPE_GENERICINST.
14027         (ves_icall_MonoGenericInst_GetParentType): Likewise.
14028         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
14029
14030         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
14031         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
14032         (inflated_method_get_object): Added `MonoClass *refclass' argument.
14033         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
14034         and reflected type.
14035
14036         * reflection.h (MonoReflectionInflatedMethod): Removed
14037         `declaring_type' and `reflected_type'.
14038
14039 2004-02-08  Martin Baulig  <martin@ximian.com>
14040
14041         * class.h (MonoGenericInst): Added `MonoType *parent' and
14042         `MonoType **ifaces'.
14043
14044         * reflection.h (MonoReflectionGenericInst): Removed `klass',
14045         `parent' and `interfaces'.
14046
14047         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14048         `MonoType *' argument and return a `MonoType *'.
14049
14050         * icall.c
14051         (ves_icall_MonoGenericInst_GetParentType): New interncall.
14052         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
14053
14054 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14055
14056         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
14057         valuetype marshalling.
14058
14059 2004-02-06  Martin Baulig  <martin@ximian.com>
14060
14061         * class.c
14062         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
14063         (my_mono_class_from_generic_parameter): Likewise.
14064
14065 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14066
14067         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
14068         contents of the symbol files lazily.
14069
14070         * object.h (MonoThread): Add 'name' and 'name_len' fields.
14071
14072         * threads.h threads.c icall.c: New icalls for getting and setting the
14073         threads name.
14074
14075 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
14076
14077         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
14078         Raise an exception when the domain is not found.
14079
14080 2004-02-03  Martin Baulig  <martin@ximian.com>
14081
14082         * reflection.c (mono_image_get_methodspec_token): Use the
14083         uninflated signature; fixes gen-33.
14084
14085 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
14086
14087         * gc.c threads.c: Make the finalizer thread a normal managed thread so
14088         the finalizer code can use thread functionality.
14089
14090         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
14091         the finalizer thread.
14092
14093         * threads.c: Make some functions more robust.
14094
14095         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
14096
14097         * metadata.h: Add new marshalling conventions.
14098
14099         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
14100         stringbuilder marshalling. Fixes #53700.
14101
14102         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
14103
14104         * reflection.c (mono_image_get_type_info): Save declarative security
14105         info.
14106
14107         * reflection.c (mono_image_get_field_info): Handle uninitialized 
14108         unmanaged fields as well.
14109
14110         * appdomain.c: Bump corlib version.
14111
14112 2004-02-01  Martin Baulig  <martin@ximian.com>
14113
14114         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
14115         method type arguments.  
14116
14117 2004-01-30  Duncan Mak  <duncan@ximian.com>
14118
14119         * marshal.h: Add prototype for
14120         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
14121         and
14122         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
14123         fix the build.
14124
14125 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
14126
14127         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
14128         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
14129
14130 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14131
14132         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14133         custom marshalling of valuetypes.
14134
14135         * marshal.c: Fix some warnings.
14136
14137 2004-01-29  Martin Baulig  <martin@ximian.com>
14138
14139         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
14140         for generic method parameters.
14141
14142         * reflection.c (method_encode_methodspec): Write the uninflated
14143         signature into the methodspec table.
14144         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
14145         is always the uninflated method.
14146         (reflection_methodbuilder_to_mono_method): Copy the generic
14147         parameters from the MethodBuilder into `header->gen_params'.
14148
14149 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14150
14151         * class.c (mono_class_from_generic_parameter): Fix warning.
14152
14153 2004-01-27  Martin Baulig  <martin@ximian.com>
14154
14155         * class.c (mono_class_from_generic_parameter): Don't create
14156         `klass->methods' here.  
14157
14158 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
14159
14160         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
14161         extension since it does not work with libraries named lib<FOO>.dll.so.
14162
14163 2004-01-25  Martin Baulig  <martin@ximian.com>
14164
14165         * class.c (mono_class_inflate_generic_type): Added support for
14166         MONO_TYPE_GENERICINST.
14167
14168         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
14169         inflate methods on open constructed types.      
14170
14171 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14172
14173         * object.c: fire ProcessExit event in the root AppDomain after running
14174         Main. Fixes bug #53299.
14175
14176 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
14177
14178         * socket-io.c: include the new socket-wrappers.h header.
14179         Use the wrappers instead of the unix socket functions to make the code
14180         more clear.
14181
14182 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
14183
14184         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
14185
14186         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14187         Fixes #22532.
14188
14189 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
14190
14191         * reflection.c (mono_image_create_pefile): Handle the case when the
14192         entry point is not a MethodBuilder.
14193
14194         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14195         field to ReflectionMethod since it is not allways a builder.
14196
14197         * reflection.c (type_get_fully_qualified_name): New helper function to
14198         return the fully qualified name of a type.
14199
14200         * reflection.c (encode_marshal_blob): Always emit the fully qualified
14201         type name for custom marshallers.
14202
14203         * reflection.c (mono_marshal_spec_from_builder): Ditto.
14204
14205         * class.c (mono_class_setup_vtable): If a parent class already 
14206         implements an interface, use the implementing methods from that class.
14207         Fixes #53148.
14208
14209 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14210
14211         * threadpool.c: just return instead of ExitThread to allow for thread
14212         clean up earlier.
14213
14214 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
14215
14216         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
14217         when closing resource modules.
14218
14219         * reflection.c (mono_image_create_pefile): Handle the case when the
14220         entry point is not a MethodBuilder.
14221
14222         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14223         field to ReflectionMethod since it is not allways a builder.
14224
14225 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14226
14227         * marshal.c (mono_marshal_get_managed_wrapper): 
14228         mono_marshal_alloc takes native int so CONV_I
14229         the arg for 64bits.
14230
14231 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
14232
14233         * reflection.c (fixup_cattrs): New function to fixup the methoddef
14234         tokens in the cattr table. Fixes #53108.
14235
14236 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14237
14238         * loader.c: don't trim ".dll" before looking up in the config file.
14239         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
14240
14241 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
14242
14243         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
14244         Return the module which contains the resource as well.
14245         (ves_icall_System_Reflection_Module_Close): New icall.
14246
14247         * appdomain.c: Bump corlib version number.
14248
14249         * image.c (mono_image_addref): New public function.
14250
14251         * assembly.c: Call mono_image_addref.
14252
14253         * reflection.c (mono_module_get_object): Increase reference count of 
14254         the image.
14255
14256         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14257         Fixes #22532.
14258
14259         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
14260         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
14261         proper exceptions on DllImport problems.
14262
14263 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
14264
14265         * class.c, metadata.c: eliminate CSIZE macro.
14266
14267 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
14268
14269         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
14270         * object.h: Added async_callback field in MonoAsyncResult.
14271         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
14272         * verify.c: Added async_callback in MonoAsyncResult layout.
14273
14274 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
14275
14276         * reflection.c (mono_reflection_get_custom_attrs): Add support
14277         for Modules.
14278
14279 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14280
14281         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
14282         marshalling.
14283         (mono_marshal_method_from_wrapper): Add null pointer check.
14284
14285 2004-01-16  Martin Baulig  <martin@ximian.com>
14286
14287         * debug-mono-symfile.h: Set version number to 36 and reflect
14288         latest symbol writer changes.
14289
14290 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14291
14292         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
14293         multi-dimensional arrays.
14294         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
14295         (mono_class_from_mono_type): Use bounded_array_class_get.
14296         
14297         * class.c (mono_bounded_array_class_get): New function which takes
14298         a 'bounded' bool argument to distinguish vectors from one dimensional
14299         arrays.
14300
14301         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
14302         bounded_array_class_get if the array has bounds.
14303
14304         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14305         Search modules loaded using AssemblyBuilder:AddModule as well.
14306
14307 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14308
14309         * appdomain.c: increased corlib version.
14310         * filewatcher.c: removed g_print.
14311         * icall.c:
14312         (get_property_info): only allocate what is actually requested.
14313         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
14314
14315 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14316
14317         * Makefile.am: added filewatcher.[ch]
14318         * filewatcher.[ch]: FileSystemWatcher runtime support.
14319         * icall.c: added new FSW icalls.
14320
14321 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
14322
14323         * string-icalls.c: fix stringbuilder regression as suggested by
14324         Iain McCoy <iain@mccoy.id.au>.
14325
14326 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14327
14328         * process.c (process_read_stringtable_block): Recognize '007f' as
14329         a language neutral stringtable block.
14330
14331 2004-01-12  Patrik Torstensson
14332
14333         * object.h (MonoStringBuilder) : Changed layout to support our
14334         new stringbuilder class.
14335         * marshal.c: Change marshalling to support the new layout of 
14336         string builder.
14337         * appdomain.c: increased version number because new layout of
14338         string builder.
14339
14340 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14341
14342         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14343         assembly name as an string instead of an AssemblyName, since it is
14344         easier to extract info from it.
14345
14346         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14347         the culture subdirectories too. Fixes #52231.
14348
14349 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14350
14351         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14352         It takes 2 new parameters with an optional name for the method to look
14353         for and case ignoring info.
14354
14355         * threadpool.c: removed unused variable.
14356
14357 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14358
14359         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14360         It takes 2 new parameters with an optional name for the property to look
14361         for and case ignoring info.
14362         Fixes bug #52753.
14363
14364 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14365
14366         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14367         Fix #52451.
14368
14369 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14370
14371         * appdomain.c:
14372         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14373         Fixes bug #52630.
14374
14375 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14376
14377         * reflection.c: Add support for more than one unmanaged resource.
14378
14379         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14380         in field->def_value, as done in all other cases.
14381
14382         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14383         TypeBuilders.
14384
14385         * reflection.c (mono_reflection_create_runtime_class): Remove 
14386         errorneous assignment to klass->element_class, since it is already
14387         done in mono_reflection_setup_internal_class.
14388
14389 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14390
14391         * gc.c: added missing LeaveCriticalSection.
14392         * icall.c: indented a couple of lines.
14393         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14394         if we call EndInvoke inside a callback. Fixes bug #52601.
14395
14396 2004-01-07  Martin Baulig  <martin@ximian.com>
14397
14398         * mono-debug-debugger.h
14399         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14400
14401 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14402
14403         * appdomain.c: Use messages in NotImplementedException.
14404
14405         * exception.c (mono_get_exception_not_implemented): Now this takes
14406         a message argument.
14407
14408         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14409         exception instead of g_asserting an aborting when something is not
14410         implemented.
14411
14412         Add some inline docs.
14413
14414 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14415
14416         * reflection.h: Update after changes to object layout.
14417
14418         * reflection.c: Implement saving of unmanaged aka win32 resources.
14419
14420         * appdomain.c: Bump version number.
14421
14422         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14423         Handle missing domains gracefully.
14424
14425 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14426
14427         * file-io.c : On Windows, there are much more invalid_path_chars.
14428
14429 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14430
14431         * class.h, object.c: prepare for GetType () speedup.
14432
14433 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14434
14435         * profiler.c: workaround for --profile null reference exception on
14436           cygwin. Patch by Patrik Torstensson.
14437
14438 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14439
14440         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14441         make work for unaligned access.
14442
14443 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14444
14445         * class.c: small cleanup (class->fields [i] -> field).
14446         * image.c: check address of metadata is valid.
14447
14448 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14449
14450         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14451         search the list of loaded assemblies.
14452
14453         * reflection.c (mono_reflection_type_from_name): Use 
14454         mono_assembly_loaded instead of mono_image_loaded.
14455
14456         * reflection.c: Fix warnings.
14457
14458 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
14459
14460         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
14461         is dynamic. This is needed since an assembly can contain both dynamic and
14462         non-dynamic images.
14463
14464         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
14465         assembly->dynamic.
14466
14467         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14468
14469         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14470         to store modules loaded using AddModule.
14471
14472         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14473         on Modules.
14474
14475         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14476
14477         * reflection.c (mono_image_fill_export_table_from_module): New function to
14478         fill out the EXPORTEDTYPES table from a module.
14479
14480         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14481         into a separate function. Also handle loaded non-dynamic modules.
14482
14483         * reflection.c (mono_image_basic_init): Fix memory allocation.
14484
14485         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14486
14487         * assembly.c (mono_assembly_load_references): Make this public.
14488
14489 2003-12-19  Martin Baulig  <martin@ximian.com>
14490
14491         * class.c (mono_class_initialize_generic): Made this static, take
14492         a `MonoGenericInst *' instead of a `MonoClass *'.
14493         (mono_class_from_generic): Call mono_class_initialize_generic()
14494         unless we're already initialized or being called from
14495         do_mono_metadata_parse_generic_inst().
14496
14497         * class.h (MonoGenericInst): Added `initialized' and
14498         `init_pending' flags.
14499
14500         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14501         `mono_class_init (gklass)' or mono_class_initialize_generic()
14502         here; set `generic_inst->init_pending' while parsing the
14503         `type_argv'.
14504
14505 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14506
14507         * locales.c: include string.h for memxxx prototypes
14508
14509 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14510
14511         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14512         constructor when accessing literal fields.
14513
14514 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14515
14516         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14517
14518         * reflection.c (assembly_add_resource_manifest): New function to fill
14519         the MANIFESTRESOURCE table.
14520
14521         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14522
14523         * reflection.h: Update to changes in class layout.
14524
14525         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14526         Reenable call to mono_runtime_is_shutting_down ().
14527
14528         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14529         determine if the runtime is shutting down.
14530
14531 2003-12-16  Jackson Harper <jackson@ximian.com>
14532
14533         * icall.c: comment out call to mono_runtime_is_shutting_down to
14534         fix build.
14535         
14536 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14537
14538         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14539         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14540
14541 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14542
14543         * reflection.c: move definition of swap_with_size
14544         to before its first call
14545
14546 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14547
14548         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14549
14550         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14551         icall.
14552
14553         * object.c: Fix warnings.
14554
14555         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14556         members if FlattenHierarchy is set.
14557
14558         * reflection.c (mono_image_add_decl_security): New function to emit
14559         declarative security.
14560
14561         * reflection.h reflection.c: Add support for declarative security.
14562
14563         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14564         
14565 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
14566
14567         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14568         
14569         * appdomain.c verify.c: Moved corlib version checking into its own
14570         function in appdomain.c since it needs to create vtables etc.
14571
14572 2003-12-13  Patrik Torstensson <p@rxc.se>
14573
14574         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
14575         instead of unwrapped server.
14576
14577 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
14578
14579         * verify.c (check_corlib): Fix field index.
14580
14581 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
14582
14583         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
14584         GetGacPath icall.
14585
14586 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
14587
14588         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
14589         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
14590         cope with sizeof(size_t) != sizeof(guint32).
14591
14592 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14593
14594         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
14595         in case of failure.
14596
14597 2003-12-10  Mark Crichton <crichton@gimp.org>
14598
14599         * icall.c: removed the GetNonZeroBytes.  We now handle this case
14600         in managed code.
14601
14602         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
14603
14604 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
14605
14606         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
14607         marked as deleted.
14608
14609 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
14610
14611         * verify.c (check_corlib): Handle the case when the version field is 
14612         initialized by a static constructor.
14613
14614 2003-12-08  Patrik Torstensson  <p@rxc.se>
14615
14616     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
14617
14618 2003-12-08  Martin Baulig  <martin@ximian.com>
14619
14620         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
14621         a MonoReflectionGenericParameter, also take the parameter index
14622         and name as arguments.
14623         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14624         (ves_icall_MonoGenericParam_initialize): New interncall.
14625         (ves_icall_Type_make_byref_type): New interncall.
14626
14627         * reflection.h (MonoReflectionGenericParam): Derive from
14628         MonoReflectionType, not just from MonoObject.  Added `refobj' and
14629         `index' fields.
14630
14631         * reflection.c (mono_reflection_define_generic_parameter): Create
14632         and return a new MonoReflectionGenericParam; don't initialize the
14633         constraints here.
14634         (mono_reflection_initialize_generic_parameter): New public method;
14635         initializes the constraints and creates the `param->pklass'.
14636
14637 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
14638
14639         * reflection.h reflection.c: Use the new fields 'num_types', 
14640         'num_fields' and 'num_methods' to track the number of types etc.
14641
14642         * verify.c (check_corlib): Check corlib version number.
14643
14644 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
14645
14646         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
14647         function works on all methods.
14648
14649 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
14650
14651         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
14652         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
14653         the custom_type_info flag of the transparent proxy.
14654         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
14655         objects that supports IRemotingTypeInfo.
14656         * object.h: Added custom_type_info field in transparent proxy.
14657
14658 2003-12-06  Martin Baulig  <martin@ximian.com>
14659
14660         * class.c (mono_class_create_from_generic): Removed.
14661         (mono_class_from_generic): Check `ginst->klass' before doing
14662         anything else.  This is important to fully support "recursive"
14663         generic types.
14664
14665         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
14666         empty `generic_inst->klass' before doing anything else.
14667
14668 2003-12-06  Dick Porter  <dick@ximian.com>
14669
14670         * verify.c: 
14671         * object.h:
14672         * icall.c:
14673         * locales.c: Use C structs to access class fields.  Don't do a
14674         conversion between MonoString and UChar because both are
14675         platform-endian UTF-16.  Compare now takes startindex and count
14676         parameters.  Add a char overload for IndexOf.  Speed up the
14677         invariant string IndexOf.
14678
14679 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
14680
14681         * Makefile.am (monosn_LDADD): Fix parallel build.
14682
14683 2003-12-04  Martin Baulig  <martin@ximian.com>
14684
14685         * icall.c
14686         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14687         (ves_icall_Type_make_array_type): New interncall.       
14688
14689 2003-12-04  Martin Baulig  <martin@ximian.com>
14690
14691         * locales.c: also change it in the !HAVE_ICU case.
14692
14693 2003-12-04  Dick Porter  <dick@ximian.com>
14694
14695         * icall.c:
14696         * locales.c: construct_compareinfo is now in CompareInfo, not
14697         CultureInfo.
14698
14699 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
14700
14701         * image.c (mono_image_load_file_for_image): Cache loaded images in the
14702         image->files array.
14703
14704         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
14705         table as well.
14706
14707         * assembly.c (mono_assembly_load_references): Only load references
14708         once.
14709
14710         * class.c (mono_class_from_name): Avoid linear search of the 
14711         EXPORTEDTYPE table.
14712
14713         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
14714
14715 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
14716
14717         * image.h (MonoImage): Add 'field_cache' field.
14718
14719         * loader.c (mono_field_from_token): Cache field lookups.
14720         
14721         * reflection.c (mono_module_get_object): Fix name property.
14722
14723         * icall.c (ves_icall_get_enum_info): Update after changes to 
14724         mono_metadata_get_constant_index ().
14725
14726         * icall.c: Get rid of get_type_info icall, use a separate icall for
14727         each type property to avoid needless memory allocations. Fixes #51514.
14728
14729         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
14730         to avoid needless binary searches.
14731
14732         * class.c (class_compute_field_layout): Move the initialization of
14733         field->def_value to mono_class_vtable ().
14734
14735         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
14736         non-corlib types.
14737
14738         * object.c (mono_object_allocate): Make it inline.
14739
14740         * object.c (mono_object_allocate_spec): Make it inline.
14741         
14742 2003-12-02  Dick Porter  <dick@ximian.com>
14743
14744         * locales.c (create_NumberFormat): NumberFormatInfo construction.
14745         Patch by Mohammad DAMT (mdamt@cdl2000.com).
14746
14747 2003-12-01  Dick Porter  <dick@ximian.com>
14748
14749         * threads.c: Fix signature and call in CreateMutex and
14750         CreateEvent.
14751
14752 2003-12-01  Dick Porter  <dick@ximian.com>
14753
14754         * icall.c: 
14755         * locales.c: Implement string compares and searching
14756
14757         * object.h: Add extra Thread field
14758
14759 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
14760
14761         * reflection.c (fixup_method): Add support for MonoCMethod.
14762
14763 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
14764
14765         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
14766
14767         * reflection.c (assembly_name_to_aname): Allow extra characters in
14768         assembly names. Fixes #51468.
14769
14770 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
14771
14772         * exception.c (mono_exception_from_name_domain): New helper function.
14773
14774         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
14775         exception object in the correct domain.
14776
14777         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
14778         formatting + make a copy a the input data.
14779
14780         * loader.c (mono_get_method_from_token): Methods which contain
14781         native code do not have entries in the ImplMap.
14782
14783         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
14784         Thanks to Gonzalo for spotting this.
14785         
14786         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
14787         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
14788
14789         * assembly.h (mono_assembly_load_from): Split the second part of 
14790         assembly loading into a new public function.
14791
14792         * exception.h (mono_get_exception_bad_image_format): New function.
14793
14794 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
14795
14796         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14797         Enumerate all modules inside a dynamic assembly. Fixes #51293.
14798         
14799         * icall.c: Add new icall for creating dynamic methods.
14800
14801         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
14802
14803         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
14804
14805         * reflection.c (mono_reflection_create_dynamic_method): New icall to
14806         create a dynamic method.
14807
14808         * reflection.c (resolve_object): New helper function.
14809
14810         * reflection.c: Generalize ReflectionMethodBuilder and the functions
14811         which manipulate it so they can also work on dynamic methods.
14812
14813         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
14814         creating the MonoReflectionMethodAux structure if it is not needed.
14815         
14816         * reflection.h verify.c: Update after changes to object layout.
14817
14818         * reflection.c (method_builder_encode_signature): Fix compilation on
14819         gcc 2.95.x.
14820
14821 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
14822
14823         * appdomain.h: Added support for context static fields. Added static_data
14824           field to MonoAppContext and renamed thread_static_fields to a more
14825           generic special_static_fields in MonoAppDomain, since it can now contain
14826           context static fields.
14827         * domain.c: Updated hashtable name.
14828         * object.c: Replaced field_is_thread_static() for a more generic
14829           field_is_special_static() which also checks for context static attribute.
14830           In mono_class_vtable(), added support for static context fields.
14831         * threads.c: Changed methods that manage thread static fields to more
14832           generic methods so they can be reused both for thread and context static
14833           data.
14834         * threads.h: Declared some new methods.
14835
14836 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
14837
14838         * reflection.h: Update after changes to the managed types.
14839
14840         * reflection.c (encode_custom_modifiers): New helper function.
14841
14842         * reflection.c (method_encode_signature): Emit custom modifiers.
14843
14844         * reflection.c (field_encode_signature): Emit custom modifiers.
14845
14846 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
14847
14848         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
14849
14850         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
14851         implementation.
14852
14853         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
14854         icall.
14855
14856         * object.c (mono_field_get_value_object): New function.
14857
14858         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
14859         specific.
14860
14861 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
14862
14863         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
14864         return a preallocated out-of-memory exception instance.
14865
14866         * object.c (out_of_memory): Use the new function.
14867
14868         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
14869         flag is before the custom modifiers. Fixes #49802.
14870
14871 2003-11-16  Martin Baulig  <martin@ximian.com>
14872
14873         * class.c (mono_class_is_open_constructed_type): Implemented the
14874         MONO_TYPE_GENERICINST case.
14875
14876 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
14877
14878         * assembly.c (mono_assembly_fill_assembly_name): New function to
14879         fill out the MonoAssemblyName structure.
14880         (mono_assembly_open): Use the new function.
14881
14882         * icall.c (fill_reflection_assembly_name): New helper function.
14883
14884         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
14885         new function.
14886
14887         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
14888
14889 2003-11-15  Martin Baulig  <martin@ximian.com>
14890
14891         * class.c (mono_class_is_open_constructed_type): New public
14892         function; checks whether a type is an open constructed type,
14893         ie. whether it still contains type parameters.
14894         (mono_class_inflate_generic_type): If we're a type parameter and
14895         the inflated type is also a MONO_TYPE_(M)VAR, return the original
14896         type.
14897
14898         * class.h (MonoGenericInst): Added `guint32 is_open'.
14899
14900         * loader.c (method_from_methodspec): Check whether we're an open
14901         or closed constructed type and set `ginst->is_open'.
14902
14903         * reflection.c (mono_reflection_bind_generic_parameters): Check
14904         whether we're an open or closed constructed type and set
14905         `ginst->is_open'.
14906         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
14907         from open constructed types.
14908
14909 2003-11-15  Martin Baulig  <martin@ximian.com>
14910
14911         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14912         a generic instance (instead of a generic type declaration) with
14913         unbound generic parameters, bind them to our actual types.
14914
14915 2003-11-14  Martin Baulig  <martin@ximian.com>
14916
14917         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
14918
14919         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14920         an interface type, populate `res->interfaces' with instantiated
14921         versions of all the interfaces we inherit.
14922
14923 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
14924
14925         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
14926         when MONO_PATH is set but doesn't contain the install dir.
14927
14928 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14929
14930         * icall.c:
14931         (ves_icall_Type_GetInterfaces): don't return an interface twice when
14932         it's also implemented in base classes. Fixes bug #50927.
14933
14934 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
14935
14936         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
14937         if this method is called from a finalizer. Fixes #50913.
14938
14939 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
14940
14941         * threads.c: Implement VolatileRead/VolatileWrite
14942
14943         * icall.c: Add new icalls for VolatileRead/VolatileWrite
14944
14945 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14946
14947         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
14948         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
14949         2.95.3.
14950
14951         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
14952         from Peter Ross (pro@missioncriticalit.com).
14953         
14954 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
14955
14956         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
14957
14958 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14959
14960         * assembly.c (mono_assembly_load_references): Disable check because it
14961         triggers on older corlibs which lots of people have.
14962
14963 2003-11-12  Jackson Harper  <jackson@ximian.com>
14964
14965         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
14966         load corlib.dll if mscorlib.dll is not found.
14967         * assembly.h: Remove corlib name define.
14968         * class.c:
14969         * domain.c:
14970         * image.c: Change corlib name to mscorlib.
14971         
14972 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14973
14974         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
14975
14976 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
14977
14978         * appdomain.h: Added loader_optimization here to sync with the C#
14979         code, and add disallow_binding_redirects field.
14980
14981 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
14982
14983         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
14984
14985         * reflection.c (mono_image_build_metadata): Fix crash on modules
14986         with no types.
14987
14988         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
14989
14990         * icall.c (ves_icall_get_method_info): Return callingConvention as
14991         well.
14992
14993         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
14994         namespaces from the EXPORTEDTYPE table as well.
14995
14996         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
14997         from all modules inside the assembly.
14998         
14999 2003-11-11  Martin Baulig  <martin@ximian.com>
15000
15001         * reflection.c (mono_reflection_bind_generic_parameters): Make
15002         this work for interfaces.
15003
15004 2003-11-11  Martin Baulig  <martin@ximian.com>
15005
15006         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
15007
15008 2003-11-11  Martin Baulig  <martin@ximian.com>
15009
15010         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
15011         "MonoInflatedMethod" and "MonoInflatedCtor".
15012
15013 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15014
15015         * reflection.c (resolution_scope_from_image): Use the assembly table
15016         from the manifest module, since other modules don't have it.
15017
15018         * debug-helpers.c (mono_type_full_name): New helper function.
15019
15020         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
15021
15022         * image.c (mono_image_load_file_for_image): New public function which
15023         is a replacement for the load_file_for_image in class.c.
15024
15025         * assembly.c (mono_assembly_load_module): A wrapper for the function
15026         above which does assembly association and reference loading too.
15027
15028         * class.c (mono_class_from_name): Call mono_assembly_load_module.
15029
15030 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15031
15032         * appdomain.c: not all of the attributes for the full assembly name
15033         are required and the order doesn't matter. Fixes bug #50787.
15034
15035 2003-11-10  Dick Porter  <dick@ximian.com>
15036
15037         * locales.c: Use platform-endian UTF16
15038
15039 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15040
15041         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15042         
15043 2003-11-10  Martin Baulig  <martin@ximian.com>
15044
15045         * metadata.c
15046         (mono_metadata_load_generic_params): Make this actually work.
15047
15048         * reflection.c (mono_reflection_bind_generic_parameters): If our
15049         parent is a generic instance, pass all the `types' to it, no
15050         matter whether it has the same number of type parameters or not.
15051
15052 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15053
15054         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15055
15056         * assembly.c (mono_assembly_load_references): Move the image<->assembly
15057         assignment code to this function so it gets called recursively for all
15058         modules.
15059
15060         * image.c (load_modules): Remove the assembly assignment since it is
15061         now done by mono_assembly_load_references.
15062         
15063         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15064         Add 'module' argument.
15065         (mono_module_get_types): New helper function.
15066         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
15067
15068 2003-11-08  Martin Baulig  <martin@ximian.com>
15069
15070         * class.c (mono_class_inflate_generic_method): Interface method
15071         don't have a header.
15072
15073         * reflection.c (mono_image_get_methodspec_token): Take an
15074         additional `MonoGenericInst *' argument instead of reading it from
15075         the header; this is necessary to support interfaces.
15076         (mono_image_create_token): Pass the `MonoGenericInst *' from the
15077         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
15078         (inflated_method_get_object): Take an additional `MonoGenericInst *'
15079         argument.
15080
15081         * reflection.h (MonoReflectionInflatedMethod): Added
15082         `MonoGenericInst *ginst'.
15083
15084 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
15085
15086         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
15087
15088 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
15089
15090         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
15091
15092 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
15093
15094         * reflection.c 
15095         (reflection_methodbuilder_from_method_builder):
15096         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
15097         initialize a ReflectionMethodBuilder structure.
15098         (mono_image_get_methodbuilder_token):
15099         (mono_image_get_ctorbuilder_token): New functions to emit memberref
15100         tokens which point to types in another module inside the same assembly.
15101
15102         * reflection.c: Use the new helper functions.
15103         
15104         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
15105
15106         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
15107         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
15108
15109         * reflection.c (resolution_scope_from_image): Emit a moduleref if
15110         neccesary.
15111
15112         * reflection.c (mono_image_build_metadata): Emit metadata only for the
15113         current module. Emit the manifest only for the main module.
15114
15115         * reflection.c (mono_image_create_token): Add assertion when a 
15116         memberref needs to be created.
15117
15118         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
15119
15120         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
15121         larger buffer for the custom attribute blob. Fixes #50637.
15122         
15123 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15124
15125         * threadpool.c: notify listener on async processing handles after
15126         invoking the async callback. Thanks to Zoltan.
15127
15128 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15129
15130         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
15131         avoid code duplication.
15132
15133         * reflection.h (MonoDynamicImage): New type which is currently unused,
15134         but will be used through the ref.emit code in place of 
15135         MonoDynamicAssembly.
15136
15137         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15138         object layout.
15139
15140         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
15141         a MonoDynamicImage instead of just a MonoImage.
15142         
15143         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
15144         icalls to ModuleBuilder but keep their semantics, so they will work
15145         with moduleb->assemblyb. This will change later.
15146         
15147 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15148
15149         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15150         object layout.
15151
15152         * reflection.c (mono_image_build_metadata): Avoid creation of a default
15153         main module, since it is now done by the managed code.
15154
15155 2003-11-03  Martin Baulig  <martin@ximian.com>
15156
15157         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
15158         `ginst->klass' here.
15159         (method_encode_methodspec): Don't use the `ginst->generic_method's
15160         klass if it's a generic instance, use `ginst->klass' in this case.
15161
15162 2003-11-03  Martin Baulig  <martin@ximian.com>
15163
15164         * reflection.c (mono_image_get_generic_method_param_info):
15165         Removed, use mono_image_get_generic_param_info() instead.
15166         (mono_image_get_type_info): Write the GenericParam table before
15167         the Method table.  This is neccessary because in the GenericParam
15168         table, type parameters of the class (ie. '!0' etc.) must come
15169         before the ones from its generic methods (ie. '!!0' etc).
15170
15171 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15172
15173         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
15174
15175 2003-11-02  Martin Baulig  <martin@ximian.com>
15176
15177         * reflection.c (create_generic_typespec): Take a
15178         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
15179         the generic parameters from it.
15180
15181 2003-11-02  Martin Baulig  <martin@ximian.com>
15182
15183         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
15184         instead of a `MonoClassField *' since we just need the type.
15185         (create_generic_typespec): New static function.  Creates a
15186         TypeSpec token for a generic type declaration.
15187         (mono_image_get_generic_field_token): New static function.
15188         (mono_image_create_token): If we're a FieldBuilder in a generic
15189         type declaration, call mono_image_get_generic_field_token() to get
15190         the token.
15191
15192 2003-11-02  Martin Baulig  <martin@ximian.com>
15193
15194         * reflection.h
15195         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
15196         `MonoReflectionGenericInst *declaring_type' and
15197         `MonoReflectionGenericInst *reflected_type' fields.
15198
15199         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
15200         `MonoReflectionGenericInst *declaring_type' and a
15201         `MonoReflectionGenericInst *reflected_type' argument instead of a
15202         single `MonoReflectionGenericInst *type' one.  Set
15203         `res->declaring_type' and `res->reflected_type' from them.
15204         (mono_reflection_inflate_field): Likewise.      
15205
15206 2003-11-02  Martin Baulig  <martin@ximian.com>
15207
15208         * class.c (mono_class_setup_vtable): Don't store generic methods
15209         in the vtable.  
15210
15211 2003-11-02  Martin Baulig  <martin@ximian.com>
15212
15213         * reflection.h (MonoReflectionGenericInst): Added
15214         `MonoReflectionType *declaring_type'.
15215
15216         * reflection.c (mono_reflection_bind_generic_parameters): Use
15217         `if (tb->parent)' instead of `klass->parent'.
15218
15219 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
15220
15221         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
15222         with an empty ASSEMBLY table.
15223
15224         * reflection.c (mono_image_build_metadata): Avoid using the same loop
15225         variable in the inner and outer loops.
15226
15227 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15228
15229         * metadata.h (mono_metadata_make_token): Put parentheses around macro
15230         argument.
15231
15232         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
15233         
15234         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
15235         icalls. Instead, do everything in managed code. This is needed since
15236         it is hard to restore the original domain etc. in unmanaged code in the
15237         presence of undeniable exceptions.
15238
15239         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
15240         New icalls to push and pop appdomain refs.
15241
15242 2003-10-31  Martin Baulig  <martin@ximian.com>
15243
15244         * class.c (inflate_generic_type): Renamed to
15245         mono_class_inflate_generic_type() and made it public.
15246
15247         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
15248         New interncall.
15249
15250         * loader.c (mono_field_from_memberref): Also set the retklass for
15251         typespecs.
15252
15253         * fielder.c (mono_image_get_inflated_field_token): New static
15254         method; creates a metadata token for an inflated field.
15255         (mono_image_create_token, fixup_method): Added support for
15256         "MonoInflatedField".
15257         (fieldbuilder_to_mono_class_field): New static function.
15258         (mono_reflection_inflate_field): New public function.
15259
15260         * reflection.h
15261         (MonoReflectionGenericInst): Added `MonoArray *fields'.
15262         (MonoReflectionInflatedField): New typedef.     
15263
15264 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
15265
15266         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
15267         for Solaris and other platforms without s6_addr16
15268
15269 2003-10-30  Martin Baulig  <martin@ximian.com>
15270
15271         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
15272         argument instead of two.
15273         (mono_class_inflate_generic_signature): Likewise.
15274         (inflate_generic_header): Likewise.
15275         (mono_class_inflate_generic_method): Likewise.  In addition, if
15276         `ginst->klass' is set, it becomes the new `method->klass'.
15277
15278         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
15279         field.
15280
15281         * reflection.c (encode_generic_method_sig): Write a 0xa as the
15282         first byte. [FIXME]
15283         (method_encode_methodspec): If we have generic parameters, create
15284         a MethodSpec instead of a MethodRef.
15285         (fixup_method): Added support for "MonoInflatedMethod" and
15286         "MonoInflatedCtor".
15287         (mono_image_create_token): Added support for "MonoInflatedMethod"
15288         and "MonoInflatedCtor".
15289         (inflated_method_get_object): New static function; returns a
15290         managed "System.Reflection.MonoInflatedMethod" object.
15291         (mono_reflection_bind_generic_method_parameters): Return a
15292         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
15293         (mono_reflection_inflate_method_or_ctor): Likewise.
15294         (mono_image_get_generic_method_param_info): Initialize unused
15295         fields to zero.
15296         (mono_image_get_generic_param_info): Likewise.
15297
15298         * reflection.h (MonoReflectionInflatedMethod): New public
15299         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
15300         "S.R.MonoInflatedCtor" classes.
15301
15302         * loader.c (method_from_memberref): If we're a TypeSpec and it
15303         resolves to a generic instance, inflate the method.
15304
15305 2003-10-28  Dick Porter  <dick@ximian.com>
15306
15307         * object.c (mono_runtime_run_main): Convert command-line arguments
15308         into utf8, falling back to the user's locale encoding to do so.
15309
15310 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
15311
15312         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
15313         at this time.
15314
15315         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
15316
15317         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
15318         up icalls at method definition time. Partially fixes #33569.
15319
15320 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
15321
15322         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
15323         marshalling of arrays. Fixes #50116.
15324
15325         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15326
15327         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15328         points to a vtable in the dying appdomain.
15329
15330         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15331         listeners into unmanaged code inside the lock.
15332
15333         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15334         domains and add some comments.
15335
15336 2003-10-25  Martin Baulig  <martin@ximian.com>
15337
15338         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15339
15340         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15341
15342         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15343         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15344         currently parsing.  Create the generic class and store it in
15345         `generic_inst->klass' before parsing the type arguments.  This is
15346         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15347         for an example.
15348         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15349         to support recursive typespec entries.
15350
15351         * class.c (mono_class_setup_parent): If our parent is a generic
15352         instance, we may get called before it has its name set.
15353         (mono_class_from_generic): Splitted into
15354         mono_class_create_from_generic() and mono_class_initialize_generic().
15355
15356 2003-10-25  Martin Baulig  <martin@ximian.com>
15357
15358         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15359         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15360         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15361         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15362
15363         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15364         (create_typespec): Likewise.
15365         (mono_reflection_bind_generic_parameters): Return a
15366         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15367         (mono_reflection_inflate_method_or_ctor): New public function.
15368
15369         * reflection.h (MonoReflectionGenericInst): New typedef.        
15370
15371 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15372
15373         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15374         inside the domain lock. Fixes #49993.
15375         
15376         * object.c (mono_class_vtable): When typed allocation is used, 
15377         allocate vtables in the GC heap instead of in the mempool, since the
15378         vtables contain GC descriptors which are used by the collector even
15379         after the domain owning the mempool is unloaded.
15380
15381         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15382
15383         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15384         reflect what it does. Also invalidate mempools instead of freeing
15385         them if a define is set.
15386
15387         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15388         of the appdomain.
15389         
15390         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15391         hold the finalizable objects in this domain.
15392
15393         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15394         appdomain.
15395
15396         * appdomain.c (mono_domain_set): New function to set the current
15397         appdomain, but only if it is not being unloaded.
15398
15399         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15400         appdomain which is being unloaded.
15401         
15402         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15403         unloading of the root appdomain.
15404
15405         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15406         icall to execute a method in another appdomain. Intended as a 
15407         replacement for InternalSetDomain, which can confuse the code 
15408         generation in the JIT.
15409
15410         * appdomain.c (mono_domain_is_unloading): New function to determine
15411         whenever an appdomain is unloading.
15412
15413         * appdomain.c (mono_domain_unload): New function to correctly unload
15414         an appdomain.
15415
15416         * assembly.c (mono_assembly_load_references): Check that an assembly
15417         does not references itself.
15418
15419         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15420         domain manually, it asks the finalizer thread to do it, then waits for
15421         the result. Also added a timeout.
15422
15423         * icall.c: Register the new icalls.
15424
15425         * threads.h threads.c: Export the mono_gc_stop_world and 
15426         mono_gc_start_world functions.
15427         
15428         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15429         function to fill out the mempool with 0x2a.
15430
15431 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15432
15433         * reflection.h (MonoReflectionMethodAux): New structure to store
15434         information which is rarely used, thus is not in the MonoMethod
15435         structure.
15436
15437         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15438         store the aux info.
15439
15440         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15441         and marshalling info into the aux structure.
15442
15443         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15444         from the aux structure.
15445
15446         * loader.c (mono_method_get_param_names): Retrieve the param names from
15447         the aux structure.
15448         
15449 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15450
15451         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15452         warning.
15453
15454 2003-10-21  Dick Porter  <dick@ximian.com>
15455
15456         * socket-io.c
15457         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
15458         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
15459
15460 2003-10-21  Martin Baulig  <martin@ximian.com>
15461
15462         * reflection.c (mono_reflection_bind_generic_parameters):
15463         `klass->parent' is NULL for interfaces.
15464
15465 2003-10-21  Martin Baulig  <martin@ximian.com>
15466
15467         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15468
15469 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15470
15471         * exception.c (mono_exception_from_name_msg): New helper function for
15472         creating exceptions and initializing their message field.
15473
15474         * exception.c: Simplify functions using the new helper.
15475
15476         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15477         New function.
15478
15479         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15480         mono_raise_exception, since otherwise gcc doesn't generate the function
15481         epilog for raise_exception, confusing the stack unwinding in the JIT.
15482         Fixes #45043.
15483
15484         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15485         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15486         Fixes #49499.
15487
15488 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15489
15490         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15491         utf8.
15492
15493 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15494
15495         * icall.c: Removed GetUninitializedObject method because
15496           AllocateUninitializedClassInstance does the same.
15497
15498 2003-10-18  Martin Baulig  <martin@ximian.com>
15499
15500         * class.c (inflate_generic_signature): Renamed to
15501         mono_class_inflate_generic_signature() and made it public.
15502         (my_mono_class_from_generic_parameter): New static function; if we
15503         don't already have the generic parameter's MonoClass, create a
15504         very simple one which is just used internally in the runtime and
15505         not passed back to managed code.
15506
15507         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15508
15509         * metadata.h (MonoMethodSignature): Moved the
15510         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15511         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15512
15513         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15514         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15515         interncall on the MonoMethod class, not on MethodInfo.
15516         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15517         calling mono_reflection_bind_generic_method_parameters() directly.
15518
15519         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15520         return the already computed `method->signature'.
15521         (method_from_methodspec): New static function to load a method
15522         from a MethodSpec entry.
15523         (mono_get_method_from_token): Call the new method_from_methodspec()
15524         for MethodSpec tokens.  
15525         (mono_get_method_from_token): If we're a generic method, load the
15526         type parameters.
15527
15528         * reflection.c (mono_image_get_memberref_token): Allow
15529         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15530         table.
15531         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15532         (mono_image_create_token): First check whether it's a generic
15533         method (so we'd need to create a MethodSpec), then do the other
15534         two alternatives.
15535         (mono_reflection_bind_generic_method_parameters): Return a
15536         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15537         called directly from the interncall.
15538
15539 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15540
15541         * reflection.c (load_public_key): Move loading of the public key
15542         into managed code.
15543
15544         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15545
15546         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15547         fields.
15548
15549         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15550         culture, hash_alg and public_key. Fixes #49555.
15551
15552 2003-10-17  Martin Baulig  <martin@ximian.com>
15553
15554         * class.h (MonoGenericInst): Moved this declaration here and added
15555         `MonoMethod *generic_method'.
15556
15557         * icall.c
15558         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15559         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15560
15561         * metadata.c (mono_metadata_type_equal): Two types of
15562         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15563         index; ie. don't compare the address of the `MonoGenericParam'
15564         structure.
15565         (mono_metadata_load_generic_params): Removed the `MonoMethod
15566         *method' argument.
15567
15568         * metadata.h (MonoGenericInst): Moved declaration to class.h.
15569         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
15570
15571         * reflection.c (method_encode_signature): Encode the number of
15572         generic parameters.
15573         (encode_generic_method_sig): New static function.
15574         (method_encode_methodspec): New static function; creates an entry
15575         in the MethodSpec table for a generic method.
15576         (mono_image_get_methodspec_token): New static function.
15577         (mono_image_create_token): Call mono_image_get_methodspec_token()
15578         for generic methods.
15579         (mono_reflection_bind_generic_method_parameters): New public
15580         function.  Instantiates a generic method.
15581
15582 2003-10-16  Martin Baulig  <martin@ximian.com>
15583
15584         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
15585         *gen_params' here from MonoMethodHeader.
15586
15587         * metadata.c (mono_metadata_parse_method_signature): If we have
15588         generic parameters, initialize `method->gen_params' and then set
15589         the correct `type->data.generic_param' in all the parameters.
15590
15591 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
15592
15593         * threads.c (mono_threads_get_default_stacksize): New function to 
15594         return the default stacksize.
15595
15596         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
15597         termination of the finalizer thread, since the previous method had
15598         race conditions. Fixes #49628.
15599
15600         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
15601         as for the other managed threads.
15602
15603 2003-10-16  Martin Baulig  <martin@ximian.com>
15604
15605         * class.c (inflate_generic_signature): Copy `generic_param_count'
15606         and `gen_params'.
15607
15608         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
15609         New interncall.
15610
15611         * metadata.c (mono_metadata_parse_method_signature): Actually set
15612         the `method->generic_param_count' here.
15613         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
15614
15615 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
15616
15617         * object.h: Add a new field to TypedRef to simplify the implementation
15618         of the REFANY opcodes in the JIT.
15619
15620         * icall.c: Make use of the new field.
15621
15622         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
15623         dynamically.
15624
15625 2003-10-15  Martin Baulig  <martin@ximian.com>
15626
15627         * class.c (mono_class_from_gen_param): Renamed to
15628         mono_class_from_generic_parameter() and moved most of the
15629         functionality from mono_reflection_define_generic_parameter()
15630         here; ie. we create a "real" class here.
15631         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
15632         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
15633         previously been called.
15634
15635         * class.h (MonoGenericParam): Moved the declaration of this struct
15636         here from metadata.h and added `MonoMethod *method'.
15637
15638         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
15639         interncall.
15640
15641         * loader.c (mono_get_method_from_token): If we have any generic
15642         parameters, call mono_metadata_load_generic_params() to read them
15643         from the MONO_TABLE_GENERICPAR.
15644
15645         * metadata.c (mono_metadata_load_generic_params): Added
15646         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
15647
15648         * metadata.h (MonoMethodSignature): Replaced
15649         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
15650         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
15651
15652         * reflection.c (mono_reflection_define_generic_parameter): Moved
15653         most of the functionality into the new
15654         mono_class_from_generic_parameter(); set the `method' field if
15655         we're a method parameter.       
15656
15657 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
15658
15659         * marshal.c (emit_struct_conv): if native size is 0
15660         emit no code.
15661
15662 2003-10-14  Martin Baulig  <martin@ximian.com>
15663
15664         * icall.c: The generics API has changed in the spec since it was
15665         added to System.Type; these modifications make it match the spec
15666         again.
15667         (ves_icall_Type_GetGenericParameters): Renamed to
15668         `ves_icall_Type_GetGenericArguments'.
15669         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
15670         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
15671         `ves_icall_MonoType_get_HasGenericArguments'.
15672         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
15673         `ves_icall_MonoType_get_IsGenericParameter'.
15674         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
15675         this is no interncall anymore.
15676         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
15677         `ves_icall_TypeBuilder_get_IsGenericParameter'.
15678
15679 2003-10-14  Martin Baulig  <martin@ximian.com>
15680
15681         * reflection.c (mono_reflection_bind_generic_parameters): Also
15682         inflate generic methods if we're reading the class from IL.
15683
15684 2003-10-13  Martin Baulig  <martin@ximian.com>
15685
15686         * reflection.c (mono_reflection_define_generic_parameter): This
15687         method isn't called directly from the icall anymore; take a
15688         `MonoReflectionAssemblyBuilder *' so we can use this for type and
15689         method generic parameters.
15690         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
15691         (method_builder_encode_signature): Encode generic parameters.
15692         (mono_image_get_method_info): Write generic params to the
15693         MONO_TABLE_GENERICPARAM table.
15694
15695         * reflection.h (MonoReflectionMethodBuilder): Added
15696         `MonoArray *generic_params'.
15697
15698         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
15699
15700         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
15701         wrapper for mono_reflection_define_generic_parameter().
15702         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
15703
15704 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
15705
15706         * marshal.h: Add missing function to fix build.
15707
15708         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
15709         the SetLastError pinvoke attribute.
15710
15711         * marshal.c (mono_marshal_set_last_error): New helper function called
15712         by the generated code.
15713         
15714         * marshal.c (mono_mb_emit_branch): New helper function.
15715
15716         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
15717
15718         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15719         classes as parameters and return values of delegates. Fixes #29256. 
15720
15721 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
15722
15723         * locales.c: use gint32 in non HAVE_ICU case
15724
15725 2003-10-11  Martin Baulig  <martin@ximian.com>
15726
15727         * mono-debug.c (mono_debug_add_method): Added a workaround for
15728         bug #48591.
15729
15730 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
15731
15732         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
15733         delegates passed to native code must use the STDCALL calling 
15734         convention. Fixes #35987.
15735
15736 2003-10-10  Martin Baulig  <martin@ximian.com>
15737
15738         * class.c (inflate_generic_type): If we're inflating for a generic
15739         type instance (and not for a generic method), return
15740         MONO_TYPE_MVAR unchanged.
15741
15742 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15743
15744         * string-icalls.c: Join ignores null strings in the source array.
15745         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
15746         * threads.c: GetAvailableTheads is slightly more accurate.
15747
15748 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
15749
15750         * threads.h threads.c : add mono_threads_set_default_stacksize
15751         and pass default to CreateThread calls.
15752
15753 2003-10-09  Dick Porter  <dick@ximian.com>
15754
15755         * icall.c:
15756         * locales.h:
15757         * locales.c: Internal calls for constructing CultureInfo and
15758         related objects from libicu (if its available.)
15759
15760 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
15761
15762         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
15763
15764 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15765
15766         * threadpool.c: added an argument to async_invoke_thread that is the
15767         item to process, pass the MonoAsyncResult to the thread start function
15768         when creating a new thread. This way we don't need to acquire any lock
15769         when we're creating a new thread. Readded a semaphore for faster
15770         response times (instead of that Sleep i added).
15771
15772 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
15773
15774         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
15775         get daylight change dates better on Windows, fix handling
15776         of platforms without tm_gmtoff.
15777
15778 2003-10-06  Martin Baulig  <martin@ximian.com>
15779
15780         * class.c (inflate_generic_method): Renamed to
15781         mono_class_inflate_generic_method() and made public.
15782         (mono_class_init): Don't inflate the generic methods here.
15783         (mono_class_from_generic): Added `gboolean inflate_methods'
15784         argument.  Inflate the methods here.
15785
15786         * loader.c (mono_method_get_param_names): Ignore instances of
15787         generic types for the moment.
15788
15789         * reflection.c (fixup_method): Added support for inflated methods.
15790         (mono_image_create_token): Use mono_image_get_methodref_token()
15791         for inflated methods.
15792         (mono_custom_attrs_from_param): Ignore instances of generic types
15793         for the moment.
15794         (mono_reflection_bind_generic_parameters): New public function.
15795         Moved all the functionality from
15796         ves_icall_Type_BindGenericParameters() here and added support for
15797         dynamic types.
15798         (mono_reflection_define_generic_parameter): Initialize
15799         `klass->methods' here.
15800
15801         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
15802         functionality into mono_reflection_define_generic_parameter().
15803         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
15804         TypeBuilder, return that TypeBuilder.
15805
15806 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15807
15808         * appdomain.c: removed mono_delegate_semaphore.
15809
15810         * threadpool.c:
15811         (mono_thread_pool_add): moved hash table creation inside and the thread 
15812         creation outside of the critical region.
15813         (mono_thread_pool_finish): removed obsolete code.
15814         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
15815         continue or exit the thread depending on the queue.
15816
15817 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
15818
15819         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
15820         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
15821         handle more bool marshalling options
15822
15823 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
15824
15825         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
15826         arrays of structs. Also add a more descriptive error message when
15827         a structure member is marshalled as LPArray.
15828
15829 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
15830
15831         * marshal.c (mono_marshal_get_native_wrapper): Add support for
15832         marshalling arrays of complex types. Fixes #29098. Also remove an
15833         usused and incomplete function.
15834
15835 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
15836
15837         * gc.c: report heap_size - free_bytes as total memory allocated
15838         (bug#49362).
15839
15840 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
15841
15842         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
15843         fix timezone handling problems on Windows.
15844         
15845         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
15846         asserts when the year is outside the range handled by ms the functions.
15847
15848         * class.c (setup_interface_offsets): If the class is an interface,
15849         fill out its interface_offsets slot.
15850
15851 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15852
15853         * threadpool.c: mark threadpool threads as background.
15854
15855 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
15856
15857         * decimal.c - define DECINLINE to nothing if not using GCC
15858
15859 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
15860
15861         * assembly.c: More refcount fixes.
15862
15863 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15864
15865         * string-icalls.c: if we're not trimming, return the same string.
15866         When not splitting, don't create a new string.
15867
15868 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15869
15870         * image.c:
15871         (mono_image_open): increment the ref_count inside the critical section.
15872
15873 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
15874
15875         * image.c (mono_image_open): Fix reference counting bug.
15876
15877 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
15878
15879         * marshal.c (mono_marshal_type_size) struct alignment changed for 
15880         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
15881         64bits. Avoid leak in mono_marshal_get_native_wrapper when
15882         mono_lookup_pinvoke_call throws.        
15883
15884 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
15885
15886         * reflection.c (mono_reflection_parse_type): Fix #49114.
15887
15888         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
15889         temporary workaround for cygwin header problem.
15890
15891         * object.c (mono_object_isinst): Synchronize this with the code
15892         generated by the JIT for casts.
15893
15894 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
15895
15896         * reflection.c (encode_type): Fix #38332.
15897
15898 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
15899
15900         * marshal.c (mono_marshal_method_from_wrapper): New function to return
15901         the original method from the wrapper method.
15902
15903 2003-09-25  Martin Baulig  <martin@ximian.com>
15904
15905         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
15906         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
15907         (ves_icall_Type_get_IsGenericInstance): New interncall.
15908
15909 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
15910
15911         * object.c: fix cast warning in big endian code.
15912
15913 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
15914
15915         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
15916         
15917 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15918
15919         * assembly.c: don't call check_env from mono_assembly_load. It's
15920         already done once in mono_assemblies_init and may cause headaches when
15921         multiple threads are loading assemblies.
15922
15923 2003-09-19  Martin Baulig  <martin@ximian.com>
15924
15925         * reflection.c (mono_reflection_define_generic_parameter): Don't
15926         allocate `klass->methods', set `klass->flags' to
15927         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
15928
15929 2003-09-18  Martin Baulig  <martin@ximian.com>
15930
15931         * class.c (mono_class_init): Don't create `class->methods' if it's
15932         already initialized.
15933
15934         * metadata.c (mono_metadata_load_generic_params): Make this
15935         actually work.
15936
15937         * reflection.c (mono_reflection_define_generic_parameter): Set
15938         parent class and interfaces from the constraints.
15939
15940         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
15941         to keep this struct in sync with the declaration in TypeBuilder.cs.
15942
15943 2003-09-17  Martin Baulig  <martin@ximian.com>
15944
15945         * metadata.h (MonoType): Replaced the data's `int type_param'
15946         field with `MonoGenericParam *generic_param'.
15947         (MonoGenericParam): Added `MonoClass *klass'.
15948
15949         * class.c (mono_class_from_gen_param): Removed the
15950         `MonoImage *image' and `int type_num' arguments.
15951
15952         * metadata.c (mono_metadata_parse_generic_param): New static
15953         method; creates a MonoGenericParam which just contains the index.
15954         (do_mono_metadata_parse_type): Call
15955         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
15956         MONO_TYPE_MVAR.
15957
15958         * reflection.c (mono_image_typedef_or_ref): Generic type
15959         parameters may be in the same assembly, but never use a typedef
15960         for them.
15961         (mono_reflection_define_generic_parameter): We're now creating a
15962         "real" class for the type parameter; it's now safe to call
15963         mono_class_from_mono_type() on the class'es type, it'll do the
15964         right thing.
15965
15966 2003-09-16  Martin Baulig  <martin@ximian.com>
15967
15968         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
15969         `symfile->range_entry_size' and `symfile->class_entry_size' here;
15970         the `symfile' data structure must be fully initialized before it
15971         gets added to the table.
15972
15973 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
15974
15975         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
15976
15977         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
15978         class init trampolines.
15979
15980 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
15981
15982         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
15983         to the built-in profiler to turn off time and allocation profiling
15984         respectively.
15985
15986 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
15987
15988         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
15989         g_direct_equal.
15990
15991         * debug-helpers.c (mono_method_full_name): Print the wrapper type
15992         in human readable form.
15993
15994 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
15995
15996         * reflection.c icall.c: Fixed warnings.
15997
15998         * image.c (load_class_names): Use a temporary hash table to hold the
15999         namespaces in order to avoid doing many string comparisons.
16000
16001         * image.h: Fix typo.
16002
16003         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
16004         Pass NULL instead of g_direct_equal to the GHashTable constructor 
16005         since the NULL case is short-circuited inside g_hash_table_lookup, 
16006         leading to better performance.  
16007
16008         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
16009         obtain the first custom attribute for a given index. Depends on the
16010         CustomAttribute table being sorted by the parent field.
16011
16012         * reflection.c (mono_custom_attrs_from_index): Use the new function 
16013         for better performance.
16014
16015 2003-09-07  Martin Baulig  <martin@ximian.com>
16016
16017         * class.c (mono_class_init): If we're a generic instance, inflate
16018         all our methods instead of loading them from the image.
16019         (mono_class_from_generic): Set `class->methods = gklass->methods'.
16020
16021 2003-09-07  Martin Baulig  <martin@ximian.com>
16022
16023         * mono-debug-debugger.c: Added support for constructors.
16024
16025 2003-09-06  Martin Baulig  <martin@ximian.com>
16026
16027         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
16028         New interncall.
16029
16030         * reflection.c (mono_reflection_setup_generic_class): Call
16031         ensure_runtime_vtable() to create the vtable.
16032
16033 2003-09-05  Martin Baulig  <martin@ximian.com>
16034
16035         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
16036         MONO_TYPE_MVAR.
16037
16038 2003-09-04  Martin Baulig  <martin@ximian.com>
16039
16040         * reflection.c (mono_reflection_define_generic_parameter): Generic
16041         parameters start with zero.
16042
16043 2003-09-04  Martin Baulig  <martin@ximian.com>
16044
16045         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16046
16047         * reflection.h (MonoReflectionGenericParam): New typedef.
16048         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
16049         the generic parameters from the managed TypeBuilder.
16050
16051         * reflection.c (mono_reflection_define_generic_parameter): New function.
16052         (mono_reflection_create_runtime_class): Encode generic parameters.
16053         (mono_reflection_setup_generic_class): New function; this is
16054         called after adding adding all generic params to the TypeBuilder.
16055         (encode_type): Added MONO_TYPE_VAR.
16056
16057 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
16058
16059         * class.h class.c (mono_class_needs_cctor_run): Moved this method
16060         here from the JIT.
16061
16062         * assembly.h assembly.c: Moved the AOT loading code into an assembly
16063         load hook.
16064
16065 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
16066
16067         * reflection.h reflection.c class.h class.c: Delete duplicate 
16068         definition of mono_type_get_name () from reflection.c and export the
16069         one in class.c.
16070
16071         * class.c: Class loading fixes from Bernie Solomon 
16072         (bernard@ugsolutions.com).
16073
16074         * reflection.c: Endianness fixes from Bernie Solomon 
16075         (bernard@ugsolutions.com).
16076         
16077 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
16078
16079         * assembly.h assembly.c: Define a file format version for AOT
16080         libraries.
16081         
16082         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
16083
16084         * appdomain.h (MonoJitInfo): New field to determine whenever the
16085         code is domain neutral.
16086         
16087 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
16088
16089         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
16090
16091 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
16092
16093         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
16094         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
16095         Avoid caching the result since strings must be domain specific. Fixes
16096         #48050.
16097
16098 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
16099
16100         * marshal.c (mono_marshal_init): Make this callable multiple times
16101         since it is hard to find a correct place to call it.
16102
16103         * object.c (mono_runtime_class_init): Execute static constructors in
16104         the correct appdomain.
16105
16106         * image.c (build_guid_table): Handle the case when multiple images have
16107         the same GUID.
16108
16109 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16110
16111         * icall.c: added a couple of icalls for System.Web.
16112
16113 2003-08-28  Martin Baulig  <martin@ximian.com>
16114
16115         * icall.c (ves_icall_Type_BindGenericParameters): Use
16116         `klass->generic_inst' instead of `&klass->byval_arg' in the
16117         mono_type_get_object() call.  The returned type must be
16118         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
16119
16120 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
16121
16122         * NOTES: New file.
16123
16124         * object.c (mono_class_proxy_vtable): Make it thread safe.
16125
16126         * pedump.c: Fix warning.
16127
16128         * object.c appdomain.h: Get rid of metadata_section. 
16129         It is no longer needed and it was causing deadlocks with domain->lock.
16130
16131         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
16132
16133 2003-08-26  Martin Baulig  <martin@ximian.com>
16134
16135         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
16136
16137 2003-08-26  Martin Baulig  <martin@ximian.com>
16138
16139         * pedump.c (main): Call mono_metadata_init(),
16140         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
16141         and mono_loader_init().
16142
16143 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
16144
16145         * loader.h: Add missing include to fix build.
16146
16147         * image.h: mono_image_load_references is no more.
16148
16149         * assembly.c: Reworked assembly loading to make it really thread safe.
16150         After these changes, the assembly returned by mono_assembly_open is
16151         fully initialized, i.e. all its references assemblies are loaded.
16152
16153         * assembly.c (mono_image_load_references): Renamed to 
16154         mono_assembly_load_references, and made private, since clients no
16155         longer need to call it.
16156
16157         * class.c: Removed calls to mono_assembly_load_references, since it was
16158         a source of deadlocks.
16159
16160         * loader.h loader.c class.h class.c: Protect data structures using a 
16161         new lock, the loader lock.
16162
16163         * class.c (mono_class_setup_vtable): Create temporary hash tables and
16164         GPtrArrays only when needed.
16165
16166         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
16167         into empty structures by mcs. Fixes pinvoke7.cs.
16168         
16169         * domain.c (mono_init): Call a new initialization function.
16170
16171         * appdomain.c (mono_runtime_init): Call the new initializer function
16172         of the marshal module.
16173
16174         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
16175         inserted into empty structures by mcs. Fixes pinvoke7.cs.
16176
16177         * marshal.h marshal.c: Added locks around the wrapper caches to make
16178         this module thread safe.
16179
16180         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
16181         this argument. Fixes pinvoke1.exe.
16182
16183 2003-08-25  Lluis Sanchez <lluis@ximian.com>
16184
16185         * object.h: Added call_type field to MonoMethodMessage and the corresponding
16186         enumeration of values. Removed fields to store remote call output values in
16187         MonoAsyncResult. Not needed any more.
16188         * object.c: Initialize call_type and async_result fields in mono_message_init.
16189         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
16190         dispatching the message.
16191         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
16192         async call to finish. To do it use a message with EndInvoke call type.
16193
16194 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
16195
16196         * loader.h loader.c (mono_method_hash_marhal_info): New function which
16197         determines whenever a method has marshalling info.
16198
16199 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16200
16201         * assembly.c: fix the build on windows.
16202
16203 2003-08-22 Lluis Sanchez <lluis@ximian.com>
16204
16205         * object.cs: Fixed bug #47785.
16206
16207 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
16208
16209         * string-icalls.c (StringReplace): If their are no occurances of
16210         the old string found return a reference to the supplied
16211         string. This saves some memory and matches MS behavoir.
16212         
16213 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16214
16215         * socket-io.c: fixed compilation for systems that define AF_INET6
16216         and don't define SOL_IP/SOL_IPV6.
16217
16218 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
16219
16220         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
16221         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
16222
16223         * rawbuffer.c rawbuffer.h: Make this module thread safe.
16224
16225         * domain.c: Make this module thread safe.
16226
16227         * domain.c (mono_init): Call new initialization function.
16228
16229         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
16230         reference types too. Fixes #38812.
16231
16232         * image.c (mono_image_init): Fixed warnings.
16233
16234         * class.c (mono_class_from_typeref): Handle assembly load failure
16235         correctly.
16236
16237         * appdomain.c (add_assemblies_to_domain): Handle the case when
16238         the references of an assembly are not yet loaded.
16239
16240         * metadata.c image.c assembly.c: Moved initialization of global
16241         variables to a separate function called at startup since lazy 
16242         initialization of these variables is not thread safe.
16243         
16244         * image.c assembly.c: Made this module thread safe by adding locks in 
16245         the appropriate places.
16246
16247         * domain.c (mono_init): Call the new initialization functions of the
16248         three modules.
16249
16250 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
16251
16252         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
16253           make a direct call. It is proxy's work to make the call asynchronous.
16254           mono_delegate_end_invoke(): If the targe is a proxy, just collect
16255           the return values.
16256         * object.cs: mono_method_call_message_new(): read AsyncResult and
16257           state object from parameters list, if this info is requested.
16258         * object.h: Added fields to store remote call output values in
16259           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
16260
16261 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16262
16263         * object.h: add needed fields to MonoThread.
16264         * threads.c, threads.h: allow registering a function to cleanup data
16265         allocated per thread by the JIT.
16266
16267 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16268
16269         * loader.h: portability fix by Bernie Solomon
16270         * <bernard@ugsolutions.com>.
16271
16272 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
16273
16274         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
16275         return a MonoArray. This simplifies the code and also ensures that
16276         the cache allways contains an object reference as a value.
16277
16278         * icall.c (ves_icall_get_parameter_info): Simplified using the new
16279         function.
16280
16281 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16282
16283         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
16284         fixes a problem with byte ordering when getting the address family for
16285         a socket.
16286
16287 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
16288
16289         * .cvsignore: Added monosn.
16290
16291         * reflection.h reflection.c loader.c: Added support for parameter
16292         marshalling to dynamically created types. Fixes #47295.
16293
16294 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
16295
16296         * rand.c: remove useless warnings.
16297
16298 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16299
16300         * class.c: implemented ldtoken for methods and fieldrefs.
16301
16302 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16303
16304         * threadpool.c: when mono_async_invoke was called, no one took care of
16305         monitoring the queue. So if the method invoked took some time and we
16306         got new async invoke requests after 500 ms (the thread created waited
16307         that long in WaitForSingleObject), the new async invoke was not called
16308         until the previous one finished.
16309
16310         This is fixed now. Thanks to Totte for helping with it.
16311
16312 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16313
16314         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
16315
16316 2003-08-11  Martin Baulig  <martin@ximian.com>
16317
16318         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
16319
16320 2003-08-06  Martin Baulig  <martin@ximian.com>
16321
16322         * mono-debug-debugger.c: Added support for static fields,
16323         properties and methods.
16324
16325 2003-08-06  Martin Baulig  <martin@ximian.com>
16326
16327         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16328         make this work for applications with multiple application domains.
16329
16330 2003-08-04  Martin Baulig  <martin@ximian.com>
16331
16332         * mono-debug-debugger.c: Completely reworked the type support; the
16333         most important thing is that we're now just using one single
16334         `MonoType' instance per type.
16335
16336 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16337
16338         * mono-endian.h, mono-endian.c, icall.c: Added icall
16339         ves_icall_System_Double_AssertEndianity to assert double word endianity
16340         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16341
16342 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16343
16344         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16345         support, icalls and fixes.
16346
16347 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16348
16349         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16350         classes that are a punctuation character in .NET is not the same a
16351         g_unichar_ispunct.
16352
16353 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16354
16355         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16356
16357 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16358
16359         * icall.c: Add new MemCopy internalcall.
16360         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16361         Simplified code; It is not necessary to handle all the cases here,
16362         as the C# code takes care of it.  Only handle the case of the name
16363         resource embedded into the assembly.
16364
16365         Changed signature to return the data pointer and the size of the
16366         data. 
16367
16368 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16369
16370         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16371         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16372
16373 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16374
16375         * socket-io.c: ignore EINTR error in select.
16376
16377 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16378
16379         * class.h, class.c: removed unused subclasses field in MonoClass.
16380
16381 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16382
16383         * icall.c: improve fix of get_base_definition(). If the parent class
16384           doesn't have the mehod, look at the parent of the parent.
16385         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16386           to check if a parameter is an in or out parameter
16387           (PARAM_ATTRIBUTE_IN is not set by default).
16388           mono_method_return_message_restore(): Use mono_class_value_size to
16389           get the size of a value type. mono_type_stack_size (parameterType)
16390           does not return the correct value if parameterType is byRef.
16391           mono_load_remote_field(), mono_load_remote_field_new(),
16392           mono_store_remote_field(), mono_store_remote_field_new():
16393           raise exception if the remote call returns an exception.
16394
16395 2003-07-28  Martin Baulig  <martin@ximian.com>
16396
16397         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16398         method.  This is a wrapper around mono_runtime_invoke() which
16399         boxes the instance object if neccessary.
16400
16401 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16402
16403         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16404         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16405
16406 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16407
16408         * icall.c: disable mcs bug workaround.
16409
16410 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16411
16412         * object.c (mono_runtime_class_init): Take the metadata_section
16413         mutex before obtaining the domain mutex.
16414
16415         * appdomain.h: Added definition of metadata_section mutex here. 
16416
16417         * object.c: define metadata_mutex here.
16418
16419 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16420
16421         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16422         fixed.
16423
16424 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16425
16426         * reflection.c: Fix bug #46669
16427
16428 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16429
16430         * exception.c:
16431         * exception.h:
16432         * icall.c:
16433         * object.h: fill in the type name for TypeLoadException.
16434
16435 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16436
16437         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16438         relationship between TypeBuilders while compiling corlib) and bug
16439         45993 (Array types returned from the runtime while compiling
16440         corlib were from the loaded corlib).
16441
16442 2003-07-22  Martin Baulig  <martin@ximian.com>
16443
16444         * mono-debug-debugger.c: Reworked the type support a bit more;
16445         distinguish between types and classes.
16446
16447 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16448
16449         * icall.c: add IsArrayImpl icall.
16450
16451 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16452
16453         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16454         initializing real_size only once. Also fix bug #46602.
16455
16456 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
16457
16458         * object.c: Renamed mono_metadata_section to metadata_section.
16459
16460 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
16461
16462         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
16463           empty array if the type is an array. Fixed.
16464           ves_icall_MonoMethod_get_base_definition: if the base method
16465           is abstract, get the MethodInfo from the list of methods of
16466           the class.
16467         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16468           and it was 1-based. Fixed in mono_param_get_objects.
16469
16470 2003-07-20  Martin Baulig  <martin@ximian.com>
16471
16472         * mono-debug.h: Set version number to 31.
16473         (mono_debug_init): Added `MonoDomain *' argument.
16474
16475         * mono-debug-debugger.c: Reworked the type support; explicitly
16476         tell the debugger about builtin types; pass the `klass' address to
16477         the debugger.
16478
16479 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16480
16481         * image.c: Allow new metadata tables to be loaded without a
16482         warning. Also update the warning message to give the new constant value.
16483                 
16484 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16485
16486         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16487         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16488         array type representation changes.
16489
16490 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16491
16492         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16493         on Environment.Exit () call.
16494
16495 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16496
16497         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16498         requires a matching corlib.
16499
16500 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16501
16502         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16503           Committed again without the CRs.
16504         
16505 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16506
16507         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16508           getting it from the "this" socket instance. Did not work
16509           if the socket is a subclass of Socket.
16510           Also fixed bug #35371.
16511
16512 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16513
16514         * metadata.c: fixed size for TypedByRef.
16515         * loader.c: when searching for a method, consider the vararg amrker.
16516         * unicode.c, decimal.c: constify some arrays.
16517
16518 2003-07-15  Dick Porter  <dick@ximian.com>
16519
16520         * socket-io.c: Fixed compilation for gcc < 3.2.
16521
16522         Fixed compilation for machines that don't have AF_INET6 (thanks to
16523         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16524
16525         Fixed compile warnings.
16526         
16527         Fixed formatting and line endings.
16528
16529 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16530
16531         * socket-io.h:
16532         * socket-io.c: Added IPv6 support.
16533
16534 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16535
16536         * class.c (mono_class_is_assignable_from): New function to implement
16537         the is_assignable_from logic. Used by mono_object_isinst, 
16538         Type::IsAssignableFrom () and the interpreter.
16539
16540         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16541         Object, even interfaces.
16542         
16543         * object.c (mono_object_isinst): Implement in terms of 
16544         is_assignable_from.
16545
16546         * icall.c (ves_icall_type_is_assignable_from): New icall.
16547
16548 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16549
16550         * domain.c (foreach_domain): fix compiler warning.
16551
16552 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16553
16554         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16555         not available on all plattforms
16556
16557 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16558
16559         * image.h image.c: Store the metadata version string in MonoImage.
16560         * icall.c: New icall to retrieve the image version.
16561         * reflection.c (create_dynamic_image): Fill in the image version field
16562         * reflection.c (build_compressed_metadata): Use the image version
16563         from the image structure.
16564
16565 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16566
16567         * appdomain.c: modified comment.
16568         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
16569         That will be its last iteration when mono_gc_cleanup is called from
16570         mono_runtime_cleanup and before the domain is unloaded.
16571
16572         Fixes bug #45962.
16573
16574 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
16575
16576         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
16577         attributes.
16578
16579 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16580
16581         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
16582         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
16583         Bernie Solomon <bernard@ugsolutions.com>.
16584
16585 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16586
16587         * object.c, object.h: provide mono_object_new_fast() for faster
16588         allocation in some special cases.
16589
16590 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
16591
16592         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
16593         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
16594
16595 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
16596
16597         * threadpool.c: fix leaks.
16598
16599 2003-07-01  Dick Porter  <dick@ximian.com>
16600
16601         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
16602         using MonoGHashTables.  Fixes threadpool bug posted to list.
16603
16604 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16605
16606         * image.h, image.c: added support to load an assembly from a byte array.
16607         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
16608         assembly bundle support.
16609
16610 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
16611
16612         * threadpool.c (mono_thread_pool_add): keep a reference to the
16613         AsyncResult to prevent GC
16614
16615 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16616
16617         * class.c: leak fix.
16618
16619 2003-06-25  Dick Porter  <dick@ximian.com>
16620
16621         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
16622         for the async object, the WaitHandle object will close the handle.
16623         Fixes bug 45321.
16624
16625 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16626
16627         * class.c: in mono_array_class_get (), lookup from the hash with the
16628         same type we insert: this works around a bug in
16629         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
16630         lluis. The real fix will have to wait for after the release.
16631
16632 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16633
16634         * icall.c: fix memory leak when getting type members.
16635
16636 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16637
16638         * reflection.c: added more pubtoken special cases.
16639
16640 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
16641
16642         * class.c: handle field offset correctly when class size
16643         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
16644
16645 2003-06-20  Martin Baulig  <martin@ximian.com>
16646
16647         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
16648         *image' field.
16649
16650 2003-06-20  Martin Baulig  <martin@ximian.com>
16651
16652         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
16653
16654 2003-06-20  Martin Baulig  <martin@ximian.com>
16655
16656         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
16657         just distinguish between variables in registers and variables at
16658         an offset relative to a register.
16659
16660 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16661
16662         * icall.c: #ifdef out latest changes until mcs is fixed.
16663
16664 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16665
16666         * icall.c: return members in metadata order.
16667
16668 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16669
16670         * icall.c: avoid infinite loop in GetTimeZoneData.
16671
16672 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
16673
16674         * icall.c: added Marshal.Prelink/All icalls.
16675
16676 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16677
16678         * object.c, object.h: fix warnings and do some overflow checking
16679         when creating arrays.
16680
16681 2003-06-17  Dick Porter  <dick@ximian.com>
16682
16683         * file-io.h:
16684         * file-io.c: File attributes need to be tweaked slightly when
16685         passed from the managed to the w32 world.
16686
16687 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16688         * profiler.h profiler-private.h profiler.c: Rework last patch
16689         based on suggestion by Paolo.
16690         
16691 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16692
16693         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
16694         instruction level coverage data collection.
16695         * profiler.h profiler.c (: Added new callback function which can be
16696         used by the profiler to limit which functions should have coverage
16697         instrumentation.
16698         * profiler.c (mono_profiler_load): Call g_module_build_path to
16699         generate the file name of the profiler library.
16700
16701 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16702
16703         * profiler.c, profiler.h, profiler-private.h: added basic block 
16704         coverage profiling API.
16705
16706 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
16707
16708         * reflection.c (mono_reflection_create_runtime_class): Add support
16709         for events in dynamically generated code.
16710
16711         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
16712         not allocated.
16713
16714 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16715
16716         * icall.c: when getting timezone info, return reasonable values if we
16717         can't get the actual data.
16718
16719 2003-06-14  Dick Porter  <dick@ximian.com>
16720
16721         * threads.c (start_wrapper): Remove the reference to the thread
16722         object in the TLS data, so the thread object can be finalized.
16723         This won't be reached if the thread threw an uncaught exception,
16724         so those thread handles will stay referenced :-( (This is due to
16725         missing support for scanning thread-specific data in the Boehm GC
16726         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
16727
16728 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
16729
16730         * reflection.c: ensure streams and tables are first allocated with
16731         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
16732
16733 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16734
16735         * icall.c: fixed GetElementType for byrefs (bug# 44792).
16736
16737 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
16738
16739         * reflection.c (mono_reflection_create_runtime_class): Add support for
16740         properties to dynamically created classes.
16741         * reflection.c: Fix a few places where non-MonoObjects were inserted
16742         into the tokens hashtable.
16743
16744 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16745
16746         * object.c: some support to handle out of memory exceptions.
16747
16748 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
16749
16750         * marshal.c (mono_marshal_get_native_wrapper): support reference
16751         return types
16752
16753 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16754
16755         * object.h, object.c: more portability stuff from Bernie Solomon.
16756         Unexport mono_object_allocate(). Added mono_object_unbox ().
16757         Set exitcode when an unhandled exception is thrown.
16758
16759 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
16760
16761         * marshal.c (mono_marshal_get_native_wrapper): use custom
16762         marshaler for return types.
16763
16764 2003-06-10  Dick Porter  <dick@ximian.com>
16765
16766         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
16767         ip_mreq is available
16768
16769 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
16770
16771         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
16772         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
16773         by Bernie Solomon <bernard@ugsolutions.com>.
16774
16775 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
16776
16777         * gc.c (mono_gc_init): Avoid error message on shutdown when
16778         GC_DONT_GC=1 is used.
16779
16780         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
16781         New icall to return the GUID of a module.
16782
16783 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16784
16785         * class.c: ensure instance size always includes the parent's size
16786         even whem class size is set explicitly (fixes bug#44294).
16787
16788 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16789
16790         * profiler.h, profiler.c: made the simple profiler thread-safe,
16791         get more accurate timing info. Allow the loading of an
16792         externally-developed profiler module.
16793
16794 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
16795
16796         * marshal.c (mono_marshal_get_native_wrapper): improved
16797         class/byref arguments.
16798         (mono_marshal_get_native_wrapper): better string marshaling support.
16799
16800 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
16801
16802         * class.c: ensure .pack and .size are handled correctly and
16803         simplified layout of static fields.
16804
16805 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
16806
16807         * appdomain.c
16808         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
16809
16810         * loader.c (mono_lookup_pinvoke_call): look for modules in the
16811         current directory (fix bug 44008)
16812
16813 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
16814
16815         * marshal.c (mono_marshal_get_native_wrapper): started support for
16816         custom marshalers.
16817         (mono_delegate_to_ftnptr): consider marshalling specifications
16818
16819 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
16820
16821         * reflection.c, reflection.h: emit custom marshal info.
16822
16823 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16824
16825         * object.c: free the GError.
16826         * icall.c: added CloseEvent_internal.
16827         * threads.[ch]:
16828         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
16829         call.
16830
16831 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
16832
16833         * loader.c (mono_method_get_signature): Add support for dynamic
16834         assemblies.
16835
16836 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
16837
16838         * reflection.c: fixed bug #43905.
16839
16840 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16841
16842         * class.c, domain.c, icall.c, metadata.h, object.h: support for
16843         handling TypedReference and ArgIterator.
16844         * loader.c, loader.h: added function to get signature at call site.
16845
16846 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16847
16848         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
16849         data readonly. Buglets and warning fixes. Some MethodSpec support.
16850
16851 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16852
16853         * class.h, class.c, object.c: remove relative numbering support.
16854
16855 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
16856
16857         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
16858         free the string, until we get a chance to fix Gtk#
16859
16860 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16861
16862         * marshal.c: revert last patch.
16863
16864 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
16865
16866         * icall.c: updates for new mono_class_vtable() not calling
16867         the type constructor anymore.
16868
16869 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
16870
16871         * object.h, object.c: separate vtable creation from type
16872         initialization. Make running the .cctor thread safe.
16873
16874 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
16875
16876         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
16877
16878 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
16879
16880         * loader.c (mono_get_method): consider calling convention
16881
16882 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
16883
16884         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
16885         to return the invisible global type for a module.
16886
16887         * reflection.c (mono_image_build_metadata): Emit global fields too.
16888
16889 2003-05-20  Peter Williams  <peterw@ximian.com>
16890
16891         * loader.c (mono_lookup_internal_call): Add a few newlines.
16892
16893 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
16894
16895         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
16896         literal strings.
16897
16898         * appdomain.c (set_domain_search_path): Recalculate search path when
16899         AppDomainSetup.PrivateBinPath changes.
16900
16901         * object.c (mono_class_compute_gc_descriptor): It turns out some
16902         parts of the class libs (like System.Thread) holds pointers to
16903         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
16904         to treat native int a pointer type here.
16905         
16906 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
16907
16908         * appdomain.h, domain.c: add hashtable for jump target resolution.
16909
16910 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
16911
16912         * reflection.h reflection.c icall.c: Added new icalls 
16913         GetManifestResourceInfoInternal, GetModulesInternal and support
16914         infrastructure.
16915
16916 2003-05-16  Dick Porter  <dick@ximian.com>
16917
16918         * icall.c:
16919         * file-io.h:
16920         * file-io.c: Implement System.IO.MonoIO::GetTempPath
16921
16922 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
16923
16924         * object.c: mono_store_remote_field: little fix to previous patch.
16925
16926 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16927
16928         * class.c: add constructors to array classes.
16929         * icall.c: special case array construction for InternalInvoke (),
16930
16931 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
16932
16933         * class.h class.c reflection.c object.c: Added support for field
16934         defaults in dynamically generated classes.
16935
16936 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
16937
16938         * reflection.c: properly encode charset for ddlimport.
16939
16940 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
16941
16942         * threads.c: allow compiling without GC.
16943
16944 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16945
16946         * appdomain.h, object.c, object.h, threads.c, threads.h: added
16947         handling of thread static data.
16948
16949 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16950
16951         * reflection.h, reflection.c: added mono_custom_attrs_free ().
16952
16953 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
16954
16955         * class.c (mono_array_class_get): always set the serializable flags
16956         (mono_array_class_get): always set the SEALED attribute for array types
16957
16958 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
16959
16960         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
16961         attributes (fix for bug 42021).
16962
16963 2003-05-12  Dick Porter  <dick@ximian.com>
16964
16965         * gc.c: Don't run finalizers when the finalizer thread is
16966         finishing up, because the default domain has already been
16967         destroyed.
16968
16969 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
16970
16971         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
16972         value is null, we should throw an exception.   This is slightly
16973         different than the other conventions used for the constructor.
16974
16975 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16976
16977         * socket-io.c: fixed windows build.
16978
16979 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16980
16981         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
16982
16983 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
16984
16985         * object.c (mono_string_new_wrapper): Compatibility fix for MS
16986         compilers.
16987
16988 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
16989
16990         * class.c (mono_class_layout_fields): Add experimental GC aware
16991         auto layout facility. Requires class library changes to work correctly.
16992
16993         (mono_class_setup_vtable): Avoid overriding explicit interface
16994         method implementations. Fixes iface3.exe test.
16995
16996         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
16997         object reference.
16998         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
16999         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
17000
17001         * metadata.h: Add new type classification macro which determines
17002         whenever the type holds an object reference.
17003
17004 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
17005
17006         * marshal.c (mono_marshal_get_native_wrapper): cleanups
17007
17008 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
17009
17010         * gc.c (finalizer_thread): Work around a GC bug.
17011
17012 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
17013
17014         * marshal.c (emit_struct_conv): allow unions
17015
17016         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
17017
17018 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
17019
17020         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
17021
17022 2003-05-06  Martin Baulig  <martin@ximian.com>
17023
17024         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
17025
17026 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17027
17028         * socket-io.c:
17029         (Select_internal): allow NULLs, don't create arrays if not needed.
17030         Coupled with Socket.cs changes.
17031
17032         * threadpool.c:
17033         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
17034         register a finalizer for it that will close the semaphore handle. This
17035         fixes the leak and make Lupus' test run with > 4080 loops.
17036
17037 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
17038
17039         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
17040         Jerome Laban (bug #42287)
17041
17042 2003-05-02  Martin Baulig  <martin@ximian.com>
17043
17044         * debug-mono-symfile.h
17045         (MonoSymbolFile): Moved declaration into mono-debug.h.
17046         (MonoDebugMethodJitInfo): Likewise.
17047         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
17048         argument.
17049         (_mono_debug_address_from_il_offset): Take a
17050         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
17051
17052         * mono-debug.h
17053         (MonoDebugDomainData): New struct.
17054         (mono_debug_get_domain_data): New function.
17055         (mono_debug_add_method): Take an additional `MonoDomain *'
17056         argument.
17057         (mono_debug_source_location_from_address): Likewise.
17058         (mono_debug_il_offset_from_address): Likewise.
17059         (mono_debug_address_from_il_offset): Likewise.
17060
17061 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
17062
17063         * reflection.c: one more check for null type in custom attrs.
17064
17065 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17066
17067         * reflection.c: avoid warning (comparison is always false due to limited
17068         range of data type).
17069
17070 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17071
17072         * icall.c: throw an exception in Type.GetField if the argument 'name'
17073         is NULL.
17074
17075 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
17076
17077         * reflection.c: fixed handling of enums in named arguments to custom
17078         attributes (bug #42123).
17079
17080 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
17081
17082         * reflection.c: use the right array element type and handle
17083         a null for a Type argument, too.
17084
17085 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
17086
17087         * reflection.c: handle arrays as arguments to custom attributes.
17088
17089 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17090
17091         * reflection.c: handle a string value in a custom attr
17092         ctor that takes an object.
17093
17094 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
17095
17096         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
17097         (fix bug #42063)
17098
17099 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
17100
17101         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
17102
17103 2003-04-27  Martin Baulig  <martin@ximian.com>
17104
17105         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
17106         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
17107         MONO_DEBUGGER_EVENT_BREAKPOINT.
17108         (mono_breakpoint_trampoline_code): Removed.
17109         (mono_debugger_event_handler): The last argument is now a
17110         `guint32'.
17111         (mono_debugger_insert_breakpoint_full): Removed the
17112         `use_trampoline' argument.
17113         (mono_debugger_method_has_breakpoint): Likewise.
17114         (mono_debugger_trampoline_breakpoint_callback): Renamed to
17115         mono_debugger_breakpoint_callback(); take the method and
17116         breakpoint number as arguments.
17117
17118 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
17119
17120         * metadata.c: fix off by one when loading parameters attributes.
17121
17122 2003-04-24  Martin Baulig  <martin@ximian.com>
17123
17124         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
17125
17126 2003-04-24  Martin Baulig  <martin@ximian.com>
17127
17128         * mono-debug-debugger.c: Moved all code which interacts with the
17129         Mono Debugger here.
17130
17131         * debug-mono-symfile.c: This code now just deals with the symbol
17132         file itself, the debugger code is now in mono-debug-debugger.c.
17133
17134 2003-04-23  Martin Baulig  <martin@ximian.com>
17135
17136         * mono-debug.c (mono_debug_source_location_from_il_offset):
17137         New method; like mono_debug_source_location_from_address(), but
17138         takes an IL offset instead of a machine address.
17139
17140 2003-04-23  Martin Baulig  <martin@ximian.com>
17141
17142         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
17143         `line' field; this is now computed by the debugger.
17144
17145 2003-04-23  Martin Baulig  <martin@ximian.com>
17146
17147         * mono-debug.[ch]: New files.  This is the new debugging interface.
17148
17149         * mono-debug-debugger.[ch]: New files.  Moved all code which
17150         interacts with the Mono Debugger here.
17151
17152 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
17153
17154         * domain.c (mono_init): initialize mono_defaults.monitor_class
17155
17156 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
17157
17158         * reflection.c (method_encode_code): Add a spicy exception to help
17159         future compiler authors.
17160
17161 2003-04-21  Martin Baulig  <martin@ximian.com>
17162
17163         * icall.c
17164         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17165         Make this work with relative pathnames; g_filename_to_uri() needs
17166         an absolute filename.
17167
17168 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
17169
17170         * icall.c: Track name changes in Object and ValueType.
17171
17172 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
17173
17174         * metadata.c (mono_type_stack_size): size should be a multiple of
17175         sizeof (gpointer)
17176
17177 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17178
17179         * gc.c:
17180         (internal_domain_finalize): moved into mono_domain_finalize. No need
17181         to create another thread because the finalizers will be run in the
17182         finalizer thread.
17183         
17184         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
17185         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
17186         to be run (MS does this too).
17187
17188 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
17189
17190         * object.c (mono_class_compute_gc_descriptor): Update comment.
17191
17192         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
17193
17194         * image.h: Add synchronized wrapper cache.
17195
17196         * image.c (do_mono_image_open): Initialize cache.
17197
17198         * reflection.c (create_dynamic_mono_image): Initialize cache.
17199
17200 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17201
17202         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
17203         ves_icall_System_Buffer_ByteLengthInternal.
17204
17205 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17206
17207         * reflection.c: setup klass->nested_in earlier. Allow
17208         a dash in the assembly name.
17209
17210 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
17211
17212         * metadata.c (mono_type_to_unmanaged): dont access
17213         type->data.klass for MONO_TYPE_OBJECT
17214         (mono_type_to_unmanaged): consider System.Delegate class
17215
17216 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
17217
17218         * class.c: just setup supertypes in the proper place instead of
17219         initializing the full element class for arrays.
17220
17221 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17222
17223         * class.c: ensure the element class of arrays is initialized.
17224         Setup the supertype info for array classes, too.
17225
17226 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
17227
17228         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
17229
17230 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17231
17232         * Makefile.am: re-added -m option when running cygpath. This way,
17233         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
17234         separator.
17235         * mono-config.c: same codepath for locating mono config file for WIN32
17236         and the rest.
17237         * assembly.c: if mono_assembly_setrootdir is called, don't override
17238         the value set.
17239
17240 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17241
17242         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
17243         MONO_ASSEMBLIES variable.
17244
17245 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
17246
17247         * icall.c: added Assembly::GetNamespaces() icall.
17248
17249 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17250
17251         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
17252
17253 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
17254
17255         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
17256         * object.c: fixed bug in the construction of vtable for proxies
17257
17258 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
17259
17260         * object.c (mono_array_new): Mark mono_array_new as an icall.
17261
17262 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17263
17264         * class.c: fixed test for public method when overriding interfaces.
17265         Closes bug #40970.
17266
17267 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17268
17269         * appdomain.h, domain.c: added mono_domain_foreach() to
17270         be able to access the currently loaded appdomains.
17271         * object.c: make string interning work across sppdomains.
17272         Mark some functions for use as icalls.
17273
17274 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
17275
17276         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
17277
17278         * reflection.h reflection.c: Allocate long living data using 
17279         GC_MALLOC_ATOMIC so the collector does not need to scan it.
17280
17281         * reflection.c: Double the allocation size in streams instead of
17282         increasing it, to prevent unneccesary copying on large assemblies.
17283         
17284         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
17285         creation if the assembly does not have the Run flag set.
17286
17287 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
17288
17289         * class.h: avoid the C++ keywords in header files (Jerome Laban
17290         spotted and fixed this).
17291
17292 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17293
17294         * object.c:
17295         (mono_unhandled_exception): fill in the arguments for the
17296         UnhandledException event. Only trigger that event for the default
17297         domain (as MS does).
17298
17299 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
17300
17301         * object.c: Improve typed allocation stuff based on suggestions from
17302         Paolo. Also turn it on if the GC library supports it.
17303
17304 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17305
17306         * object.c object.h class.h: Added experimental typed allocation
17307         facility using the interfaces in gc_gcj.h.
17308
17309         * os/gc_wrapper.h: Added new include files.
17310         
17311 2003-04-03  Martin Baulig  <martin@ximian.com>
17312
17313         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
17314         which is not yet enabled by default.
17315
17316         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
17317         functions.
17318         (mono_gc_lock, mono_gc_unlock): New static functions.
17319
17320         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
17321         functions; stop/start the world for the garbage collector.  This
17322         is using the windows API; we need to complete the SuspendThread()/
17323         ResumeThread() implementation in the io-layer to make this work on Unix.
17324         (mono_gc_push_all_stacks): New public function; tells the garbage
17325         collector about the stack pointers from all managed threads.
17326
17327 2003-04-03  Martin Baulig  <martin@ximian.com>
17328
17329         * object.h (MonoThread): Added `gpointer stack_ptr'.
17330
17331         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17332
17333 2003-04-03  Martin Baulig  <martin@ximian.com>
17334
17335         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17336
17337 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17338
17339         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17340         field.last.
17341
17342 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17343
17344         * loader.c (mono_lookup_internal_call): Report the corlib that is
17345         out of sync.
17346
17347 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17348
17349         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17350         System.DBNull (it's class not valuetype).
17351
17352 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17353
17354         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17355         if the array method was already assigned a token (fixes bug#40646).
17356
17357 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17358
17359         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17360         if no assembly is given.
17361
17362 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17363
17364         * metadata.h: Added the new tables.
17365
17366         * row-indexes.h: Added definitions for new tables.
17367
17368         * metadata.c: Add schemas for new tables, and add support for
17369         computing the sizes of them.
17370
17371         * class.c: Update for handling the new type cases.
17372
17373 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17374
17375         * metadata.h (MONO_TYPE_IS_VOID): new macro
17376
17377 2003-03-31  Martin Baulig  <martin@ximian.com>
17378
17379         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17380
17381         * threads.c (mono_thread_new_init): Call `thread_created' in the
17382         mono_thread_callbacks.
17383
17384 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17385
17386         * loader.h: added marshalbyrefobject_class to mono_defaults
17387         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17388         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17389           generation of output parameters.
17390           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17391         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17392           contextbound and the target object belongs to the context of the caller.
17393         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17394         * object.c: Implemented support for interfaces and abstract classes
17395           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17396           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17397
17398 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17399
17400         * class.h class.c (mono_class_is_subclass_of): New function.
17401         
17402         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17403         routines for most common case (calls from ArrayList::ToArray).
17404
17405         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17406         routine so programs which call Environment::Exit() can be profiled.
17407
17408         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17409         Added MONO_ARCH_SAVE_REGS.
17410
17411         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17412
17413 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17414
17415         * blob.h: Add a couple of new MonoType types definitions.
17416
17417         * tabledefs.h: Add a couple of new call convs.
17418
17419 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17420
17421         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17422         the layout of the class.
17423
17424         * reflection.c (alloc_table): double the size on overflow to avoid
17425         unnecessary copying.
17426
17427         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17428         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17429         null so it can be garbage collected.
17430         
17431 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17432
17433         * reflection.c (mono_reflection_get_type): Return the resolved type
17434         only if it is in the assembly we searched.
17435
17436         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17437
17438         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17439         method.
17440
17441 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17442
17443         * appdomain.c:
17444         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17445         the right one is 'file:///blah', but MS allows it.
17446         * assembly.c:
17447         (mono_assembly_open): allow 'file://blah'
17448
17449         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17450
17451 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17452
17453         * socket-io.c: fixes bug #40310.
17454
17455 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
17456
17457         * reflection.c (mono_reflection_parse_type): handle deeply nested
17458         types correctly.
17459
17460         * reflection.c (mono_image_create_token): Use unique token values
17461         since they will be put into a hash table.
17462
17463         * class.c (mono_class_setup_vtable): If a method occurs in more than
17464         one place in the vtable, and it gets overriden, then change the
17465         other occurances too.
17466
17467         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17468         object as return type.
17469
17470 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17471
17472         * icall.c: Deleted "ToString" implementation for double and float
17473         because they are full implemented in managed code.
17474
17475 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17476
17477         * reflection.c, reflection.h: implemented and exported functions
17478         to retrieve info about custom attributes.
17479
17480 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17481
17482         * appdomain.c: moved Uri handling to assembly.c
17483         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17484         work when using a file Uri in *nix and windows.
17485
17486         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17487         GetReferencedAssemblies.
17488
17489 2003-03-18  Dick Porter  <dick@ximian.com>
17490
17491         * icall.c: Rename a couple of internal calls
17492
17493         * threads.c: Set the thread state to Stopped when a thread exits.
17494         Fixes bug 39377.
17495
17496 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17497
17498         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17499         New icall.
17500
17501         * object.c (mono_class_vtable): fix warning.
17502
17503 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17504
17505         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17506
17507         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17508         memory.
17509         (method_encode_clauses): Create exception info structures in the right
17510         order.
17511         (mono_reflection_setup_internal_class): Initialize supertypes field.
17512
17513         * class.c object.c: Handle interfaces which implement other interfaces 
17514         correctly.
17515
17516         * class.h class.c: Move the supertypes array initialization code into 
17517         a separate function so it can be used for dynamic types too. Also call
17518         it earlier, in mono_class_init(), since it can be used before the
17519         type is initialized.
17520
17521 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17522
17523         * Makefile.am:
17524         * assembly.c:
17525         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17526
17527         * appdomain.c:
17528         * appdomain.h:
17529         * marshal.c:
17530         * object.c: remove warnings.
17531
17532 2003-03-13  Martin Baulig  <martin@ximian.com>
17533
17534         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17535         (MonoDebugLexicalBlockEntry): New types.
17536
17537         * debug-mono-symfile.c
17538         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17539
17540 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17541
17542         * process.c: ret can be any non-zero value accroding to MS doc.
17543
17544 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17545
17546         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17547         fixing a warning for a miss-used prototype, would have cause
17548         random memory corruption.
17549
17550 2003-03-07  Martin Baulig  <martin@ximian.com>
17551
17552         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17553         getting really annoying ....
17554
17555 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17556
17557         * reflection.c (fixup_method): added support for array methods.
17558
17559 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17560
17561         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17562         (pointed out by Michael Adams).
17563
17564 2003-03-04  Dick Porter  <dick@ximian.com>
17565
17566         * icall.c: Temporarily reverted the Double and Single ToString()
17567         change, because it broke nunit.
17568
17569 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
17570
17571         * object.h, threads.h: make include files compatible with C++
17572         (patch by Jerome Laban <jlaban@wanadoo.fr>).
17573
17574 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17575
17576         * icall.c: Erased ToString helper functions for Double and Single.
17577         Now, that implementations ar all in managed code (Double and Single
17578         Formatters).
17579
17580 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
17581
17582         * appdomain.c: Added method for initializing the default context of
17583         a domain. Added internal call for getting the default context.
17584         * appdomain.h: Added context variable in MonoDomain struct.
17585         * domain.c: mono_domain_set also sets the default context of the domain
17586         * icall.c: Mapped internal method InternalGetDefaultContext.
17587         * object.c: mono_object_get_virtual_method returns always a remoting
17588         wrapper if the object is a transparent proxy.
17589         mono_runtime_invoke_array: when creating an object by calling the
17590         constructor, if the created object is a proxy, then the constructor should
17591         be called using the a remoting wrapper.
17592
17593 2003-03-03  Dick Porter  <dick@ximian.com>
17594
17595         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
17596         variable so it compiles on solaris.  Problem spotted by
17597         Christopher Taylor <ct@cs.clemson.edu>
17598
17599 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17600
17601         * appdomain.c:
17602         (get_info_from_assembly_name): don't leak value.
17603
17604         * icall.c:
17605         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
17606         result.
17607
17608 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
17609
17610         * assembly.c: export mono_image_load_references ().
17611         * class.c: handle function pointers. mono_class_from_name() now
17612         supports nested type names directly.
17613
17614 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
17615
17616         * reflection.h reflection.c: Encode already created dynamic methods 
17617         and fields correctly as a DEF instead of a REF.
17618
17619         * reflection.c: Get rid of the force_ref argument to 
17620         mono_image_typedef_or_ref since it was wrong in the first place.
17621
17622         * string-icalls.c: add error checking to string constructors according
17623         to the MSDN docs.
17624
17625         * reflection.c: Emit types in the order their TypeBuilders were 
17626         created. Previously, a new table index was assigned to each type before
17627         the tables were emitted. This was wrong because the signature blob
17628         might already refer to a type by its original table index.
17629
17630 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
17631
17632         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
17633         change.
17634         
17635 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17636
17637         * Makefile.am: make assemblies dir have \ instead of / on windows.
17638
17639 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
17640
17641         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
17642         iterate over the NESTEDCLASS table using a linear search since the
17643         table is not guaranteed to be sorted by the secondary key.
17644
17645         * class.c (mono_class_create_from_typedef): fixed up call to
17646         mono_metadata_nesting_typedef.
17647         
17648 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
17649
17650         * marshal.c (mono_string_to_byvalstr): clear the memory as
17651         suggested by Jerome Laban <jlaban@wanadoo.fr>
17652
17653 2003-02-26  Dick Porter  <dick@ximian.com>
17654
17655         * process.c: Cope with padding in .rsrc blocks
17656
17657 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17658
17659         * metadata.h: reverted the filter_len change, it breaks reflection
17660         
17661 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17662
17663         * metadata.h: added a new field to store the filter_len
17664         
17665
17666 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
17667
17668         * reflection.c: handle custom attributes for types and members
17669         created with Reflection.Emit (bug#38422).
17670
17671 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
17672
17673         * reflection.c: define RTSpecialName automatically for constructors for
17674         compatibility with MS.NET.
17675
17676         * reflection.c (mono_reflection_create_runtime_class): initialize
17677         nested_in field of dynamically created classes.
17678
17679 2003-02-22  Martin Baulig  <martin@ximian.com>
17680
17681         * debug-mono-symfile.h: Incremented version number.
17682
17683 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17684
17685         * object.h icall.c process.c: fix warnings.
17686
17687 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17688
17689         * appdomain.h appdomain.c:
17690         (mono_domain_try_type_resolve): split the 
17691         name_or_tb argument into a name and a tb argument.
17692         (mono_domain_has_type_resolve): new function to check whenever the
17693         application has registered a TypeResolve event handler.
17694         
17695         * icall.c reflection.h reflection.c: move the type resolve logic into
17696         mono_reflection_get_type () so it will be invoked when 
17697         Assembly::GetType () is called.
17698
17699         * reflection.c:
17700         (mono_reflection_get_type): renamed to get_type_internal.
17701         (mono_reflection_get_type): fixed type name generation so it works 
17702         for nested types too.
17703         (mono_reflection_get_type): call has_type_resolve () to avoid the 
17704         costly type name generation if there is no resolve event handler.
17705
17706 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17707
17708         * class.c, image.c: load exported types from file references.
17709
17710 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
17711
17712         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
17713           used to cache the managed methods used to create proxies and make 
17714           remote invocation of methods.
17715         * class.h: Added in MonoVTable a flag to indicate that a class needs 
17716           to be remotely created.
17717         * object.c: Modified the method mono_class_vtable(). It now initializes 
17718           the remote flag of the vtable. Modified mono_object_new_specific(), 
17719           so now it checks the remote flag.
17720         * icall.c: Added a couple of internal methods, one for enabling instance 
17721           creation interception for a type, and one for creating objects bypassing
17722           the remote check.
17723
17724 2003-02-18  Martin Baulig  <martin@ximian.com>
17725
17726         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
17727         New interncall to get a method's metadata token.
17728
17729         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
17730         New interncall for the debugger.
17731
17732 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
17733
17734         * class.c (mono_class_setup_vtable): allocate supertype array
17735
17736 2003-02-18  Martin Baulig  <martin@ximian.com>
17737
17738         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
17739
17740 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17741
17742         * reflection.c:
17743         (assembly_name_to_aname): jump over unknown properties (i've found
17744         something like: 'type, assembly, version=xxx, custom=null, public...',
17745         so now will ignore custom=null and still get the rest of the values).
17746
17747 2003-02-17  Dick Porter  <dick@ximian.com>
17748
17749         * threads.c: Have Thread.Start() wait for a semaphore to signal
17750         that the thread has set up all its local data.  This fixes bug
17751         34323, where Abort() raced the new thread's TLS data.
17752
17753         Also removes the handle_store() call from start_wrapper, because
17754         threads are now always created suspended and there is no longer a
17755         race between the parent and child threads to store the info.
17756
17757 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
17758
17759         * image.c: explain the #- heap issue in a message, hopefully
17760         avoiding FAQs on mono-list.
17761
17762 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17763
17764         * icall.c:
17765         (GetEntryAssembly): if the domain has not invoked
17766         AppDomain.ExecuteAssembly yet, return the assembly of the default
17767         AppDomain.
17768
17769 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
17770
17771         * class.c (mono_ldtoken): make it work in dynamic assemblies.
17772
17773 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
17774
17775         * metadata.c, reflection.c: simple speedup to type hash
17776         and equals code.
17777
17778 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
17779
17780         * image.c, image.h, class.c, assembly.c: move module loading
17781         to MonoImage. When loading metadata, consider alignemnet from
17782         the start of metadata, not from the metadata address in memory.
17783
17784 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
17785
17786         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
17787         AssemblyBuilder objects. Factored out custom attribute creation into
17788         a separate function.
17789         (create_custom_attr): new function to create custom attributes.
17790
17791 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
17792
17793         * Makefile.am: Got tired of typing the full pathname to pedump.
17794         Until there is another option, am installing this.
17795
17796 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
17797
17798         * class.c (class_compute_field_layout): always set field->parent 
17799         (mono_ldtoken): use mono_defaults.fieldhandle_class;
17800
17801 2003-02-11  Dick Porter  <dick@ximian.com>
17802
17803         * threads-types.h:
17804         * monitor.c: Rewrote Monitor, making lock much faster and
17805         Pulse/Wait work as specified.  Also uses much fewer handles, and only
17806         creates them as needed.
17807
17808         * exception.c: Added SynchronizationLockException
17809
17810         * threads.c: Deleted old Monitor implementation.  The new one is
17811         in a new file.
17812
17813 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
17814
17815         * class.c: handled TypedReference type code. Set the correct size for
17816         class data. Setup interface_offsets for interface classes, too.
17817
17818 2003-02-09  Martin Baulig  <martin@ximian.com>
17819
17820         * debug-mono-symfile.h: Reflect latest symbol writer changes.
17821
17822 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
17823
17824         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
17825         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
17826         * object.c: fixed mono_object_get_virtual_method () for interfaces.
17827         * verify.c: check for code that runs after the end of the method.
17828
17829 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17830
17831         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
17832         "System.Math::Round2".
17833         * sysmath.h: Added Floor, Round and Round2 definitions.
17834         * sysmath.c: Modified certain functions that were not 100% compliant
17835         with MS.NET (math precision) and added the implementation of Floor,
17836         Round and Round2.
17837
17838 2003-02-07  Martin Baulig  <martin@ximian.com>
17839
17840         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
17841
17842 2003-02-07  Martin Baulig  <martin@ximian.com>
17843
17844         * debug-mono-symfile.c: Reflected latest symwriter changes.
17845         (mono_debug_create_mono_symbol_file): Removed.
17846         (mono_debug_open_mono_symbol_file): Take an argument which
17847         specifies whether to create a dynamic symbol file.
17848
17849 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
17850
17851         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
17852
17853 2003-02-05  Martin Baulig  <martin@ximian.com>
17854
17855         * reflection.c (mono_image_build_metadata): Make this public,
17856         protect it against being called multiple times, don't create
17857         resources and don't build the compressed metadata here.
17858         (mono_image_create_pefile): Do this here.
17859
17860         * icall.c
17861         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
17862
17863 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17864
17865         * socket-io.c: fixed bug #36322.
17866
17867 2003-02-06  Piers Haken <piersh@friskit.com>
17868
17869         * appdomain.[ch]:
17870         * class.h:
17871         * debug-mono-symfile.c:
17872         * icall.c:
17873         * loader.c:
17874         * mono-config.c:
17875         * monosn.c:
17876         * reflection.c:
17877         * socket-io.c: warning cleanups
17878
17879 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
17880
17881         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
17882         function. works like remoting invoke, but does a check for the Proxy first.
17883
17884 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
17885
17886         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
17887
17888 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
17889
17890         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
17891         array of pointers.
17892         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
17893         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
17894
17895         * object.c (mono_store_remote_field_new): used by the new jit
17896         instead of mono_store_remote_field
17897         (mono_load_remote_field_new): used by the new jit
17898         instead of mono_load_remote_field
17899
17900 2003-02-05  Patrik Torstensson
17901
17902         * appdomain.c: changed unload to take the domain id instead
17903         of domain
17904         
17905         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
17906
17907
17908 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17909
17910         * appdomain.c: don't look for assemblies in ApplicationBase if
17911         PrivateBinPathProbe is set.
17912
17913 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17914
17915         * object.c: make the first argument in main_args contain the absolute
17916         path to the assembly. Fixes bug #37511.
17917
17918 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17919
17920         * icall.c: get correct UTC offset for countries not using daylight
17921         time saving. Fixes bug #30030.
17922
17923 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17924
17925         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
17926         and 1 are the family).
17927
17928 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
17929
17930         * icall.c (ves_icall_InternalExecute): removed wrong assertion
17931
17932         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
17933
17934 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
17935
17936         * reflection.c: added support for SignatureHelper tokens, which is
17937         needed by the Calli opcode.
17938
17939         * reflection.h: track changes to SignatureHelper class.
17940
17941         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
17942
17943 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17944
17945         * appdomain.c: fixed loading assemblies from PrivateBinPath.
17946
17947 2003-02-03  Patrik Torstensson
17948         * appdomain.[c|h], domain.c : 
17949          - Added support for getting a domain via domain id
17950          - Support for setting and getting domain from System.AppDomain 
17951            (used in cross appdomain channel)
17952          - Added support for get/set for a MonoAppContext on a thread 
17953            (Context class in System.Runtime.Remoting.Contexts),
17954          - Removed hack in Get/SetData and ExecuteAssembly.
17955         
17956         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
17957         the managed world to get control when a proxy is created.
17958
17959         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
17960         
17961 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
17962
17963         * icall.c
17964         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17965         Populate the codebase field as well.
17966
17967 2003-02-02  Martin Baulig  <martin@ximian.com>
17968
17969         * debug-mono-symfile.c
17970         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
17971         (mono_debug_symfile_add_method): Allow interncalls.
17972
17973 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17974
17975         * icall.c: throw parse exception if strtod fails or the string is empty.
17976
17977 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
17978
17979         * marshal.c: handle object type separately from defined
17980         class types.
17981
17982 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
17983
17984         * marshal.c: handle NATIVE_LPSTR for strings when it's
17985         explicitly specified.
17986
17987 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
17988
17989         * reflection.c, reflection.h, icall.c: setup the reflection
17990         handle cache for ModuleBuilders and AssemblyBuilders.
17991
17992 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
17993
17994         * reflection.c (reflection_methodbuilder_to_mono_method): set
17995         pinvoke flag
17996
17997 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17998
17999         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
18000
18001 2003-01-29  Dick Porter  <dick@ximian.com>
18002
18003         * threads.c: No need for the fake_thread kludge now that Thread
18004         doesn't run a class constructor
18005         
18006 2003-01-29  Dick Porter  <dick@ximian.com>
18007
18008         * threads.c: Use g_direct_hash instead of the rather bogus
18009         g_int_hash
18010
18011 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
18012
18013         * marshal.c (mono_marshal_get_native_wrapper): add check for null
18014         (fix pinvoke12.exe)
18015         (mono_marshal_get_struct_to_ptr): generate valid IL code
18016         (mono_marshal_get_ptr_to_struct): generate valid IL code
18017         (*): correctly set sig->pinvoke, we need to memdup the signature
18018         to do that
18019
18020 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18021
18022         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
18023         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
18024
18025 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18026
18027         * profiler.c: provide more callers information.
18028
18029 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
18030
18031         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
18032
18033         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
18034
18035         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
18036
18037 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18038
18039         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
18040         exception instead of going into an infinite loop on dates which it 
18041         can't yet handle.
18042
18043         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
18044         out-of-range exception if needed.
18045
18046         * class.c (mono_class_setup_vtable): allow a virtual method to provide
18047         an implementation for an interface method and to override an inherited
18048         method at the same time. 
18049         Imagine a scenario when a virtual method is used to override a
18050         virtual abstract method in a parent class, and this same method 
18051         provides an implementation for an method inherited from an interface. 
18052         In this case, the interface resolution code will set im->slot, which 
18053         means that the virtual method override pass will skip this method 
18054         which means a pointer to the abstract method inherited from the parent
18055         will remain in the vtable of this non-abstract class.
18056
18057         * class.c: (mono_class_setup_vtable): continue search for a real 
18058         method if only an abstract method is found.     
18059
18060 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18061
18062         * reflection.c: add size to encoding for ByValStr and ByValArray
18063         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
18064
18065 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18066
18067         * class.c (mono_class_setup_vtable): pass the override info as an
18068         argument.
18069
18070         * class.c (mono_class_setup_vtable): set the slot of overriding methods
18071         correctly.
18072         
18073         * reflection.c (ensure_runtime_vtable); add support for method 
18074         overrides.
18075         
18076 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18077
18078         * reflection.c (resolution_scope_from_image): Hack to work to work with
18079         dynamic assemblies.
18080
18081         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
18082         added a 'force_ref' argument to force this function to allways return 
18083         a TypeRef. This is needed by mono_image_get_memberref_token ().
18084         
18085 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18086
18087         * reflection.c (mono_image_get_type_info): interfaces really don't have
18088         a parent.
18089
18090         * reflection.c (mono_image_basic_init): fill out missing fields of
18091         image structure.
18092
18093         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
18094         dynamic assemblies. This is required so dynamic assemblies show up in
18095         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
18096         Type::GetType() etc. This is consistent with MS behaviour.
18097
18098         * image.c image.h reflection.c: add newly created classes to the name 
18099         cache so mono_class_get () will find them.      
18100
18101 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18102
18103         First part of changes to get IKVM.NET running under mono.
18104         
18105         * appdomain.h, appdomain.c: added new function 
18106         mono_domain_try_type_resolve() which will emit TypeResolve events. 
18107         This function will call AppDomain::DoTypeResolve to do the actual work.
18108
18109         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
18110         moved existing code dealing with dynamic tokens to a new function 
18111         called mono_reflection_lookup_dynamic_token (). This function will 
18112         raise TypeResolve events when appropriate. Since reflection.c is not 
18113         part of libmetadata, a new hook function called 
18114         mono_lookup_dynamic_token() is added to class.c which will call this.
18115
18116         * assembly.h assembly.c: make the invoke_load_hook function public,
18117         so it can be called for dynamic assemblies.
18118
18119         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
18120
18121         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
18122         type isn't found.
18123
18124         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
18125         MonoGHashTable, since it contains pointers to objects which the GC 
18126         needs to track.
18127
18128         * assembly.c (search_loaded): remove unused variable.
18129         
18130 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
18131
18132         * object.c: fixed issue exposed by gcc-generated IL programs
18133         that use RVA data for pointers.
18134
18135 2003-01-25  Martin Baulig  <martin@ximian.com>
18136
18137         * threads.c (start_wrapper): Moved the initialization of
18138         `start_func' above the mono_new_thread_init() call to which we
18139         pass it as argument.
18140
18141 2003-01-24  Martin Baulig  <martin@ximian.com>
18142
18143         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
18144         the MonoThread pointer.
18145
18146 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
18147
18148         * icall.c: Rename `PowImpl' to Pow.
18149
18150 2003-01-23  Dick Porter  <dick@ximian.com>
18151
18152         * threads.c (start_wrapper): Create a Thread object if needed, so
18153         the Main() thread can do the class initialisation in a subthread
18154         that has been set up to allow managed code execution.
18155
18156         Pass the thread ID instead of the MonoThread pointer to the thread
18157         start and attach callbacks.  This change is required, because the
18158         jit thread start callback must be called _before_ the Thread
18159         object can be created.
18160         
18161         (mono_thread_init): Removed much object creation code that is no
18162         longer needed.  No managed code is called from here now.
18163
18164         * object.c (mono_runtime_exec_managed_code): Create a subthread
18165         for Main, and call back to the runtime to use it.
18166         Set the exit code when Main exits.
18167
18168         * gc.c: Make sure domain finalisation happens in a subthread.
18169         Re-enable threaded GC, fixing bug 31333 (again).
18170
18171         * environment.c: System.Environment internall calls (so far just
18172         ExitCode is here, the others are still in icall.c)
18173
18174         * appdomain.c (mono_runtime_cleanup): All threads running managed
18175         code should have finished before mono_runtime_cleanup() is
18176         reached, so no need to clean up threads.
18177
18178 2003-01-22  Martin Baulig  <martin@ximian.com>
18179
18180         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
18181         `gpointer func' arguments.      
18182         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
18183         but added `MonoThread *thread' argument.
18184         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
18185
18186         * threads.c (mono_new_thread_init): Added `gpointer func' argument
18187         and pass it to the mono_thread_start_cb callback.
18188         (mono_install_thread_callbacks): New public function to install a
18189         set of callbacks which are set by the debugger.
18190         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
18191
18192 2003-01-22  Martin Baulig  <martin@ximian.com>
18193
18194         * Makefile.am: Install debug-mono-symfile.h.
18195
18196 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
18197
18198         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
18199
18200 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
18201
18202         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
18203         * class.c (mono_ptr_class_get): correctly set access levels of pointers
18204         (mono_array_class_get): correctly set access levels of arrays
18205
18206 2003-01-20      Patrik Torstensson
18207         * image.h (MonoAssemblyName): changed major, minor, build, revision
18208         from signed to unsigned.
18209
18210 2003-01-20  sean kasun <skasun@azstarnet.com>
18211
18212         * reflection.c (load_cattr_value): Now this handles
18213         MONO_TYPE_SZARRAY.  Fixes bug #35629
18214
18215 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
18216
18217         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
18218         integer value
18219
18220 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18221
18222         * decimal.c: fixed bug #26056.
18223
18224 2003-01-17  Martin Baulig  <martin@ximian.com>
18225
18226         * gc.c: Raise an ExecutionEngineException instead of using g_error().
18227
18228 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18229
18230         * exception.[ch]:
18231         (mono_get_exception_type_initialization): new function.
18232
18233         * object.c: throw a TypeInitializationException when an exception is
18234         thrown invoking the class constructor.
18235
18236 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18237
18238         * reflection.c: fixed attribute reading.
18239
18240 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18241
18242         * icall.c:
18243         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
18244         provided, look for the type in the calling assembly and then in
18245         mscorlib; if the assembly name is provided, only try that one.
18246
18247 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
18248
18249         * object.c: register the vtable before there is a chance it's
18250         queried again recursively.
18251
18252 2003-01-13  Duncan Mak  <duncan@ximian.com>
18253
18254         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
18255         gc-internal.h. 
18256         
18257 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
18258
18259         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
18260
18261 2003-01-11  Martin Baulig  <martin@ximian.com>
18262
18263         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
18264         this to 20 for the release.
18265
18266 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
18267
18268         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
18269
18270         * loader.c (mono_method_get_marshal_info): bug fix
18271
18272         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
18273         structures with explicit layout
18274
18275 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18276
18277         * profiler.c: made the output more readable (and sorted). 
18278         Added caller information for the allocation profiler.
18279
18280 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
18281
18282         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
18283
18284 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18285
18286         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
18287         to get value types.
18288         
18289 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
18290
18291         * object.c, profiler.h, profiler.c, profiler-private.h:
18292         Added object allocation profiler.
18293
18294 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
18295
18296         * reflection.h, reflection.c: handle global methods.
18297         Compress blob entries.
18298
18299 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
18300
18301         * marshal.c: fix compilation.
18302
18303 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
18304
18305         * loader.c (mono_method_get_marshal_info): impl.
18306
18307         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
18308
18309 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18310
18311         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
18312         for reference types.
18313
18314 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
18315
18316         * loader.c: fixed off by one error in loaded parameter names.
18317
18318 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
18319
18320         * marshal.c (mono_marshal_get_icall_wrapper): like
18321         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
18322         instead of a MonoMethod.
18323
18324 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18325
18326         * decimal.c: fixed bug #36537.
18327
18328 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18329
18330         * marshal.c: throw a missing method exception if a
18331         P/Invoke method is not found.
18332
18333 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18334
18335         * icall.c: allow a null this for constructors.
18336
18337 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18338
18339         * icall.c: raise the proper exceptions if the arguments to the
18340         internal Invoke are incorrect.
18341
18342 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18343
18344         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18345
18346 2003-01-03  Martin Baulig  <martin@ximian.com>
18347
18348         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18349
18350 2002-12-31  Martin Baulig  <martin@ximian.com>
18351
18352         * debug-mono-symfile.c: Completely rewrote the type section.
18353         Instead of using individual malloc()ed fields, we use one big
18354         continuous memory area and offsets into this area.
18355         See the comments in the source code for details.
18356
18357 2002-12-30  Martin Baulig  <martin@ximian.com>
18358
18359         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18360
18361 2002-12-30  Martin Baulig  <martin@ximian.com>
18362
18363         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18364         line number table in this data blob instead of using an external
18365         pointer.
18366
18367 2002-12-28  Martin Baulig  <martin@ximian.com>
18368
18369         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18370
18371 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18372
18373         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18374         as a boxed return type.
18375
18376 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18377
18378         * appdomain.c
18379         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18380         g_build_filename to properly get separators on the filename created.
18381
18382         * object.h: Small change, introduce MonoMarshalByRefObject to
18383         track the layout of that structure in the C# universe as we make
18384         changes there.
18385
18386 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18387
18388         * object.c: removed assert to allow static fields on interfaces.
18389         * loader.c: a TypeSpec may be used for any type, not just arrays.
18390
18391 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18392
18393         * class.c, class.h: added mono_class_array_element_size ().
18394         Ignore static methods in interfaces.
18395
18396 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18397
18398         * threads.c: fixed the build under cygwin.
18399
18400 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18401
18402         * reflection.c: handle nullref constants. Allocate keys for
18403         reflection handles with the GC.
18404
18405 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18406
18407         * threads.c, threads.h: added mono_thread_get_abort_signal()
18408         to get a suitable signal for thread abort.
18409
18410 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18411
18412         * metadata.c: fix handling of ExportedType table.
18413
18414 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18415
18416         * icall.c: added WriteWindowsDebugString internal call.
18417
18418 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18419
18420         * reflection.h: added fields to match C# implementation.
18421
18422 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18423
18424         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18425
18426 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18427
18428         * gc.h, gc-internal.h: Rename header for GC internal calls to
18429         gc-internal.h from gc.h as to not clash with Boehm GC having its
18430         header installed as <gc.h> in outside include paths.
18431         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18432         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18433
18434 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18435
18436         * icall.c: assign minor, build and revision in FillName.
18437
18438 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18439
18440         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18441         Added support for running code generated by Reflection.Emit.
18442
18443 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18444
18445         * appdomain.c: check for NULL argument in LoadFrom.
18446
18447 2002-12-10  Dick Porter  <dick@ximian.com>
18448
18449         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18450
18451 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18452
18453         * appdomain.c: fix buglet when building exe file name.  Handle full
18454         assembly name (needed after latest changes to AssemblyName).
18455         * image.c:
18456         (mono_image_close): free some hashtables.
18457
18458 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
18459
18460         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
18461         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
18462         on some systems (redhat 7.3) 
18463
18464 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
18465
18466         * threads.c: delete the critical section of a sync block,
18467         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18468
18469 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18470
18471         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18472
18473 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18474
18475         * appdomain.[ch]: handle the assembly preload event to try loading the
18476         assemblies using the paths we have in the current domain.
18477
18478         * assembly.[ch]: created an assembly preload hook that is called to try
18479         loading the assembly by other means that the ones provided here.
18480
18481         * domain.c: initialize the domain search path.
18482
18483         From now on, assemblies (TODO: except corlib and System) are loaded
18484         according to these rules when using mono_assembly_load ():
18485
18486                 1. It tries to load the assembly from the ApplicationBase
18487                 of the current domain appending .dll and .exe (TODO: have to
18488                 try loading from name/name.dll and name/name.exe).
18489
18490                 2. It tries the search path specified in PrivateBinPath for the
18491                 current domain (if any).
18492
18493                 3. Previous behavior.
18494
18495 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18496
18497         * icall.c: implemented GetInterfaceMap() related icall.
18498         * domain.c, loader.h: load MethodInfo in mono_defaults.
18499
18500 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18501
18502         * gc.c: disable the finalizer thread for now, untill all the issues
18503         with it are resolved.
18504
18505 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18506
18507         * string-icalls.c: handle embedded nulls in string ctor when the
18508         length is specified.
18509
18510 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18511
18512         * class.c: look for explicit interface implementation in parent
18513         classes, too.
18514
18515 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18516
18517         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18518
18519 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18520
18521         * gc.c: protect handles with a critical section.
18522
18523 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18524
18525         * icall.c:
18526         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18527         parameters. If no assembly specified, try getting the type from all
18528         the assemblies in the current domain, else, load the assembly and get
18529         the type from it.
18530
18531 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18532
18533         * marshal.c: applied patch from Aleksey Demakov that fixes
18534         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18535
18536 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18537
18538         * icall.c: fixed get_location.
18539
18540 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18541
18542         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18543         declarations to make it work with older gcc. 
18544
18545         * loader.c (mono_get_method): set signature->pinvoke for native calls
18546
18547 2002-11-20  Dick Porter  <dick@ximian.com>
18548
18549         * threads.c (mono_thread_init): Set the main thread's handle
18550
18551 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18552
18553         * gc.c: allow compilation without GC support. Changed to match the
18554         mono coding style.
18555
18556 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18557
18558         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18559
18560 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18561
18562         * reflection.c: set a public key token on the core assemblies.
18563
18564 2002-11-18  Dick Porter  <dick@ximian.com>
18565
18566         * threads.c: Split out some thread initialisation so that other
18567         files can set the start callback function.
18568
18569         * gc.c: Run finalisers in a separate thread, to avoid stack
18570         overflow.  Fixes bug 31333.
18571
18572         * appdomain.c: Set up GC finalisation thread.
18573
18574         * reflection.c: 
18575         * object.c: 
18576         * domain.c: Use gc.h macros for GC_malloc
18577         
18578 2002-11-15  Dick Porter  <dick@ximian.com>
18579
18580         * threadpool.c: 
18581         * threads.c:
18582         * appdomain.c: Removed mono_runtime_init_with_attach(),
18583         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
18584         merging the extra parameter with the existing function.  Removed
18585         unneeded code in mono_thread_attach().
18586
18587 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
18588
18589         * image.c (mono_image_loaded_by_guid): a method to get loaded
18590         images by guid. 
18591         (load_metadata_ptrs): we store the guid as string.
18592
18593 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
18594
18595         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
18596
18597         * metadata.c (mono_guid_to_string): imported method form Zoltan
18598         Varga (slightly modified)
18599
18600         * assembly.c (mono_assembly_open): load precompiled code
18601
18602         * loader.h (MonoMethod): we store the method token for use in the
18603         aot compiler. 
18604
18605 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18606
18607         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
18608         the hook function called when an assembly is loaded.
18609         
18610         * domain.c: Modified file.
18611         (mono_domain_assembly_load): removed hash table insertion of assemblies.
18612
18613         Fixes bug #33196.
18614
18615 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
18616
18617         * reflection.c: Map PEFileKind to the value expected by the WinNT
18618         image loader. 
18619
18620 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18621
18622         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
18623         Read until the buffer is filled completely.
18624
18625 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18626
18627         * icall.c: implemented MonoType.InternalGetEvent ().
18628
18629 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18630
18631         * appdomain.c: implemented InitAppDomainSetup. Delayed
18632         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
18633         the entry_assembly.
18634
18635         * assembly.c: base_dir is now an absolute path ending with
18636         G_DIR_SEPARATOR.
18637
18638         * icall.c: modified get_location according to the above changes.
18639
18640         * object.c: init AppDomain.SetupInformation for the default domain after
18641         we have the entry assembly.
18642
18643         * domain.c: when unloading a domain, setup = NULL.
18644
18645 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
18646
18647         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
18648
18649 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
18650
18651         * object.h, object.c: introduced mono_object_get_virtual_method ()
18652         to lookup the method invoked on an object when a callvirt is done on
18653         a method.
18654         * icall.c: make MethodInfo::Invoke() always do a virtual call.
18655
18656 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18657
18658         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
18659         current domain when loaded an assembly and failed to load it.
18660
18661         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
18662
18663 2002-10-31  Dick Porter  <dick@ximian.com>
18664
18665         * icall.c: 
18666         * file-io.h: 
18667         * file-io.c: Return the error status in a parameter, as the
18668         GetLastError() value has long since been blown away if we try and
18669         look it up in a subsequent internal call invocation.  Delete the
18670         GetLastError() internal call, because it's useless.
18671
18672 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
18673
18674         * class.[ch]: added cast_class to fix bug 29517
18675
18676 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
18677
18678         * marshal.c: create valid IL code in the filter clause:
18679         the new JIT is less forgiving:-)
18680
18681 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18682
18683         * icall.c: removed get_property internal call.
18684
18685 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
18686
18687         * appdomain.h domain.c: Added an ID to appdomains.
18688         
18689         * threads.c threads.h icall.c: Implement icall
18690         Thread:GetDomainID(), and remove unused icall 
18691         CurrentThreadDomain_internal.
18692
18693 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18694
18695         * icall.c: Don't recurse through the base types in GetConstructor.
18696         Fixes bug #32063. 
18697
18698 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18699
18700         * mempool.h, mempool.c: added mono_mempool_empty() and
18701         mono_mempool_stats().
18702
18703 2002-10-23  Dick Porter  <dick@ximian.com>
18704
18705         * file-io.c: 
18706         * file-io.h: 
18707         * icall.c: Added MonoIO.GetFileType internal call
18708
18709 2002-10-17  Dick Porter  <dick@ximian.com>
18710
18711         * appdomain.c (mono_runtime_cleanup): Don't signal the async
18712         delegate semaphore before waiting for all threads to finish,
18713         because new threads can also call async delegates.  Fixes bug
18714         32004.
18715
18716         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
18717         of 3 seconds, in case another async job is queued.  (This part is
18718         needed because the bug fix reintroduced the 3s exit lag.)  This
18719         makes the mono_runtime_shutdown flag superfluous.
18720
18721 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18722
18723         * reflection.c: include ehader size in method section headers.
18724         Really check for suplicated modules entries.
18725
18726 2002-10-17  Martin Baulig  <martin@gnome.org>
18727
18728         * debug-mono-symfile.c: Added back support for locals.
18729
18730 2002-10-14  Martin Baulig  <martin@gnome.org>
18731
18732         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
18733         MONO_TYPE_VOID.
18734
18735 2002-10-14  Martin Baulig  <martin@gnome.org>
18736
18737         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
18738         mono_class_get() instead of looking in the class cache. 
18739
18740 2002-10-13  Martin Baulig  <martin@gnome.org>
18741
18742         * debug-mono-symfile.c: Set version number to 28, include the
18743         signature in method names.
18744
18745 2002-10-13  Martin Baulig  <martin@gnome.org>
18746
18747         * debug-mono-symfile.h: Set version number to 27.
18748
18749 2002-10-11  Martin Baulig  <martin@gnome.org>
18750
18751         * gc.c: Don't register/unregister NULL pointers as disappearing links.
18752
18753 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18754
18755         * metadata.c, metadata.h: added helper function to allocate signatures.
18756
18757 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18758
18759         * icall.c: added internal call to get the location of machine.config.
18760
18761 2002-10-08  Martin Baulig  <martin@gnome.org>
18762
18763         * debug-mono-symfile.c: Ignore classes with a pending init for the
18764         moment.
18765
18766 2002-10-03  Dick Porter  <dick@ximian.com>
18767
18768         * threads.c: Freebsd pthread_t is a pointer
18769
18770 2002-10-03  Dick Porter  <dick@ximian.com>
18771
18772         * socket-io.c: Implemented GetHostName_internal
18773
18774 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18775
18776         * mono-config.c:
18777         (mono_config_parse_file): don't leak the text.
18778
18779 2002-10-02  Martin Baulig  <martin@gnome.org>
18780
18781         * debug-mono-symfile.c: Added support for methods.
18782
18783 2002-10-01  Martin Baulig  <martin@gnome.org>
18784
18785         * debug-mono-symfile.c: Don't emit methods and line numbers for
18786         the dynamic symbol file, just write the type table.  We can easily
18787         have an external helper program which creates a symbol file for an
18788         IL file.        
18789
18790 2002-10-01  Dick Porter  <dick@ximian.com>
18791
18792         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
18793         Only add the handle to the cleanup array when we're about to
18794         launch the thread.  Bug 31425 deadlocked when the test was run on
18795         mono under w32.
18796
18797 2002-10-01  Martin Baulig  <martin@gnome.org>
18798
18799         * debug-mono-symfile.c: Added support for properties.
18800
18801 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18802
18803         * reflection.c: unaligned store fix from Mark Crichton
18804         <crichton@gimp.org>.
18805
18806 2002-09-27  Martin Baulig  <martin@gnome.org>
18807
18808         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
18809         New interncall.
18810
18811 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18812
18813         * assembly.h, assembly.c: use a sane API to hook into the assembly
18814         loading process instead of a useless special-purpouse hack
18815         (ngen needs a hook, too, for example).
18816
18817 2002-09-27  Dick Porter  <dick@ximian.com>
18818
18819         * threads.c (mono_thread_init): Call GetCurrentProcess() so
18820         io-layer can set up some process handle info.  Not needed on w32,
18821         but doesn't hurt either.
18822
18823         * process.c: Pass the program name in the second parameter to
18824         CreateProcess, so the path is searched.  Include the working
18825         directory. Implemented process name, process enumeration, and some
18826         process detail internal calls.
18827         
18828         * icall.c: Added internal calls for process lookup, and some
18829         process details
18830
18831 2002-09-26  Martin Baulig  <martin@gnome.org>
18832
18833         * assembly.c (mono_install_open_assembly_hook): New global
18834         function to install a function to be invoked each time a new
18835         assembly is loaded.
18836         (mono_assembly_open): Run this callback function if set.
18837
18838         * debug-mono-symfile.c: Put back line numbers for the dynamic
18839         symbol file and also record the .il file as source file.  This
18840         allows us to install the temporary symbol file as `file.dbg' just
18841         like a compiler-generated one.
18842
18843 2002-09-26  Nick Zigarovich <nick@chemlab.org>
18844
18845         * Corrected typo in gc.c (BOHEM vs BOEHM).
18846
18847 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18848
18849         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
18850         GetProperties. Also avoid calling g_slist_length in GetProperties and
18851         GetMethods.
18852
18853 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18854
18855         * reflection.c: avoid unaligned stores (bug spotted by
18856         Mark Crichton  <crichton@gimp.org>).
18857
18858 2002-09-25  Martin Baulig  <martin@gnome.org>
18859
18860         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
18861         instead of guint64 for addresses and added prologue/epilogue info.
18862
18863 2002-09-25  Martin Baulig  <martin@gnome.org>
18864
18865         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
18866         store line number info.  For the dynamic symbol file, we only need
18867         to provide the JIT generated dynamic line number info for the dynamic
18868         symbol file.
18869
18870 2002-09-25  Martin Baulig  <martin@gnome.org>
18871
18872         * debug-mono-symfile.h: Incremented version number.
18873
18874 2002-09-24  Martin Baulig  <martin@gnome.org>
18875
18876         * class.c (mono_debugger_class_init_func): New global function
18877         pointer variable.
18878         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
18879         call it.
18880
18881         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
18882         function.  This is called via the mono_debugger_class_init_func
18883         hook to add all types to the dynamic type table.
18884         (ves_icall_MonoDebugger_GetType): New interncall to get a class
18885         from its metadata token.
18886
18887         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
18888         New interncall for the debugger.
18889
18890 2002-09-24  Nick Drochak <ndrochak@gol.com>
18891
18892         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
18893         before using it in case it is null.
18894         
18895 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18896
18897         * metadata.c: allow custom modifiers in local var signatures
18898         (bug spotted by Zoltan Varga).
18899
18900 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18901
18902         * class.c: deal with the <Module> class that may have a NULL vtable.
18903         Eliminate warnings.
18904
18905 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18906
18907         * image.c, image.h: more strong name helpers.
18908         * monosn.c: more work: convert pem keys to cryptoapi format.
18909
18910 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18911
18912         * string-icalls.c: speedup IndexOf.
18913
18914 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18915
18916         * icall.c: updates from Zoltan.2.Varga@nokia.com.
18917
18918 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18919
18920         * icall.c: cleanup: use mono_object_domain ().
18921
18922 2002-09-23  Martin Baulig  <martin@gnome.org>
18923
18924         * debug-mono-symfile.c: Improved type support.
18925
18926 2002-09-22  Martin Baulig  <martin@gnome.org>
18927
18928         * debug-mono-symfile.c: Added support for reference types and strings.
18929
18930 2002-09-22  Martin Baulig  <martin@gnome.org>
18931
18932         * debug-mono-symfile.c: Started to work on the type table.
18933
18934 2002-09-21  Martin Baulig  <martin@gnome.org>
18935
18936         * debug-mono-symfile.c: Largely reworked the symbol table format.
18937         The symbol table is now incrementally updated each time a new
18938         method is added.  We're now also using our own magic and version
18939         so that you don't need to recompile all your classes if the
18940         dynamic table changes.
18941         (mono_debug_update_mono_symbol_file): Removed.
18942         (mono_debug_symfile_add_method): New function to add a method.
18943
18944 2002-09-21  Martin Baulig  <martin@gnome.org>
18945
18946         * icall.c
18947         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
18948         New interncall.
18949
18950         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
18951         New interncall to get a method from its metadata token.
18952
18953 2002-09-21  Martin Baulig  <martin@gnome.org>
18954
18955         * debug-mono-symfile.c: Create type table.
18956
18957 2002-09-20  Martin Baulig  <martin@gnome.org>
18958
18959         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
18960
18961 2002-09-20  Martin Baulig  <martin@gnome.org>
18962
18963         * debug-mono-symfile.c: Provide information about params and locals.
18964
18965 2002-09-20  Martin Baulig  <martin@gnome.org>
18966
18967         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
18968         New interncall.
18969
18970         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
18971         interncall to get a method from its metadata token.
18972
18973 2002-09-20  Martin Baulig  <martin@gnome.org>
18974
18975         * debug-mono-symfile.c: Added a few checks for method->header
18976         being non-NULL.  This should never happen, but for the moment
18977         let's use a g_warning() rather than a g_assert().
18978
18979 2002-09-19  Mark Crichton  <crichton@gimp.org>
18980
18981         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
18982         even if support for it isn't present.  Added an #ifdef to fix this.
18983
18984         * socket-io.c: Added checks back for Solaris support.
18985
18986 2002-09-19  Martin Baulig  <martin@gnome.org>
18987
18988         * debug-mono-symfile.c (read_string, write_string): Reflect latest
18989         changes in the symbol file format.
18990
18991 2002-09-18  Martin Baulig  <martin@gnome.org>
18992
18993         * debug-mono-symfile.c: Set version number to 21.
18994
18995 2002-09-18  Dick Porter  <dick@ximian.com>
18996
18997         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
18998         on netbsd.  Fixes bug 30051.
18999
19000 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19001
19002         * reflection.c:
19003         (set_version_from_string): little fix.
19004
19005 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19006
19007         * monosn.c, Makefile.am: added strong name utility.
19008         * reflection.h, reflection.c: implemented delayed signing,
19009         locale, version and hash id assembly attributes.
19010
19011 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19012
19013         * loader.c, metadata.c: load param attributes in signatures.
19014
19015 2002-09-16  Martin Baulig  <martin@gnome.org>
19016
19017         * debug-mono-symfile.c: Added string table with all method names.
19018
19019 2002-09-14  Martin Baulig  <martin@gnome.org>
19020
19021         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
19022         fast method lookup.
19023
19024 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19025
19026         * reflection.c: record the public key token of referenced assemblies.
19027
19028 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19029
19030         * image.c, image.h: added functions to get the strong name and the
19031         public key of an assembly.
19032         * pedump.c: use them.
19033
19034 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
19035
19036         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
19037
19038 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
19039
19040         * marshal.c (mono_marshal_get_managed_wrapper): Added
19041         MONO_TYPE_BOOLEAN 
19042
19043 2002-09-11  Martin Baulig  <martin@gnome.org>
19044
19045         * gc.c: Call GC_unregister_disappearing_link() on all links when
19046         finalizing them, this is necessary to aviod a crash in boehm's
19047         finalize handler.
19048
19049 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19050
19051         * gc.c: handle GetTarget for finalized objects spotted and fixed by
19052         nick@chemlab.org.
19053
19054 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19055
19056         * icall.c: implemented MonoType::Module.
19057         * reflection.c, reflection.h: mono_module_get_object () from
19058         Tomi Pakarinen <tomi.pakarinen@welho.com>.
19059
19060 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19061
19062         * icall.c: ignore overridden methods in GetMethods ().
19063         Fix for FieldInfo::SetValue().
19064         * object.c: handle float/double in runtime invoke.
19065
19066 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19067
19068         * object.c: allow a constructor to be called again on an object.
19069
19070 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19071
19072         * class.h, class.c: move field layout code to it's own function and
19073         export it. Get an interface id earlier. Move fields in MonoClass
19074         so they are more cache friendly and align the bitfields.
19075         * loader.c: temporary handle get_param_names() for a runtime method.
19076         * reflection.c, reflection.h: more code to handle runtime creation of
19077         types.
19078
19079 2002-09-09  Martin Baulig  <martin@gnome.org>
19080
19081         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
19082         signature with the pinvoke field being set for the actual call.
19083
19084 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19085
19086         * icall.c: removed some unused icalls. Start of map of glib charsets
19087         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
19088
19089 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19090
19091         * debug-helpers.c: break infinite loop (found and fixed by
19092         Holger Arnold <harnold@gmx.de>).
19093
19094 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19095
19096         * icall.c: target may be null in create_delegate.
19097
19098 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19099
19100         * marshal.c: handle a boolean return type.
19101
19102 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19103
19104         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
19105
19106 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19107
19108         * gc.c: fix weakreferences.
19109
19110 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19111
19112         * icall.c: added icall to get default codepage.
19113
19114 2002-09-03  Dick Porter  <dick@ximian.com>
19115
19116         * threads.h: 
19117         * threads.c: Use MonoThread instead of MonoObject where
19118         apropriate.
19119
19120         Store running thread objects in a hash table, so that we have all
19121         the info to hand when waiting for them to finish
19122         (means we don't need OpenThread() any more, so mingw builds should
19123         be fully functional again.)
19124
19125         * verify.c:
19126         * object.h: Added thread ID to MonoThread
19127
19128 2002-09-03  Martin Baulig  <martin@gnome.org>
19129
19130         * icall.c (System.Reflection.Assembly::get_location): New interncall.
19131
19132 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19133
19134         * icall.c: fixed leak in get_temp_path. Thanks lupus.
19135
19136 2002-09-03  Martin Baulig  <martin@gnome.org>
19137
19138         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
19139         argument to store the end address of the disassembled instruction.
19140
19141         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
19142         here from debug-symfile.h.
19143         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
19144         JIT into this struct.
19145         (MonoSymbolFile): Added `char *image_file' field.
19146         (MonoDebugGetMethodFunc): Removed.
19147         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
19148         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
19149         (mono_debug_find_method): New method.
19150
19151         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
19152         create a full symbol file.
19153         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
19154         and static symbol files.
19155         (mono_debug_find_method): The symbol file keeps an internal method hash,
19156         call this to get a MonoDebugMethodInfo from a MonoMethod.
19157
19158         * debug-symfile.[ch]: Removed.
19159
19160 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
19161
19162         * image.c (do_mono_image_open): Remove linker version check.
19163
19164 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
19165
19166         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
19167         wrappers for instance methods.
19168         
19169 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19170
19171         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
19172
19173 2002-08-28  Dick Porter  <dick@ximian.com>
19174
19175         * Makefile.am: Export HOST_CC for w32 builds
19176
19177 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19178
19179         * file-io.c process.c: MonoString are null terminated, no
19180         need for mono_string_to_utf16() anymore.
19181
19182 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19183
19184         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
19185
19186 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
19187
19188         * icall.c, reflection.h: speedup System.MonoType.
19189
19190 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19191
19192         * reflection.c: allow null as the value of a string argument in
19193         custom attributes constructors.
19194
19195 2002-08-27  Martin Baulig  <martin@gnome.org>
19196
19197         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
19198         `trampoline_address' field.
19199
19200 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
19201
19202         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
19203         check (fixes bug #29486) 
19204
19205 2002-08-27  Martin Baulig  <martin@gnome.org>
19206
19207         * debug-mono-symfile.c: Changed the file format in a way that allows us
19208         open it read-only and to use a specially malloced area for all the
19209         dynamic data.  We can now also generate a symbol file on-the-fly if we're
19210         debugging IL code and there is no MCS generated symbol file for it.
19211
19212 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19213
19214         * object.c: added a define for a good string and array
19215         creation speedup (not enabled by default because we need to deal with
19216         the synch stuff).
19217
19218 2002-08-26  Martin Baulig  <martin@gnome.org>
19219
19220         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
19221         function to create a dynamic symbol file.  This is used by the
19222         debugger to create a symbol file for IL code on-the-fly.
19223
19224 2002-08-26  Martin Baulig  <martin@gnome.org>
19225
19226         * loader.c (mono_lookup_pinvoke_call): Include the error message
19227         from g_module_error() in the error message.
19228
19229 2002-08-24  Martin Baulig  <martin@gnome.org>
19230
19231         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
19232         function to update the symbol file.  The symbol file is mmap()ed
19233         writable, but private.  This allows us to install the symbol file
19234         together with the assembly.
19235
19236 2002-08-24  Martin Baulig  <martin@gnome.org>
19237
19238         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
19239         but they can read the new symbol file format which mcs is now creating.
19240
19241         * debug-symfile.c (mono_debug_find_source_location): Moved to
19242         debug-mono-symfile.c; this is now operating on the new symbol file.
19243
19244 2002-08-23  Martin Baulig  <martin@gnome.org>
19245
19246         * debug-helpers.c (mono_method_desc_from_method): New function to get
19247         a MonoMethodDesc from a MonoMethod.
19248
19249 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19250
19251         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
19252         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
19253
19254 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19255
19256         * string-icalls.[ch]: make helper methods static.
19257
19258 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19259
19260         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
19261         types to it and to SetValueInternal.
19262
19263         * object.c: Moved handle_enum label to its proper place. This was the
19264         f... bug! ;-)
19265
19266         This time i compiled mcs and gtk-sharp and they both work.
19267
19268 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19269
19270         * icall.c: reverted partially my previous patch until 
19271         object.c:set_value handles enums correcly.
19272
19273 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19274
19275         * icall.c:
19276         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
19277         (ves_icall_System_Environment_get_MachineName): removed warning when
19278         compiling under cygwin.
19279
19280 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19281
19282         * object.c: fixed field_get_value() for reference types.
19283
19284 2002-08-22  Dick Porter  <dick@ximian.com>
19285
19286         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
19287         Don't free a buffer while it's still needed.  Patch from Jonathan
19288         Liger <Jonathan.liger@wanadoo.fr>
19289
19290 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
19291
19292         * icall.c (ves_icall_System_Environment_get_Platform): Add new
19293         internal call.
19294
19295 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
19296
19297         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
19298         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
19299
19300         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
19301         we call unmanaged code which throws exceptions.
19302
19303 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19304
19305         * appdomain.h: added per-domain entry_assembly.
19306         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
19307         arguments.
19308         * icall.c: Assembly::GetEntryAssembly icall.
19309         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
19310         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
19311
19312 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19313
19314         * appdomain.h, gc.c: added mono_domain_finalize ().
19315
19316 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19317
19318         * object.c:
19319         (mono_print_unhandled_exception): changed g_warning by g_printerr
19320         because g_log has a 1024 characters limit (yeah, i got a big stack
19321         trace). Don't print exception name, that should be in ToString 
19322         returned string.
19323
19324 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19325
19326         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19327         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19328
19329 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19330
19331         * object.c:
19332         (mono_print_unhandled_exception): after previous commit, i realized
19333         that MS calls ToString on the exception. I changed this function to
19334         do that. This way we get stack_trace for free.
19335
19336 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19337
19338         * object.c:
19339         (mono_print_unhandled_exception): invoke Message property instead of
19340         getting 'message' field from Exception. Don't allocate memory for
19341         'trace' and 'message' if not needed.
19342
19343 2002-08-18  Dick Porter  <dick@ximian.com>
19344
19345         * unicode.c: Fix asserts to match Encoder.cs checks
19346
19347 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19348
19349         * marshal.c: fix unaligned store issue and a few wrong
19350         opcode argument types.
19351
19352 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19353
19354         * icall.c: added GetUninitializedObjectInternal internal call.
19355
19356 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19357
19358         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19359         to the right domain.
19360
19361 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19362
19363         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19364
19365         * class.c (class_compute_field_layout): set blittable to false for Strings
19366
19367         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19368
19369 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19370
19371         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19372         first chunk of code to create types at runtime. Code to
19373         handle ReflectedType/DeclaringType. Make reflection handles
19374         domain specific.
19375
19376 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19377
19378         * class.c: set correct name in arrays.
19379
19380 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19381
19382         * appdomain.c (mono_domain_transfer_object): make it work with
19383         valuetypes. bug fixes.
19384
19385 2002-08-12  Dick Porter  <dick@ximian.com>
19386
19387         * object.h: Rename some parameters to avoid c++ keywords (Patch
19388         from Joseph Wenninger <kde@jowenn.at>)
19389
19390 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19391
19392         * icall.c: added icall to implement Assembly.GetFile*.
19393
19394 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19395
19396         * reflection.h, reflection.c: code to embed managed resources.
19397
19398 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19399
19400         * class.c: move all the type size stuff into
19401         class_compute_field_layout().
19402
19403 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19404
19405         * class.c: ensure enums have always the correct instance size.
19406         * unicode.c: remove wrong assert.
19407
19408 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19409
19410         * assembly.c: fix mem corruption issue.
19411         * image.h, image.c: added mono_image_get_resource () to access
19412         managed resources.
19413         * icall.c: implemented Assembly.EntryPoint property and some
19414         Managed Resources related internalcalls.
19415
19416
19417 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19418
19419         * image.c, image.h: impemented mono_image_get_entry_point ().
19420         * appdomain.c: use mono_image_get_entry_point.
19421
19422 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19423
19424         * reflection.c: support the object type argument when loading
19425         custom attributes.
19426
19427 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19428
19429         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19430         String as return type.
19431
19432 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19433
19434         * reflection.c: fix encoding of named args for custom attrs to match
19435         the ms implementation. Read them back when instantiating custom
19436         attributes.
19437
19438 2002-08-02  Radek Doulik  <rodo@ximian.com>
19439
19440         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19441         by Dietmar as quick fix
19442         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19443         16 as stack size, used on more places as quick fix before Dietmar
19444         will fix it properly
19445
19446 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19447
19448         * object.h, object.c: added accessors for fields and properties.
19449
19450 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19451
19452         * class.c, class.h: made mono_class_get_field_from_name ()
19453         loop on parent types.
19454         Added mono_class_get_property_from_name ().
19455
19456 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19457
19458         * class.c, class.h: move the code to setup the type vtable in its own
19459         function so that it can be reused also for types created at runtime.
19460         Eliminate the "class" identifier from the header file.
19461         * reflection.c: setup the vtable for enums so that we can create
19462         objects for use in SetConstant ().
19463
19464 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
19465
19466         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
19467         instead of the delegate itself as this pointer (bug #28383)
19468
19469 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19470
19471         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19472         conversions.
19473
19474 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19475
19476         * loader.c: don't set the pinvoke bit on icalls.
19477
19478 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19479
19480         * debug-helpers.c (mono_method_full_name): only print a number to
19481         indicate wrapper type (so that the output is more readable in traces).
19482
19483 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19484
19485         * class.c (mono_class_init): include method override patch from Paolo
19486
19487 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19488
19489         * icall.c: fixed GetTypeCode().
19490
19491 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19492
19493         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19494         use real delegate invoke function to make it work with multicast
19495         delegates (fix bug# 28291).
19496
19497 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19498
19499         * object.c: load constant strings.
19500
19501 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19502
19503         * reflection.c: no magic numbers.
19504         * tabledefs.h: security action enum.
19505
19506 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19507
19508         * assembly.c: fix possible memory corruption.
19509
19510 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19511
19512         * reflection.h, reflection.c: added support for linking resources.
19513         * verify.c: check we have an updated corlib.
19514
19515 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19516
19517         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19518         string arrays.
19519         (mono_marshal_string_array): null terminate unmanaged string arrays.
19520         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19521
19522 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19523
19524         * icall.c: Type.GetType () can now return also types from the
19525         calling assembly.
19526
19527 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19528
19529         * loader.h, loader.c: stack walking support.
19530         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19531         GetCallingAssembly.
19532
19533 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19534
19535         * marshal.c: added optimisations for blittable types 
19536
19537         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19538         (mono_class_setup_mono_type): set blittable attribute for single
19539         and double.
19540
19541         * marshal.c (mono_string_utf8_to_builder): impl.
19542         (mono_string_builder_to_utf8): impl.
19543         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19544
19545 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19546
19547         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19548         (mono_marshal_get_managed_wrapper): impl. byref types
19549
19550 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19551
19552         * icall.c:
19553         (search_method): don't display debug message. 
19554
19555 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19556
19557         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19558
19559 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19560
19561         * appdomain.c: set the missing filename when throwing exception.
19562
19563 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19564
19565         * metadata.c (mono_type_size): code cleanup
19566         (mono_type_stack_size): removed some test code
19567
19568 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
19569
19570         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
19571         mono_get_exception_file_not_found now.
19572
19573         * exception.c (mono_exception_from_name_two_strings): New version
19574         that will call a constructor with two string arguments. 
19575         (mono_get_exception_file_not_found): New helper routine, used to
19576         report file-not-found errors.
19577
19578 2002-07-20  Dick Porter  <dick@ximian.com>
19579
19580         * process.h:
19581         * process.c: Pass file handles to CreateProcess
19582         
19583         * icall.c:
19584         * file-io.h:
19585         * file-io.c: Implemented CreatePipe
19586
19587 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19588
19589         * metadata.c (mono_get_param_info): set alignment for value types
19590
19591 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19592
19593         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
19594         Constify mono_domain_assembly_open().
19595         * loader.c: handle null namespace in icalls.
19596
19597 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19598
19599         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
19600         (emit_str_to_ptr_conv): marshal object as structs
19601
19602         * metadata.c (mono_type_to_unmanaged): marshal object as structs
19603
19604         * marshal.c (mono_marshal_get_runtime_invoke): support value types
19605
19606 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
19607
19608         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
19609         (mono_marshal_get_native_wrapper): we an now return value types
19610
19611 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19612
19613         * verify.c: more checks implemented.
19614
19615 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
19616
19617         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
19618         (fix bug #27695)
19619         (mono_marshal_get_native_wrapper): allow byref arguments
19620         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
19621         impl. PtrToStringXXX methods
19622         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
19623         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
19624         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
19625         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
19626         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
19627
19628 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19629
19630         * reflection.c: fix buglet in parsing an assembly name.
19631
19632 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19633
19634         * marshal.c (emit_ptr_to_str_conv): first impl.
19635
19636 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19637
19638         * object.c, class.h: cache the vtable in the class as suggested by
19639         vargaz@freemail.hu (Zoltan Varga).
19640
19641 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19642
19643         * class.h, loader.c: added mono_field_from_token().
19644         * verify.c: first cut of type checking code.
19645
19646 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19647
19648         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
19649
19650 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
19651
19652         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
19653         (fix bug #27782)
19654         (mono_marshal_get_remoting_invoke): impl.
19655         (mono_delegate_begin_invoke): impl.
19656         (mono_mb_emit_save_args): impl.
19657         (mono_delegate_end_invoke): impl.
19658         (mono_marshal_get_delegate_begin_invoke):
19659         (mono_marshal_get_delegate_end_invoke):
19660         (mono_marshal_get_delegate_invoke): generate a special name for
19661         those methods (including the signature) and associate them whith
19662         the delegate class. 
19663
19664 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
19665
19666         * reflection.[ch]: 
19667         (mono_reflection_type_from_name): now it has a MonoImage parameter
19668         which is used as the default image to search the type in. If the image
19669         is NULL or getting the type from it fails, it defaults to corlib.
19670
19671         * icall.c: changed 1 call to mono_reflection_type_from_name to match
19672         new parameter.
19673
19674 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19675
19676         * reflection.c: update the parameter table index.
19677
19678 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19679
19680         * domain.c: don't include the mark byte in the string hash.
19681
19682 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19683
19684         * icall.cs: icall for Type.GetTypeCode ().
19685         * verify: a couple of fixes and disabled local initialization checks.
19686
19687 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
19688
19689         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
19690
19691         * debug-helpers.c (mono_method_full_name): print the type of the
19692         runtime wrapper
19693
19694         * metadata.c (mono_signature_hash): a hash function for signatures
19695         (mono_signature_hash): better hash algorithm
19696
19697         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
19698
19699         * debug-helpers.c (mono_method_full_name): this can now generate
19700         method names with signatures
19701
19702         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
19703         method dont have this pointers.
19704
19705 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19706
19707         * reflection.c: fixup typebuilder tokens.
19708         * image.c: fix buglet.
19709         * marshal.h: remove whitespace.
19710         * metadata.h, metadata.c: reinstate code that was removed.
19711         * verify.c: handle catch directives and fix another couple of bugs.
19712
19713 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
19714
19715         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
19716         (mono_marshal_get_native_wrapper): make it comp. with the old code
19717         (mono_marshal_get_native_wrapper): support boolean
19718         (mono_marshal_get_managed_wrapper): support more types
19719
19720 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
19721
19722         * class.c (class_compute_field_layout): compute class->blittable attribute.
19723
19724 2002-07-09  Dick Porter  <dick@ximian.com>
19725
19726         * threads.c: Make the thread cleaning up cope with threads that
19727         call ExitThread()
19728
19729 2002-07-08  Radek Doulik  <rodo@ximian.com>
19730
19731         * reflection.c (method_encode_code): use non-translated values to
19732         compute finally_start, this fixes exception handling on ppc, yay!
19733
19734         * decimal.h (struct signscale): fix endianess
19735
19736 2002-07-07  Radek Doulik  <rodo@ximian.com>
19737
19738         * reflection.c: swap box_val and not val
19739
19740 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19741
19742         * reflection.c, reflection.h: handle full assembly info in type name.
19743         Handle Type arguments when loading custom attributes.
19744         * icall.c: updated to use new mono_reflection_type_from_name () method.
19745
19746 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19747
19748         * loader.c:
19749         (method_from_memberref): also print assembly name when method not found.
19750
19751 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19752
19753         * icall.c:
19754         (ves_icall_TypeGetProperties): fixed bug #27473. 
19755
19756 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19757
19758         * reflection.c: display image name and token when cannot find the
19759         .ctor for an attribute.
19760
19761 2002-07-05  Martin Baulig  <martin@gnome.org>
19762
19763         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19764
19765 2002-07-04  Dick Porter  <dick@ximian.com>
19766
19767         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
19768         compile on mingw.  This will cause mingw builds to not wait for
19769         subthreads to terminate after the main thread does.  I've lodged a
19770         bug with the mingw developers for them to wrap OpenThread().
19771
19772 2002-07-03  Dick Porter  <dick@ximian.com>
19773
19774         * threads.c: Store thread IDs instead of handles, because
19775         GetCurrentThread() returns a pseudohandle and therefore stores
19776         useless values.  mono_thread_cleanup() continues checking the
19777         array of threads until it is empty, to cope with subthreads
19778         spawning new threads after the main thread has finished.
19779
19780         * profiler.h:
19781         * profiler.c:
19782         * profiler-private.h: Pass the thread ID to thread profiler
19783         functions, instead of a handle
19784
19785 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19786
19787         * verify.c: fixes to make it more usable.
19788         * pedump.c: added --verify code to verify IL code in an assembly.
19789
19790 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19791
19792         * reflection.c: turn errors into warnings to allow compiling corlib.
19793
19794 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19795
19796         * reflection.c: add special cases to compile corlib.
19797
19798 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19799
19800         * reflection.c: handle properties with only a set method.
19801
19802 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19803
19804         * opcodes.h: add enum with opcodes in opval order.
19805
19806 2002-07-01  Dick Porter  <dick@ximian.com>
19807         
19808         * object.h:
19809         * object.c (mono_runtime_run_main): Removed unneeded argument
19810
19811 2002-06-28  Martin Baulig  <martin@gnome.org>
19812
19813         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19814
19815 2002-06-27  Dick Porter  <dick@ximian.com>
19816
19817         * threads.c: Store the handle in both the parent thread and in the
19818         subthread, to minimise the time between starting a new thread and
19819         storing its ID.
19820
19821 2002-06-26  Dick Porter  <dick@ximian.com>
19822
19823         * appdomain.c (mono_runtime_cleanup): Close the socket library
19824         after all the threads have finished, not before
19825
19826 2002-06-26  Martin Baulig  <martin@gnome.org>
19827
19828         * debug-symfile.c (mono_debug_find_source_location): Added
19829         `guint32 *line_number' argument.  If it's not NULL, store the line number
19830         there and return the file name without the line number.
19831
19832 2002-06-25  Dick Porter  <dick@ximian.com>
19833
19834         * icall.c:
19835         * process.h:
19836         * process.c: Process forking and other support functions
19837
19838 2002-06-25  Dick Porter  <dick@ximian.com>
19839
19840         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
19841         things dont happen when the image is closed.
19842         (mono_image_lookup_resource): Walk the resource section looking
19843         for a particular entry
19844
19845         * cil-coff.h: PE resource section decoding
19846
19847 2002-06-25  Dick Porter  <dick@ximian.com>
19848         
19849         * assembly.h:
19850         * assembly.c: 
19851         (mono_assembly_foreach): Accessor functions to walk the list of
19852         loaded assemblies
19853         (mono_assembly_set_main):
19854         (mono_assembly_get_main): Process methods need to know which
19855         assembly is the "main" one
19856
19857         * object.c (mono_runtime_run_main): Record the main assembly
19858
19859         * debug-helpers.c: Fix typo
19860
19861 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
19862
19863         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
19864         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
19865
19866 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19867
19868         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
19869
19870 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
19871
19872         * image.c (do_mono_image_open): Initialize reference count,
19873         otherwise we leak the MonoImage.
19874
19875 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19876
19877         * reflection.c: small tweak to handle self-hosting.
19878
19879 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19880
19881         * reflection.c: fix type name parse code.
19882
19883 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19884
19885         * reflection.c: break out of the loop.
19886         * image.c: special case corlib.
19887
19888 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19889
19890         * reflection.c: add all the custom attrs at the end to ensure the
19891         ctors have been properly initialized when the attributes are defined
19892         in the current assembly.
19893
19894 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19895
19896         * reflection.c: handle correctly multiple-nested types.
19897
19898 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19899
19900         * row-indexes.h: fix typos.
19901         * reflection.c: adjust for typos and fix method_def_or_ref
19902         encoding in MethodImpl table.
19903
19904 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19905
19906         * reflection.c: fix entry point patching (thanks Serge!).
19907
19908 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
19909
19910         * verify.c: add check for System.Exception
19911
19912 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19913
19914         * image.c, class.c: minifix for code just c&p'ed.
19915         * reflection.c: warning fix.
19916         * object.h, loader.h, domain.c: load also StringBuilder.
19917
19918 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19919
19920         * marshal.h, marshal.c: some support code to handle complex marshaling.
19921
19922 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19923
19924         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
19925         Better signatures with vtable error dump.
19926
19927 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
19928
19929         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
19930
19931 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
19932
19933         * icall.c (ves_icall_Type_GetField): impl.
19934
19935 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19936
19937         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
19938         to retrieve a marshal description blob for a field or param.
19939
19940 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19941
19942         * reflection.h, reflection.c: change order of nested type emission
19943         to avoid table corruption. The NestedTypes table is sorted.
19944         * icall.c: change order of GetConstructor results to workaround mcs bug.
19945
19946 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19947
19948         * reflection.h, reflection.c: handle field and param marshal
19949         information.
19950
19951 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19952
19953         * icall.c, marshal.c marshal.h: more Marshal class implementation.
19954
19955 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19956
19957         * reflection.c: fix call convention.
19958
19959 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19960
19961         * reflection.h, reflection.c: mono_image_get_memberref_token()
19962         takes a type instead of a class, now. Added
19963         mono_image_get_array_token() to create tokens for the special
19964         multi-dim array methods.
19965
19966 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19967
19968         * assembly.c: handle modules (no assembly table). Split
19969         loading references in its own function.
19970         * class.c: handle moduleref resolution scope.
19971         * image.c, image.h: cache module name in image.
19972
19973 2002-06-07  Martin Baulig  <martin@gnome.org>
19974
19975         * reflection.c (mono_image_get_type_info): Only add a class layout entry
19976         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
19977
19978 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19979
19980         * icall.c: more signature fixes that used uint instead of int.
19981
19982 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19983
19984         * reflection.c: fixed signature of field refs.
19985
19986 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19987
19988         * class.c, reflection.c: handle typerefs of nested types
19989         (both on read and when writing files).
19990
19991 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19992
19993         * icall.c: fix method signatures that tried to workaround the previous
19994         typo, d'oh!
19995
19996 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19997
19998         * debug-helpers.c: fix typo.
19999
20000 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20001
20002         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
20003         rewrote the PE/COFF writing code (our programs are understood by the
20004         ms runtime, now).
20005
20006 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20007
20008         * gc.c, gc.h, icall.c: weakreference support.
20009
20010 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20011
20012         * Makefile.am, mono-config.c: use $(sysconfdir).
20013
20014 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20015
20016         * icall.c: changed default precision of Double.ToString() to 15.
20017         Fixed memory leak. Unified with Single.ToString.
20018
20019 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20020
20021         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
20022
20023 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20024
20025         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
20026         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
20027         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
20028         and myself.
20029
20030 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20031
20032         * debug-symfile.c, sysmath.c: yet more compilation fixes.
20033
20034 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20035
20036         * reflection.c, socket-io.c: more compilation fixes.
20037
20038 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20039
20040         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
20041         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
20042         unicode.c: warning and compiler compatibility fixes.
20043
20044 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20045
20046         * class.h, metadata.c: fixed warnings/compilation errors.
20047
20048 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20049
20050         * Makefile.am, mono-config.c, mono-config.h: configuration file
20051         support routines.
20052         * loader.c, loader.h: make Dll mapping configurable at runtime in the
20053         config file. Export methods to insert and lookup mappings.
20054
20055 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20056
20057         * reflection.c: handle types and boxed objects in custom attr
20058         constructors.
20059
20060 2002-05-30  Martin Baulig  <martin@gnome.org>
20061
20062         * debug-symfile.c
20063         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
20064
20065 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
20066
20067         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
20068         to lookup the implmap row for a P/Invoke method.
20069         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
20070         P/Invoke method from the runtime on an as needed basis.
20071
20072 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
20073
20074         * metadata.c (mono_metadata_parse_signature): impl.
20075
20076 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20077
20078         * class.c: handle .pack directive.
20079
20080 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20081
20082         * object.c: initialize static fields with RVA data.
20083
20084 2002-05-25  Martin Baulig  <martin@gnome.org>
20085
20086         * debug-symfile.c
20087         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
20088
20089 2002-05-24  Martin Baulig  <martin@gnome.org>
20090
20091         * debug-symfile.c
20092         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
20093         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
20094         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
20095
20096 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20097
20098         * object.c: special case string ctros in invoke.
20099         * gc.c: silly whitespace changes.
20100
20101 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
20102
20103         * threadpool.[ch]: impl. a threadpool that can
20104         be used by mint and mono.
20105
20106 2002-05-22  Martin Baulig  <martin@gnome.org>
20107
20108         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
20109         The first argument is now a `MonoReflectionModuleBuilder *', the return
20110         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
20111         `methods' field to get the method builder.  The `token' argument is the
20112         unfixed token.
20113
20114         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
20115         invalid characters instead of g_assert_not_reached()ing.  This seems
20116         to be the behaviour of mscorlib.
20117
20118 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
20119
20120         * object.c (mono_runtime_invoke_array): applied patch from Rachel
20121         Hestilow to fix bug #25104
20122
20123 2002-05-21  Martin Baulig  <martin@gnome.org>
20124
20125         * debug-symfile.c (mono_debug_find_source_location): New function.
20126         Looks up an IL offset in the line number table and returns the source
20127         location as a string.
20128
20129 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20130
20131         * icall.c:
20132         (mono_double_ToStringImpl): changed %f by %g until we have something
20133         better.
20134
20135 2002-05-21  Nick Drochak  <ndrochak@gol.com>
20136
20137         * icall.c : Use different name for Math.Pow's icall.  Needed to check
20138         parameters first in C#.
20139
20140 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20141
20142         * icall.c, reflection.h: added icall to get info about an event.
20143
20144 2002-05-20  Radek Doulik  <rodo@ximian.com>
20145
20146         * object.c (mono_value_box): don't use memcpy for boxing on BIG
20147         endian
20148         (mono_value_box): don't use memcpy for small sizes on
20149         architectures with unaligned access
20150
20151 2002-05-20  Martin Baulig  <martin@gnome.org>
20152
20153         * reflection.c (mono_reflection_setup_internal_class): Don't crash
20154         if `tb->parent == NULL'.
20155         (mono_reflection_create_internal_class): New function.  This is
20156         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
20157         for enum types.
20158
20159         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
20160         New interncall.
20161
20162 2002-05-19  Martin Baulig  <martin@gnome.org>
20163
20164         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
20165         argument to get the length, don't default to the array length.
20166
20167 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
20168
20169         * assembly.c (mono_assembly_setrootdir): New function used to
20170         override the MONO_ASSEMBLIES directory.
20171
20172 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20173
20174         * icall.c: ValueType_GetHashCode() initialize local var.
20175
20176 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20177
20178         * reflection.c: sort custom attributes table.
20179
20180 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20181
20182         * reflection.c: support named args in custom attributes (write support).
20183
20184 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20185
20186         * reflection.c: fix finally position calculation.
20187
20188 2002-05-15  Radek Doulik  <rodo@ximian.com>
20189
20190         * reflection.c: fixed endianess at many places
20191
20192         * icall.c (ves_icall_InitializeArray): comment out debug msg
20193
20194 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
20195
20196         * object.c (mono_unhandled_exception): new function to handle
20197         unhandled exceptions.
20198         (mono_unhandled_exception): call the UnhandledException event.
20199         (mono_runtime_delegate_invoke): impl.
20200
20201 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
20202
20203         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
20204         returns the RVA, not the direct pointer to the data. Handle the case
20205         when the class size is fixed.
20206
20207 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20208
20209         * reflection.c: fix some endianess issues.
20210
20211 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
20212
20213         * object.c (mono_runtime_invoke): is now able to catch exceptions.
20214
20215         * threads.c (mono_thread_init): added a callback which is invoked
20216         at thread start.
20217
20218 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20219         
20220         * icall.c: make GetHashCode return non-negative values.
20221
20222 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20223
20224         * object.c, icall.c, gc.c: revert to address-based hashcode.
20225
20226 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
20227
20228         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
20229
20230 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20231
20232         * icall.c, class.c: special case <Module>.
20233
20234 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
20235
20236         * icall.c: fix bug in GetNow().
20237
20238 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
20239
20240         * object.c (mono_runtime_class_init): make sure that we call all
20241         static class constructors.
20242
20243 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20244
20245         * reflection.c: sort methodsemantics table.
20246
20247 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20248
20249         * reflection.h, reflection.c: honour init locals setting.
20250
20251 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
20252
20253         * icall.c: copied Double ToStringImpl for Single ToStringImpl
20254
20255 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20256
20257         * reflection.c: support ContructorBuilders in attribute blob creation.
20258
20259 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20260
20261         * reflection.c: some changes to build a binary that can be run
20262         directly in windows.
20263
20264 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20265
20266         * loader.c: print a big message when an icall can't be found.
20267
20268 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20269
20270         * string-icalls.c: fix bug 24248.
20271
20272 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20273
20274         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
20275         icall.c, reflection.h: separate assembly loading by pathname and by
20276         assembly name. Use the MONO_PATH env var to search for assemblies.
20277
20278 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20279
20280         * assembly.c, image.h: add some support for assemblies
20281         with multiple modules.
20282         * class.c, class.h: export mono_class_from_typeref().
20283         * loader.c: remove duplicated code and use mono_class_from_typeref(),
20284         instead.
20285
20286 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20287
20288         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
20289         documentation says (the ECMA one is correct).
20290
20291 2002-05-02  Dick Porter  <dick@ximian.com>
20292
20293         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
20294         Don't name the synchronisation mutex.
20295
20296 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
20297
20298         * rand.c
20299         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
20300         Make the prototypes match.
20301         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
20302         Same.
20303
20304         * icall.c
20305         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
20306         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
20307         all systems have tm.tm_zone, so use strftime() with %Z to print
20308         the timezone abreviation into a temp string.
20309
20310         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
20311         rather than mono_array_addr() on a MonoString on Big Endian
20312         machines.
20313
20314 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
20315
20316         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
20317         fix bug 24041
20318
20319 2002-04-30  Dick Porter  <dick@ximian.com>
20320
20321         * socket-io.c: Cope with SOCKET being an integer rather than a
20322         pointer now.
20323
20324         * threads.c: Added Thread_free_internal, to deal with thread
20325         handle cleanup.  Moved calls to handle_store() and handle_remove()
20326         to start_wrapper(), so each can only be called once.  Allocate
20327         synchronisation blocks with GC_malloc(), and use GC finalisation
20328         to close the handles.
20329
20330         * icall.c: added System.Threading.Thread::Thread_free_internal
20331
20332 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20333
20334         * icall.c: support Environment.Exit, CommandLineArgs().
20335
20336 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20337
20338         * object.c, object.h: added mono_runtime_run_main () and
20339         mono_runtime_get_main_args () for use in System.Environment.
20340
20341 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20342
20343         * gc.c: fix thinko, enable actual finalization since the jit is now
20344         fixed.
20345
20346 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20347
20348         * gc.c, object.c: take into account that an object may be offset wrt the address
20349         returned by GC_malloc().
20350
20351 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20352
20353         * image.c: handle files without entries in the assembly table (modules).
20354
20355 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20356
20357         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20358         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20359         allowed to be null when it's System.Object class setup.
20360
20361 2002-04-27  Martin Baulig  <martin@gnome.org>
20362
20363         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20364         if `tb->parent == NULL' rather than crashing.
20365
20366 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20367
20368         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20369         calling acos() where asin() should have been called.
20370
20371 2002-04-26  Martin Baulig  <martin@gnome.org>
20372
20373         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20374         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20375         there's a subdirectory called `System', but we don't want to read that
20376         subdirectory as an assembly.
20377
20378 2002-04-25  Martin Baulig  <martin@gnome.org>
20379
20380         * debug-symfile.c: Reflect latest MonoString changes.
20381
20382 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20383
20384         * rand.c, rand.h: instance method icalls need to have an explicit
20385         this pointer as first argument in the C implementation.
20386
20387 2002-04-25  Nick Drochak <ndrochak@gol.com>
20388
20389         * icall.c: Fix typo in map for GetNonZeroBytes
20390
20391 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20392
20393         * string-icalls.c : String does now passes unit tests without any 
20394         errors, the following changes has been made:
20395         
20396         Implemented replace methods.
20397         Renaming of methods to (try) follow the standard.
20398         Fixed compare ordinal
20399         Made all memory allocated directly to function instead of via icall function.
20400         Small performance fix in is_in_array function
20401                         
20402  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20403
20404         c (mono_string_Internal_ctor_charp_int_int):
20405         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20406         sindex < 0, throw ArgumentOutOfRangeException instead of
20407         ArgumentNullException.
20408
20409         Added new check for length == 0, however
20410         I need to make it return String.Empty from the C code.
20411         
20412         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20413         that calculate the length for us here.
20414         
20415         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20416         mono_string_new_utf16 with mono_string_new, since value is utf8.
20417
20418 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20419
20420         * object.c: register the object for finalization if needed.
20421         Allocate one more char in the string for the terminating 0 char.
20422
20423 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20424
20425         * class.c, class.h, image.c: check if a type implemenst a destructor.
20426         Use the proper key for array class lookups.
20427         * icall.c: register the icalls in the System.GC class.
20428         * gc.c, gc.h: GC-related functions and icalls.
20429
20430 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20431
20432         * icall.c:
20433         * socket-io.c:
20434         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20435         changed a couple of free () by g_free ().
20436
20437         * decimal.c: one-liner in the comments for decimal2string ().
20438
20439 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20440
20441         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20442
20443 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20444
20445         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20446         * object.c (mono_runtime_invoke_array) : handle null in params
20447
20448 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20449
20450         * string-icalls.c: fixed bug in split (one off bug)
20451
20452 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20453
20454         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
20455         * icalls.c: added String::Equals as internal method
20456
20457 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20458
20459         * threads.c: fixed bug in the double interlocked functions
20460
20461 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
20462
20463         * threads.c: implemented all of the new interlocked icalls.
20464         * string-icalls.c: fix a bug in insert.
20465         * icalls.c: added the icalls for interlocked, removed old string functions.
20466         
20467 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20468
20469         * loader.c: fix off-by-one error when reading argument names.
20470
20471 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20472
20473         * profiler.c: win32 counter implementation (untested).
20474         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20475         (the latter needs testing and more complete impl. from win32 folks).
20476
20477 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20478
20479         * object.c: mono_array_new_full workaround mono_array_class_get
20480         problem.
20481
20482 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20483
20484         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20485         * object.h (mono_string_chars): Changed casting type.
20486
20487 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20488
20489         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20490                            method signatures to use gunichar2 instead of gint16.
20491
20492 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20493
20494         * object.h, object.c: domain-specific versions of mono_object_new and
20495         mono_array_new.
20496
20497 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20498
20499         * object.c: changed String layout
20500
20501         * string-icalls.c (mono_string_Internal_ctor_chara): added
20502         internal string constructors.
20503
20504 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20505
20506         * threads.c: pass 'this' to the thread start routine.
20507
20508 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20509
20510         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20511         InternalCompareStr don't call twice mono_string_cmp_char for the last
20512         character. Improved performance in mono_string_cmp_char.
20513
20514 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20515
20516         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20517         code into its own library: libmonoruntime.
20518
20519 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20520
20521         * object.h, object.c: changed array format so that szarrays do not
20522         require a bounds structure.
20523         * icall.c, appdomain.c: support for new szarray format.
20524
20525 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20526
20527         * metadata.c: compare also the retuns type when comparing signatures:
20528         we didn't do this as an optimization since really overloaded methods
20529         must differ also in the arguments, but this doesn't work with
20530         low-level IL code (or when using explicit conversion operators: see
20531         bug#23498 for an example).
20532
20533 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20534
20535         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20536
20537 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20538
20539         * icall.c: make MonoType::GetElementType its own icall.
20540
20541 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20542
20543         * icall.c: remove MonoMethod_get_Name().
20544         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20545         object.
20546
20547 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20548
20549         * string-icalls.c: optimized a few methods.
20550
20551 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20552
20553         * icall.c: added all new string internal calls
20554         * string-icalls.c: added, new string internal call implementation.
20555         * object.c: added mono_string_new_size for allocating a string a size
20556
20557 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20558
20559         * object.c (mono_object_isinst): use the same code as in the
20560         optimized x86 version.
20561
20562 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20563
20564         * profiler.c: TSC-based timer code (faster and more accurate).
20565         Not hooked up in configure, yet (set USE_X86TSC to 1).
20566
20567 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
20568
20569         * profiler.c, profiler.h: track time spent compiling methods.
20570         * threads.c: track thread creation/destruction.
20571
20572 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
20573
20574         * profiler.c, profiler.h, profiler-private.h: profiling interface
20575         and sample implementation. Moved here so that it can be used also by
20576         the jit.
20577
20578 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
20579
20580         * reflection.c, reflection.h: keep types and other handles separate in
20581         the hash tables for referred tokens. Add guid for modules.
20582
20583 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20584
20585         * assembly.c: fix bugs found with valgrind.
20586         * metadata.h, metadata.c: added mono_metadata_guid_heap().
20587
20588 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
20589
20590         * threads: added icall support for getting current domain for
20591                    the thread.
20592  
20593 2002-04-13  Martin Baulig  <martin@gnome.org>
20594
20595         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
20596         (MonoDebugVarInfo): Added `index' field for register based addresses.
20597         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
20598         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
20599         `MonoDebugVarInfo *params' and `guint32 this_offset' with
20600         `MonoDebugVarInfo *this_var'.
20601
20602         * debug-symfile.c (relocate_variable): New static function to write
20603         a location description for a local variable or method parameter.
20604
20605 2002-04-12  Martin Baulig  <martin@gnome.org>
20606
20607         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
20608         stack offset and begin/end scope address of a local variable.
20609         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
20610         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
20611         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
20612
20613         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
20614         Added new relocation types for start/end scope of a local variable.
20615
20616 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20617
20618         * object.h: add mono_object_domain() macro.
20619         * reflection.c: handle typespecs.
20620         * icall.c: MonoMethod::get_Name() implementation.
20621
20622 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20623
20624         * icall.c: String::GetHashCode() icall implementation.
20625
20626 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20627
20628         * icall.c: String::IndexOfAny icall.
20629         * object.c, object.h: make array->max_length more useful.
20630         Intrduced mono_object_class() and mono_string_length() macros.
20631
20632 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20633
20634         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
20635         instead of g_unichar_isdigit.
20636
20637 2002-04-11  Nick Drochak  <ndrochak@gol.com>
20638
20639         * icall.c: Implement a simple Double.ToString().
20640
20641 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20642
20643         * appdomain.h: only io-layer.h is supposed to be included.
20644         * icall.c: explicitly import environ. Fix warning.
20645
20646 2002-04-10  Nick Drochak  <ndrochak@gol.com>
20647
20648         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
20649                 return true even if it's not Daylight Savings time.
20650                 Only return false for the case where the function isn't
20651                 implemented for a plaform (read Windows).
20652
20653 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20654
20655         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
20656         data with a mutex.
20657
20658 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
20659
20660         * mempool.c (mono_mempool_alloc): only use g_malloc when
20661         absolutely necessary.
20662
20663 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20664
20665         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
20666
20667         * class.c (mono_class_vtable): use domain mempool to allocate vtable
20668         (mono_class_proxy_vtable): use domain mempool
20669
20670 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20671
20672         * appdomain.h, appdomain.c: split initialization that requires the
20673         execution engine support into mono_runtime_init().
20674
20675 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20676
20677         * class.c (mono_class_init): don't include vtable inside MonoClass
20678         to save some memory, gather some statistics.
20679         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
20680
20681 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20682
20683         * icall.c: internalcall implementation for ValueType.Equals().
20684
20685 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
20686
20687         * object.c (mono_message_init): moved 
20688         (mono_runtime_exec_main): new arch. independent impl.
20689         (mono_runtime_invoke_array): new method - like
20690         mono_runtime_invoke, but you can pass an array of objects.
20691         (mono_remoting_invoke): new arch. independent impl.
20692         (mono_message_invoke): new arch. independent impl.
20693         (mono_runtime_class_init): new arch. independent impl.
20694         (mono_runtime_object_init): new arch. independent impl.
20695
20696 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20697
20698         * metadata.c, object.c, reflection.c: documented the exported
20699         functions.
20700
20701 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20702
20703         * icall.c: simpler code to pass the assembly builder data to corlib.
20704         Implement GetNestedTypes() internalcall.
20705
20706 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20707
20708         * class.c: warn if a type can't be loaded.
20709
20710 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
20711
20712         * image.h: typedef MonoImageOpenStatus
20713         * types.h: removed unused file
20714         
20715 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
20716
20717         * icall.c: Enum_ToObject accepts enum value arguments.
20718
20719 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20720
20721         * class.c: move initialization of properties, events and nested
20722         classes, so that they happen for interfaces, too.
20723
20724 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20725
20726         * icall.c: cleanup some ugly casts in Array_SetValue*.
20727
20728 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20729
20730         * icall.c: the values array fro enums is of the correct type, now.
20731         Implement (correctly) getFullName instead of assQualifiedName for
20732         MonoType.
20733         * reflection.h, reflection.c: added mono_type_get_name ().
20734
20735 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20736
20737         * assembly.c, image.h: for each MonoImage, record from wich assembly
20738         it was loaded.
20739         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
20740         Make Type.Assembly work.
20741
20742 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
20743
20744         * debug-symfile.h: use char* instead of gpointer to avoid
20745         unnecessary casts.
20746
20747         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
20748
20749         * icall.c (ves_icall_InternalExecute): impl. FielSetter
20750         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
20751
20752 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
20753
20754         * icall.c (mono_message_init): impl. (code cleanup)
20755         (ves_icall_InternalExecute): impl. FieldGetter
20756
20757         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
20758         defined we call all (non-static)methods through the vtable. 
20759
20760 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
20761
20762         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
20763         finalizer even though the memory is still referenced (and the chunk of
20764         memory is not freed).
20765
20766 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20767
20768         * assembly.c: fix brokeness.
20769
20770 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
20771
20772         * class.c: kill some warnings. Check explicit interface method
20773         implementation also without considering the namespace.
20774         Load also literal strings in static class data.
20775
20776 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
20777
20778         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
20779         (default_assembly_name_resolver): Make the resolver take the
20780         "base" directory where the assembly was originally defined, so we
20781         can load DLLs that are in the same directory as the assembly that
20782         is being referenced.
20783
20784 2002-03-28  Dick Porter  <dick@ximian.com>
20785
20786         * file-io.h: 
20787         * file-io.c:
20788         * socket-io.c: 
20789         * unicode.h: 
20790         * unicode.c: Warning cleanups
20791
20792 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
20793
20794         * object.h, reflection.h: use the correct type instead of MonoObject.
20795
20796 2002-03-28  Martin Baulig  <martin@gnome.org>
20797
20798         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
20799         (mono_debug_update_symbol_file): Initialize classes if necessary.
20800
20801 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
20802
20803         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
20804         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
20805
20806 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
20807
20808         * assembly.h: fix function prototype.
20809         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
20810         * mono-endian.h: use const cast.
20811
20812 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20813
20814         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
20815
20816 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
20817
20818         * loader.c: don't assert when a typeref can't be loaded, give
20819         a chance to the runtime to trow an exception instead.
20820         * loader.h: fix warning.
20821
20822 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20823
20824         * class.c (mono_class_proxy_vtable): added proxy support
20825
20826 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
20827
20828         * icall.c: removed last of PAL calls, added System.Environment
20829         * file-io.h, file-io.c: MonoIO implementation
20830         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
20831
20832 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
20833
20834         * appdomain.c: do not use the byte marker in ldstr table lookup.
20835         * debug-helpers.c: allow two ':' to separate class and method name.
20836         * object.c: allocate arrays bounds with the GC, too.
20837         * verify: add a few more checks.
20838
20839 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
20840
20841         * reflection.c: output also literal strings. Allocate parameter data
20842         with GC_malloc() (thanks, Martin, for catching this!).
20843
20844 2002-03-26  Martin Baulig  <martin@gnome.org>
20845
20846         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
20847         include the `this' offset in the `param_offsets'.
20848
20849 2002-03-25  Martin Baulig  <martin@gnome.org>
20850
20851         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
20852         mono_debug_get_class() function to get the classes. Added new
20853         relocation types for arrays and strings.
20854         (mono_debug_get_class): New static function to search in all
20855         referenced assemblies for a metadata token.
20856
20857         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
20858
20859 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20860
20861         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
20862         hold gc-allocated objects. Make the string heap a stream like the
20863         others. Removed duplicated code when writing stream info.
20864         Added asserts to catch possible buffer overflows. Set the sorted map
20865         for tables that need sorting. Added some documentation.
20866
20867 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
20868
20869         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
20870         for interned strings and vtables.
20871
20872 2002-03-24  Martin Baulig  <martin@gnome.org>
20873
20874         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
20875         it in the array since it was created with g_slist_prepend().
20876
20877 2002-03-24  Martin Baulig  <martin@gnome.org>
20878
20879         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
20880         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
20881         (mono_debug_method_from_token): Renamed to
20882         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
20883         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
20884
20885         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
20886         relocation types.
20887
20888         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
20889
20890 2002-03-24  Martin Baulig  <martin@gnome.org>
20891
20892         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
20893         (mono_debug_method_from_token): New func.
20894
20895         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
20896         New interncall, calls mono_debug_local_type_from_signature().
20897         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
20898         calls mono_debug_method_from_token().
20899
20900 2002-03-23  Martin Baulig  <martin@gnome.org>
20901
20902         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
20903         specifies the number of bytes to be converted, not the array size.
20904         Return the number of chars, not the number of bytes.
20905         (ves_icall_iconv_get_chars): The `byteCount' argument
20906         specifies the number of bytes to be converted, not the array size.
20907
20908 2002-03-23  Martin Baulig  <martin@gnome.org>
20909
20910         * reflection.h (MonoReflectionSigHelper): New type.
20911
20912         * reflection.c (mono_reflection_sighelper_get_signature_local),
20913         (mono_reflection_sighelper_get_signature_local): New functions.
20914
20915         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
20916         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
20917         interncalls.
20918
20919 2002-03-23  Martin Baulig  <martin@gnome.org>
20920
20921         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
20922         is_writeable is set.
20923         (mono_raw_buffer_update): New function to write the modified map
20924         back to disk.
20925
20926         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
20927
20928         * debug-symfile.c (mono_debug_update_symbol_file): Call
20929         mono_raw_buffer_update() when done writing.
20930
20931 2002-03-23  Martin Baulig  <martin@gnome.org>
20932
20933         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
20934
20935         * debug-symfile.c: Added support for arguments and local variables.
20936
20937 2002-03-23  Dick Porter  <dick@ximian.com>
20938
20939         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
20940         protected by ifdefs, hence breaking the w32 build.
20941
20942 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20943
20944         * object.c: implement is_interned() the right way.
20945
20946 2002-03-21  Martin Baulig  <martin@gnome.org>
20947
20948         * debug-symfile.[ch]: New files to handle debugging information
20949         files. There's also support to dynamically update these symbol
20950         files to include machine dependent information.
20951
20952 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
20953
20954         * threads.c (mono_thread_create): new function to create thread
20955         from C
20956
20957 2002-03-20  Martin Baulig  <martin@gnome.org>
20958
20959         * icall.c (ves_icall_InternalInvoke): Create a new object if the
20960         method is a constructor.
20961         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
20962         points to ves_icall_InternalInvoke().
20963
20964 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
20965
20966         * file-io.c: Flush shouldn't throw exceptions.
20967
20968 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
20969
20970         * file-io.c: FileStream flush support; FileSetLength now
20971         restores file pointer.
20972
20973 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
20974
20975         * class.c: set image for pointer classes.
20976
20977 2002/03/19  Nick Drochak <ndrochak@gol.com>
20978
20979         * sysmath.c: Forgot one.
20980
20981 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
20982
20983         * sysmath.c: Avoid redefining existing names.
20984
20985 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
20986
20987         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
20988         handled by runtime as icall rather than dllimport from libm.so
20989         * file-io.c, file-io.h: fixed handle argument type.
20990
20991 2002-03-18  Dick Porter  <dick@ximian.com>
20992
20993         * reflection.c (mono_image_get_type_info): rename interface to
20994         iface, because of "#define interface struct" on windows.
20995
20996 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
20997
20998         * class.c, class.h: rename and export mono_ptr_class_get().
20999         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
21000         * reflection.c, reflection.h, icall.c: better/saner type name
21001         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
21002         method signatures.
21003
21004 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
21005
21006         * class.c (mono_class_init): removed hardcoded GHC_SLOT
21007
21008         * icall.c (ves_icall_InternalInvoke): impl.
21009
21010 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21011
21012         * reflection.c: output the interface map table, too.
21013
21014 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21015
21016         * class.c (class_compute_field_layout): separate computation of 
21017         static field layout
21018
21019 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
21020
21021         * icall.c: added System.Buffer support.
21022         * file-io.c: moved file icalls from PAL to FileStream.
21023
21024 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21025
21026         * icall.c (ves_icall_System_Object_GetHashCode): impl.
21027
21028 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
21029
21030         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
21031
21032 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21033
21034         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
21035
21036 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21037
21038         * debug-helpers.{c,h}: moved here from monograph some useful functions
21039         to locate a method by name/signature in a class or image. Included
21040         also a small and flexible IL disassembler.
21041
21042 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21043
21044         * reflection.c: fixup tokens in methods with small header size, too.
21045
21046 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
21047
21048         * object.c (mono_string_to_utf8): remove assert(!error), instead
21049         print a warning. 
21050
21051 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
21052
21053         * icall.c: update to the new mono_Array_class_get interface.
21054
21055 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21056
21057         * appdomain.c, object.c: Boehm-GC enable.
21058         * icall.c: make get_data_chunk() support split data requests.
21059         Ensure a class is initialized in more cases. Return only the first
21060         property found in GetProperties() or the compiler gets confused. 
21061         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
21062         * reflection.h, reflection.c: add fixup mechanism for field and method
21063         tokens. Initialize assembly->typeref in a single place. Output
21064         properties after events. Support custom attributes for events, too.
21065         Typo fix for paramter custom attrs.
21066
21067 2002-03-07  Martin Baulig  <martin@gnome.org>
21068
21069         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
21070
21071 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
21072
21073         * class.c (mono_array_class_get): fix. for multi. dim. arrays
21074
21075 2002-03-06  Martin Baulig  <martin@gnome.org>
21076
21077         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
21078         non-zero lower bounds. See testcases #F10-#F13.
21079
21080 2002-03-05  Martin Baulig  <martin@gnome.org>
21081
21082         * exception.c (mono_get_exception_argument_out_of_range): New exception.
21083
21084         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
21085         ves_icall_System_Array_GetValue(), only calculate the absolute array position
21086         here.
21087         (ves_icall_System_Array_SetValue): Likewise.
21088         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
21089         as argument and does the actual work. This function is used when copying a
21090         multi-dimensional array.
21091         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
21092         now do all the widening conversions of value types.
21093         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
21094
21095 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21096
21097         * class.c: remove some magic numbers and use the smbolic names,
21098         instead. Added init_events() to load event info at class init time.
21099         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
21100         and mono_metadata_methods_from_event().
21101         * reflection.h, reflection.c: added support for writing out the evnets
21102         related information.
21103
21104 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21105
21106         * reflection.h, icall.c: use a different method (GetInterfaces)
21107         to gather interface info and add isbyref, isprimitive and
21108         ispointer to the ves_icall_get_type_info() return value.
21109
21110 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21111
21112         * class.h: stared adding support for events.
21113         * icall.c: split find_members implementation. Added debug icall to get
21114         the address of an object.
21115         * reflection.c: handle TypeBuilders in mono_type_get_object().
21116
21117 2002-03-01  Martin Baulig  <martin@gnome.org>
21118
21119         * icall.c (ves_icall_System_Array_GetLength): This must throw an
21120         ArgumentOutOfRangeException(), not an ArgumentException().
21121         (ves_icall_System_Array_GetLowerBound): Likewise.
21122         (ves_icall_System_Array_GetValue): Improved argument checking.
21123         (ves_icall_System_Array_SetValue): Improved argument checking.
21124
21125 2002-03-01  Martin Baulig  <martin@gnome.org>
21126
21127         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
21128         called with invalid arguments rather than just dying with g_assert().
21129         (ves_icall_System_Array_SetValue): Likewise.
21130         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
21131         raise a NotImplementedException instead.
21132         (ves_icall_System_Array_GetLength): Added argument checking.
21133         (ves_icall_System_Array_GetLowerBound): Added argument checking.
21134
21135 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
21136
21137         * object.h (mono_assert): new macros mono_assert and
21138         mono_assert_not_reached
21139
21140 2002-02-28  Martin Baulig  <martin@gnome.org>
21141
21142         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
21143         and "System::String::IsInterned" to "System::String::_IsInterned".
21144
21145 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
21146
21147         * icall.c: remove hacks for typebuilder. Added icall to create a
21148         modified type from a tybebuilder.
21149         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
21150         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
21151         to create a backing MonoClass for a TypeBuilder.
21152
21153 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21154
21155         * class.c, class.h: more refactoring of class init.
21156         Export mono_class_setup_mono_type() and mono_class_setup_parent().
21157
21158 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
21159
21160         * marshal.c, marshal.h: start of marshaling interface.
21161
21162 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21163
21164         * icall.c: fix order in assembly qualified name icall.
21165
21166 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21167
21168         * class.c: do not free str, since we store it in the hash table.
21169         * reflection.h: add label field to MonoILExceptionInfo.
21170         * reflection.c: handle references to more than one assembly. Handle
21171         case when there isn't a module created in the assembly.
21172
21173 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21174
21175         * class.c: Fix typo. Start refactoring of class init code.
21176
21177 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21178
21179         * appdomain.c: exit with 1 on error.
21180         * class.c: we already have the name in MonoClassField.
21181         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
21182         MonoStreamHeader instead of an offset of image->raw_metadata.
21183
21184 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
21185
21186         * appdomain.c (mono_init): Be even more descriptive about the error.
21187
21188 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
21189
21190         * appdomain.c: give the user an informative message when corlib can't
21191         be loaded.
21192
21193 2002-02-26  Martin Baulig  <martin@gnome.org>
21194
21195         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21196         New icall to get the time zone data.
21197
21198 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21199
21200         * reflection.c: set virtual and raw size of section correctly.
21201         * threads.c: transfer domain information to newly created threads.
21202
21203 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21204
21205         * class.c: when instancing a class in a domain, load the default
21206         vaules for static fields from the constant table. Fix System.Enum to
21207         not be an enum.
21208         * icall.c: implement Object::GetType() internalcall. Implemented
21209         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
21210         Fixed checking of binding flags in find_members().
21211         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
21212         * reflection.c: handle enumerations when writing to the constant
21213         table. Use a different object cache for types.
21214
21215
21216 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
21217
21218         * object.c (mono_object_isinst): fix for arrays
21219
21220         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
21221
21222 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21223
21224         * object.c: don't use mprotect ()  and fix intern pool hash table
21225         lookup for big endian systems.
21226
21227 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21228
21229         * icall.c: change type_is_subtype_of () signature.
21230
21231 2002-02-21  Mark Crichton  <crichton@gimp.org>
21232
21233         * rand.c, rand.h: Added random number generator for
21234         System.Security.Cryptography classes.
21235
21236         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
21237
21238         * icall.c: Added System.Security.Cryptography calls.
21239
21240 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21241
21242         * class.c, icall.c, metadata.c: better support for pointer types.
21243         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
21244         * reflection.c: Add support for getting custom attrs for properties
21245         and simplify some code.
21246
21247 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21248
21249         * icall.c: change getToken () and add custom attribute GetBlob()helper
21250         method.
21251         * reflection.h: add custom attrs array to the reflection builder structures.
21252         * reflection.c: encode and emit custom attributes for all the relevant
21253         reflection objects. Cache fieldref and methodref tokens. Change
21254         mono_image_create_token() interface to take a MonoDynamicAssembly.
21255         More complete custom attributes decoder. Load custom attributes for
21256         Assembly, Field, Method and Constructor objects, too. Make the
21257         returned array an Attribute[] one, not object[]. Added
21258         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
21259         custom attribute constructor.
21260
21261 2002-02-20  Dick Porter  <dick@ximian.com>
21262
21263         * icall.c:
21264         * rawbuffer.c:
21265         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
21266         problem code out for now).
21267
21268 2002-02-19  Radek Doulik  <rodo@ximian.com>
21269
21270         * object.c (mono_ldstr): use hash table to avoid multiple swapping
21271
21272 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
21273
21274         * icall.c: register the GetCustomAttributes method.
21275         * object.c, object.h: add mono_string_new_len ().
21276         * reflection.h, reflection.c: added mono_runtime_invoke(),
21277         mono_install_runtime_invoke(). Added
21278         mono_reflection_get_custom_attrs () to load custom attributes and
21279         create the attribute objects.
21280
21281 2002-02-19  Dick Porter  <dick@ximian.com>
21282         * threads-dummy-types.c:
21283         * threads-dummy-types.h:
21284         * threads-dummy.c:
21285         * threads-dummy.h:
21286         * threads-pthread-types.c:
21287         * threads-pthread-types.h:
21288         * threads-pthread.c:
21289         * threads-pthread.h:  Deleted obsolete files
21290
21291 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
21292
21293         * class.c (mono_class_vtable): runtime init the class when we
21294         allocate static class data.
21295
21296         * icall.c (ves_icall_System_Array_SetValue): check for null values.
21297
21298         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
21299         and String - but we will need generic marshalling support in the
21300         future. 
21301         (mono_init): set the domain name in a ms compatible way
21302
21303         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
21304         String[].
21305
21306 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
21307
21308         * object.c (mono_array_clone): use alloca() instead of g_malloc  
21309         for sizes
21310
21311         * appdomain.c (mono_domain_unload): impl.
21312
21313 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21314
21315         * appdomain.c, object.c: fix intern pool implementation.
21316         * class.c: fix alignment code.
21317
21318 2002-02-16  Radek Doulik  <rodo@ximian.com>
21319
21320         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
21321         and s2 > s1, just copy lower bytes to be compatible with little
21322         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
21323         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
21324
21325         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21326         force big_endian to be 1 for big endian machines 
21327         (ves_icall_iconv_new_decoder): ditto
21328
21329 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21330
21331         * socket-io.c (convert_sockopt_level_and_name): If the system
21332         doesn't define SOL_IP or SOL_TCP, get them by hand using
21333         getprotobyname() and caching the values (because this could be a
21334         slow operation).
21335         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21336         Use the appropriate struct when the system does support it. Ie,
21337         not all systems have struct ip_mreqn so use struct ip_mreq when
21338         appropriate.
21339
21340 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21341
21342         * reflection.c: handle finally clauses.
21343
21344 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21345
21346         * socket-io.c: use g_snprintf() instead of snprintf.
21347
21348 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21349
21350         * reflection.c (mono_param_get_objects): Cast second argument to
21351         mono_method_get_param_names to a const char** to silence the
21352         compiler warning.
21353
21354         * appdomain.c (mono_domain_assembly_open): Put parens around the
21355         truth statement in the for-loop.
21356
21357         * unicode.c (iconv_convert): Got rid of a compiler warning about
21358         int i being unused when the system has a new iconv.
21359         (iconv_get_length): Same.
21360
21361         * image.c (load_class_names): Cast the second argument to
21362         g_hash_table_insert() to char* to hush compiler warnings about the
21363         arg being a const.
21364         (mono_image_open): Same here.
21365
21366         * socket-io.c: Don't conditionally include sys/filio.h or
21367         sys/sockio.h here anymore since we now get them from
21368         io-layer/io-layer.h
21369         (inet_pton): If the system doesn't support inet_aton, implement
21370         using inet_addr and also #define INADDR_NONE if it isn't defined
21371         by the system.
21372
21373 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21374
21375         * metadata.c, metadata.h: added function to get packing and size info
21376         of a typedef.
21377         * reflection.h, reflection.c: handle field RVA data. Save info about
21378         the table layout if needed. Assign typedef indexes to all the types
21379         before dumping the info about them to avoid forward reference problems.
21380
21381 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21382
21383         * socket-io.c (convert_sockopt_level_and_name): ifdef
21384         SO_ACCEPTCONN because it is not defined on my system (old debian)
21385
21386 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21387
21388         * opcode.c: use stddef.h to get NULL.
21389
21390 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21391
21392         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21393         for FIONBIO, FIONREAD and SIOCATMARK.
21394         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21395         define INADDR_NONE and besides, inet_addr() is deprecated and
21396         should not be used. Use inet_pton() instead - it also has the
21397         added bonus that it can easily handle IPv6 addresses as well.
21398         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21399
21400 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21401
21402         * decimal.c: remove _MSC_VER conditional.
21403
21404 2002-02-13  Dick Porter  <dick@ximian.com>
21405
21406         * socket-io.c: 
21407         * icall.c: Internal calls for Blocking, Select, Shutdown,
21408         GetSocketOption and SetSocketOption
21409
21410 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21411
21412         * assembly.cs: better resolver: use it instead of some kludgy
21413         code.
21414
21415 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21416
21417         * reflection.c: the best way to speed-up the compiler is to avoid
21418         infinite loops.
21419
21420 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21421
21422         * class.c (mono_class_vtable): changed the object layout
21423         (obj->vtable->class). 
21424         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21425
21426 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21427
21428         * assembly.c: look for assemblies in the assembly dir, too.
21429
21430 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21431
21432         * class.c: fix thinko in mono_class_from_type().
21433
21434 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21435
21436         * exception.h, exception.c: added TypeLoadException.
21437         * object.h, object.c: added mono_array_clone ().
21438         * icall.c: handle throwOnError in AssemblyGetType().
21439         Added Array.Clone().
21440         * opcode.h, opcode.c: use a single value for the opcode val.
21441         Compile fix for non-gcc compilers.
21442
21443 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21444
21445         * opcodes.c, opcodes.h: export interesting info about opcodes.
21446
21447 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21448
21449         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21450         icalls. 
21451
21452         * class.c (class_compute_field_layout): set element_class for enums
21453         (mono_class_create_from_typedef): set element_class for normal classes
21454
21455         * icall.c (ves_icall_System_Enum_get_value): impl.
21456
21457         * class.c (mono_class_create_from_typedef): do not set valuetype
21458         flag for System.ValueType and System.Enum
21459
21460 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
21461
21462         * unicode.c (iconv_convert): fix big endian problem.
21463
21464 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21465
21466         * class.c: add asserts if we are ever going to scribble over memory.
21467         * socket-io.c: not all systems have AF_IRDA defined.
21468
21469 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21470
21471         * class.c (class_compute_field_layout): do not consider static
21472         fields to compute alignment
21473
21474 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21475
21476         * appdomain.c (mono_appdomain_get): impl.
21477         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21478
21479 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21480
21481         * icall.c: ignore "file://" prefix when loading an assembly.
21482
21483 2002-01-23  Dick Porter  <dick@ximian.com>
21484
21485         * socket-io.c:
21486         * icall.c:
21487         * Makefile.am: Added socket support
21488
21489 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21490
21491         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21492         code back.  This should return the assemblies that are loaded by
21493         the runtime on behalf of an application domain. 
21494
21495         The current implementation is still broken, it just returns every
21496         assembly loaded, but until we get real applications domain this
21497         will do.
21498
21499 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21500
21501         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21502         AppDomain object.
21503
21504 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21505
21506         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21507         the mono_class_from_name lookup.
21508         (ves_icall_get_parameter_info): ditto.
21509         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21510         method.
21511         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21512
21513 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21514
21515         * class.c: load also nested classes on class init.
21516         System.ValueType instance methods gets passed boxed
21517         values, unless methods in derived classed that get a pointer to the
21518         data.
21519         * icall.c: use better name parsing code in GetType().
21520         * image.c, image.h: add mono_image_loaded ().
21521         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21522         * reflection.c, reflection.h: added mono_reflection_parse_type().
21523
21524 2002-01-22  Veronica De Santis <veron78@interfree.it>
21525
21526         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21527         * threads.c : Added the implementation of internal calls for events
21528         * threads.h : Added prototypes of internal calls for events
21529         
21530 2002-01-21  Radek Doulik  <rodo@ximian.com>
21531
21532         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21533
21534 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21535
21536         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21537         (mono_class_value_size): use min_align
21538
21539 2002-01-20  Dick Porter  <dick@ximian.com>
21540
21541         * threads.h:
21542         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21543         so it compiles on w32.
21544
21545 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21546
21547         * metadata.c (mono_type_stack_size): impl.
21548
21549         * class.c (mono_class_get_field): impl. memberref token
21550
21551 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21552
21553         * icall.h : Added the internal calls mapping for CreateMutex_internal
21554                     and ReleaseMutex_internal.
21555         * threads.h : Added the prototype of mutexes internal calls.
21556         * threads.c : Added the implementations of mutexes internal calls.
21557
21558 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21559
21560         * metaparse.h: removed unused file.
21561         * reflection.c, reflection.h: added stream_data_align () function 
21562         to align data in streams and keep stream aligned. Add support for
21563         exception support in method headers.
21564
21565 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
21566
21567         * unicode.c: make iconv_convert () return the number of bytess written
21568         in the output buffer.
21569
21570 2002-01-15  Dick Porter  <dick@ximian.com>
21571         * threads.c: Make the runtime's idea of infinite timeouts coincide
21572         with the class library's
21573
21574         Fix a particularly egregious bug in mono_thread_cleanup(). That
21575         code was so utterly bogus it must have been written on a Monday.
21576
21577 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21578
21579         * reflection.h: add subtypes field to TypeBuilder.
21580         * reflection.c: encode constants for literal fields.
21581         Handle subtypes. Fix user string token (and add a zero byte)
21582         at the end.
21583         
21584 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
21585
21586         * class.c (mono_class_init): bug fix: assign slot numbers for
21587         abstract methods.
21588
21589 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21590
21591         * reflection.c: don't try to output a code RVA for abstract methods.
21592         Small fixes for method header format. Output parameter info to the
21593         ParamDef table. Save method overriding info to MethodImpl table.
21594         Fix property support. Allow typedef.extends to be a type in the
21595         building assembly.
21596         * verify.c: fix off-by-one error.
21597
21598 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
21599
21600         * class.c: fix mono_class_from_mono_type () for szarray types.
21601         Remove unused cache check in mono_class_from_type_spec().
21602         * icall.c: *type_from_name () functions handle simple arrays and byref.
21603         * reflection.c: handle byref and szarray types. Handle methods without
21604         body (gets P/Invoke compilation working). Handle types and fields in
21605         get_token ().
21606         * reflection.h: add rank to MonoTypeInfo.
21607
21608 2002-01-10  Dick Porter  <dick@ximian.com>
21609
21610         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
21611         internal calls
21612
21613 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21614
21615         * icall.c: initialize class in type_from_handle ().
21616         Loop also in parent classes for get_method ().
21617         * reflection.c: properly encode class and valuetype types.
21618         Start on encoding TypeBuilder types. Handle fieldrefs.
21619         Use correct length when registering a user string.
21620         Handle ConstructorBuilder and MonoMethod in get_token ().
21621         Make mono_type_get_object () aware of cached types.
21622         * object.c: back out change to mono_string_new ().
21623
21624 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
21625         * object.c: mono_string_new should return a NULL when the string 
21626         passed in is NULL -- not try to deference it.
21627         
21628 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21629
21630         * icall.c: hack to make IsSubType work for TypeBuilders.
21631         * reflection.c: emit constructors before methods.
21632         Retrieve param names in mono_param_get_objects().
21633
21634 2002/01/05  Nick Drochak  <ndrochak@gol.com>
21635
21636         * Makefile.am: fix list of headers and sources so automake 1.5
21637         doesn't complain. Removed \# at end of list.
21638
21639 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21640
21641         * reflection.c: get token for a method ref. Set return type of
21642         constructor to void.
21643         * loader.c: debug message.
21644         * class.c: typo fix.
21645
21646 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
21647
21648         * icall.c: fix array init with rank > 1. FindMembers
21649         loops in parent class as well.
21650         * image.c: do not insert nested types in name cache.
21651         * reflection.c: warning fix.
21652         * reflection.h: add override method (for interface impl).
21653
21654 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
21655
21656         * metadata.c: fix customattr decoding.
21657
21658 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
21659
21660         * rawbuffer.cs: Added native Win32 implementation, avoids using
21661         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
21662
21663 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
21664
21665         * class.c: make the low-level routines handle the cache.
21666
21667 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
21668
21669         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
21670
21671 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
21672
21673         * class.c: fix mono_array_element_size() for objects.
21674         * class.h, class.c: add properties to MonoClass and load them
21675         at init time.
21676         * icall.c: check with isinst() when assigning a value to an array
21677         instead of requiring the classes to match exactly.
21678         Implemented icall for System.Type::GetType().
21679         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
21680         enums. Handle bindingflags when looking for methods and fields.
21681         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
21682         and mono_metadata_methods_from_property().
21683         * reflection.h, reflection.c: added structures for propreties,
21684         parameters and enums. Implemented mono_property_get_object() and
21685         mono_param_get_objects().
21686
21687 2001-12-18  Dick Porter  <dick@ximian.com>
21688
21689         * file-io.c: Use mono_string_to_utf16() instead of
21690         mono_string_chars()
21691
21692         * object.c: Added mono_string_to_utf16(), which copies the non
21693         NULL-terminated MonoString into a new double-null-terminated
21694         buffer.
21695
21696 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
21697
21698         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
21699
21700 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
21701
21702         * file-io.c: raise exceptions if handle is invalid.
21703
21704 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
21705
21706         * assembly.c: yet another check for mscorlib.
21707         * class.c, class.h: load nesting info for classes.
21708         * icall.c: many new functions to support the Reflection classes.
21709         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
21710         * reflection.h, reflection.c: mono_image_create_token(),
21711         mono_assembly_get_object(), mono_type_get_object(),
21712         mono_method_get_object(), mono_field_get_object(): methods to return
21713         objects that parallel the C representation of assemblies, types,
21714         methods, fields.
21715
21716 2001-12-11  Dick Porter  <dick@ximian.com>
21717
21718         * icall.c:
21719         * file-io.c: Internal calls for file IO.
21720
21721 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
21722
21723         * tabledefs.h: missing FileAttributes.
21724         * verify.h, verify.c: use is_valid_string () to simplify and check for
21725         valid strings more correctly. Fix warnings and speeling.
21726         Check more tables: Filed, File, ModuleRef, StandAloneSig.
21727         Check code: branches, maxstack, method calls.
21728
21729 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
21730
21731         * object.c (mono_object_allocate): removed static, so that the jit
21732         can allocate value types.
21733
21734         * icall.c (ves_icall_System_DateTime_GetNow): impl.
21735
21736 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21737
21738         * class.c: init enum types right away and register the
21739         token->MonoClass map in mono_class_create_from_typedef ().
21740         * verify.h, verify.c: first cut of the verifier.
21741         * pedump.c: add --verify switch to verify metadata tables.
21742         * tabledefs.h: add some missing enums.
21743
21744 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
21745
21746         * class.c (mono_install_runtime_class_init): impl.
21747         (mono_class_init): renamed mono_class_metadata_init to
21748         mono_class_init, also removed the metadata_inited flag
21749
21750         * object.c (mono_object_isinst): use faster algorithm
21751
21752 2001-11-30  Radek Doulik  <rodo@ximian.com>
21753
21754         * mono-endian.h: reverted last change
21755         added function prototypes
21756
21757         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
21758         add mono-endian.c back
21759
21760         * mono-endian.c: returned back, as Paolo pointed out, it's needed
21761         for unaligned access, I've mistaked it with endianess. I am
21762         sorry.
21763         (mono_read16): fix reverted endianess
21764         (mono_read64): ditto
21765         (mono_read32): ditto
21766
21767 2001-11-30  Dick Porter  <dick@ximian.com>
21768
21769         * exception.c: Implement mono_exception_from_name()
21770
21771 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21772
21773         * metadata.h, metadata.c: remove params_size and locals_size and their
21774         calculation from the metadata code: they are only usefult to the
21775         interp.
21776
21777 2001-11-29  Radek Doulik  <rodo@ximian.com>
21778
21779         * object.c (mono_ldstr): swap bytes here, it's probably not the
21780         best place, but works for me now, I'll redo it once I know mono
21781         better, also note that I add PROT_WRITE and don't reset back, also
21782         note that it's only affects big endians, so x86 should be OK
21783
21784         * mono-endian.h (read16): use just glib macros for both endians
21785
21786         * mono-endian.c: removed as glib macros are used in in
21787         mono-endian.h so we don't need to care about endianess for read
21788         macros as glib does that for us already
21789
21790 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
21791
21792         * class.h, class.h: take minimum alignment into consideration so
21793         that the fields of a class remain aligned also when in an array.
21794
21795 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21796
21797         * loader.h, loader.c: add mono_method_get_param_names().
21798         * class.c: 0-init class fields.
21799
21800 2001-11-26  Dick Porter  <dick@ximian.com>
21801
21802         * icall.c:
21803         * threads-types.h:
21804         * threads.c: New file that handles System.Threading on all platforms
21805
21806         * object.c: 
21807         * object.h: Remove the synchronisation struct from MonoObject,
21808         replace it with a pointer that gets initialised on demand
21809
21810         * Makefile.am: Replace all the system-specific threading code with
21811         a single file that uses the new wrapper library
21812
21813 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
21814
21815         * class.c, class.h: add mono_install_trampoline() so that the runtime
21816         can register a function to create a trampoline: removes the ugly
21817         requirement that a runtime needed to export arch_create_jit_trampoline.
21818         * object.h, object.c: added mono_install_handler() so that the runtime
21819         can install an handler for exceptions generated in C code (with
21820         mono_raise_exception()). Added C struct for System.Delegate.
21821         * pedump.c: removed arch_create_jit_trampoline.
21822         * reflection.c: some cleanups to allow registering user strings and
21823         later getting a token for methodrefs and fieldrefs before the assembly
21824         is built.
21825         * row-indexes.h: updates and fixes from the new ECMA specs.
21826
21827 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
21828
21829         * class.h, class.c: add enum_basetype field to MonoClass.
21830         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
21831         to get index in the constant table reated to a field, param or
21832         property.
21833         * reflection.h, reflection.c: handle constructors. Set public-key and
21834         version number of the built assembly to 0.
21835         * row-indexes.h: update from new ECMA spec.
21836
21837 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21838
21839         * class.h, class.c: add a max_interface_id to MonoClass.
21840         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
21841         since it's used to do that. Added mono_type_type_from_obj().
21842         Make GetType() return NULL instead of segfaulting if the type was not
21843         found. Handle simple arrays in assQualifiedName.
21844         * object.h: add a struct to represent an Exception.
21845         * reflection.c: output call convention in method signature.
21846         Add code to support P/Invoke methods and fixed offsets for fields.
21847
21848 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
21849
21850         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
21851         the value.
21852         * icall.c: use mono_array_addr instead of array->vector: fixes the
21853         reflection image writing.
21854         * reflection.c: init call convention byte to 0 in method signature.
21855         Encode the property signature. Don't output property-related methods
21856         twice. Really process the properties for a type (don't cast a field to
21857         a property, my mom always told me that).
21858         Fix 64 bit issues in pointer alignment in a different and more
21859         readable way.
21860
21861 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
21862
21863         * loader.h: Removed type class from MonoDefaults, added monotype
21864
21865         * loader.c: Loaded MonoType, removed loading of Type
21866
21867         * icall.c (my_mono_new_object): Now returns a System.MonoType,
21868         and fills in System.Type._impl with a RuntimeTypeHandle rather
21869         than the actual MonoClass *
21870
21871         (ves_icall_type_from_handle): change from type_class to
21872         monotype_class
21873
21874         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
21875         implemented
21876
21877         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
21878         implemented
21879
21880         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
21881
21882         (ves_icall_System_Reflection_Assembly_GetType): implemented
21883
21884         (ves_icall_System_MonoType_assQualifiedName): implemented
21885
21886         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
21887
21888 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
21889
21890         * assembly.c (mono_assembly_open): Implement a cache for the
21891         assemblies. 
21892
21893         (mono_assembly_close): only destroy the assembly when the last
21894         reference is gone.
21895         
21896 2001-11-09  Dick Porter  <dick@ximian.com>
21897
21898         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
21899
21900 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
21901
21902         * class.c (mono_class_metadata_init): bug fix: compute the right slot
21903
21904 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21905
21906         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
21907         from Martin Weindel.
21908         * object.h: add mono_string_chars ().
21909
21910 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
21911
21912         * reflection.c (build_compressed_metadata): Eliminates warnings
21913         and uses 64-bit clean code.
21914
21915         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
21916         (mono_type_equal): Change signature to eliminate warnings.
21917
21918 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21919
21920         * icall.c, loader.c: remove the internalcall array constructors.
21921         Changes to match the new MonoArray structure.
21922         * object.h, object.c: an array object doesn't allocate an extra
21923         vector. Add mono_array_new_full () to create jagged arrays easily.
21924
21925 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21926
21927         * metadata.h, metadata.c: add mono_metadata_field_info () to
21928         retreive all the info about a field from vairous tables.
21929         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
21930         * class.h, class.c: augment MonoClassField with more info.
21931         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
21932         policy and load a field's RVA if needed.
21933
21934 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
21935
21936         * class.c (mono_class_metadata_init): create a trampoline for all
21937         virtual functions instead of actually compiling them.
21938
21939 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
21940
21941         * class.h, class.c: include name in MonoClassField.
21942         * class.c: fix fundamental type of System.Object and System.String.
21943         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
21944         tokens in ldtoken.
21945         * icall.c: remove internalcalls for the Reflection stuff that is now
21946         done in C# code.
21947         * loader.c: mono_field_from_memberref () implementation.
21948         * mono-endian.c: thinko (s/struct/union/g).
21949         * object.c, object.h: make the mono_string_* prototypes actually use
21950         MonoString instead of MonoObject.
21951         * reflection.c, reflection.h: updates for changes in the reflection
21952         code in corlib: we use C structures that map to the actual C# classes.
21953         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
21954         fat method header if needed and use the info from the ILGenerator for
21955         methods. Handle fields in types. Misc fixes.
21956
21957 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
21958
21959         * class.c (mono_class_metadata_init): bug fix: always allocate
21960         space for static class data
21961
21962 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
21963
21964         * class.c (mono_compute_relative_numbering): use relative
21965         numbering to support fast runtime type checks.
21966
21967 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
21968
21969         * class.c (mono_class_create_from_typeref): added debugging output
21970         to print class name when MonoDummy is returned instead of real class
21971
21972 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
21973
21974         * class.c (mono_class_metadata_init): interface offset table now
21975         contains pointers into the vtable - this is more efficient for the jit
21976
21977 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
21978
21979         * class.c (mono_class_metadata_init): use a temporary vtable (the
21980         old algorithm only worked for the interpreter, but not for the jit)
21981
21982 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
21983
21984         * loader.c (method_from_memberref): use mono_class_get to get the
21985         class of an array instead of using System.Array directly.
21986         (mono_get_method): also add MEMBERREF methods to the method cache
21987         which usefull for arrays.
21988
21989 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
21990
21991         * pedump.c (arch_compile_method): added to compute vtable entry
21992
21993         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
21994         number of interfaces.
21995         
21996         * class.h: merged MonoArrayClass into MonoClass
21997
21998         * class.c (mono_class_create_from_typedef): compute the vtable size and
21999         allocate space to include the vtable inside MonoClass
22000         (mono_class_metadata_init): initialize the vtable
22001
22002 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
22003
22004         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
22005         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
22006         * image.c: endian fixes by Laurent Rioux.
22007         * object.h, object.c: rename MonoStringObject to MonoString and
22008         MonoArrayObject to MonoArray. Change some function names to conform to
22009         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
22010         guint16* as first argument, so don't use char*.
22011         Provide macros to do the interesting things on arrays in a portable way.
22012         * threads-pthread.c: updates for the API changes and #include <sched.h>
22013         (required for sched_yield()).
22014         * icall.c: updates for the API changes above.
22015         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
22016         platforms that need them.
22017
22018 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22019
22020         * class.c: set the correct type for all the fundamental
22021         type when loading the class.
22022
22023 2001-10-05  Dick Porter  <dick@ximian.com>
22024
22025         * threads-pthread.c (pthread_mutex_timedlock): Simple
22026         compatibility version for C libraries that lack this call.
22027
22028 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22029
22030         * class.c: MonoTypes stored in MonoClass are stored as
22031         fundamental MonoTypes when the class represents a
22032         fundamental type (System.Int32, ...).
22033         The TypeHandle return by ldtoken is a MonoType*.
22034         * icall.c: ves_icall_get_data_chunk () write out all the
22035         PE/COFF stuff. Implement ves_icall_define_method (),
22036         ves_icall_set_method_body (), ves_icall_type_from_handle ().
22037         * image.c: properly skip unknown streams.
22038         * loader.h, loader.c: add type_class to mono_defaults.
22039         * metadata.c, metadata.h: export compute_size () as
22040         mono_metadata_compute_size () with a better interface.
22041         Typo and C&P fixes.
22042         * pedump.c: don't try to print the entry point RVA if there is no entry point.
22043         * reflection.c, reflection.h: many cleanups, fixes, output method
22044         signatures and headers, typedef and typeref info, compress the metadata
22045         tables, output all the heap streams, cli header etc.
22046         * row-indexes.h: typo fixes.
22047
22048 2001-10-04  Dick Porter  <dick@ximian.com>
22049
22050         * object.h: Add a synchronisation mutex struct to MonoObject
22051
22052         * object.c (mono_new_object): Initialise the object
22053         synchronisation mutexes
22054
22055         * icall.c: System.Threading.Monitor internal calls
22056         
22057         * threads-pthread.h:
22058         * threads-pthread.c: System.Threading.Monitor internal calls
22059
22060         * threads-types.h: New file, includes the system-specific thread
22061         structures
22062         
22063         * threads-pthread-types.h:
22064         * threads-pthread-types.c: New files, handle pthread-specific
22065         synchronisation types
22066
22067         * threads-dummy-types.h: 
22068         * threads-dummy-types.c: New files of dummy support for
22069         thread-specific types
22070
22071         * metadata.c:
22072         * image.c:
22073         * pedump.c: include mono-endian.h not endian.h
22074         
22075         * Makefile.am: More threads files.
22076         Name mono-endian.h not endian.h
22077
22078 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
22079
22080         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
22081         stuff and implement a few more bits.
22082         * icall.c: a field needs to be dereferenced twice. Do not use the same
22083         name for two variables in the same scope.
22084         * image.c, image.h: cleanups.
22085
22086 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
22087
22088         * class.c (mono_class_metadata_init): bug fix: compute the right size
22089
22090 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
22091
22092         * icall.c: implemented some of the Reflection internalcalls.
22093         * image.c, image.h: start writing out the PE/COFF image.
22094         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
22095         that does the reverse than decode_blob_size ().
22096         * object.c: use mono_metadata_encode_value (). Move here
22097         temporary implementation of mono_string_to_utf8 ().
22098         * rawbuffer.c: make malloc_map static.
22099
22100 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22101
22102         * metadata.c: fix type comparison for arrays.
22103         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
22104         Added a couple of new classes to monodefaults.
22105         * icall.c: added a couple of Reflection-related internalcalls.
22106         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
22107         Added a byval_arg MonoType to MonoClass.
22108
22109 2001-09-28  Dick Porter  <dick@ximian.com>
22110
22111         * icall.c:
22112         * threads-pthread.h: 
22113         * threads-pthread.c: Implemented internal calls for
22114         LocalDataStoreSlot operations.  Applied mutexes around all shared
22115         data.  Reworked the thread creation and Start() operations to
22116         avoid a race condition.
22117         
22118         * threads-dummy.h:
22119         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
22120
22121 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
22122
22123         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
22124
22125 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
22126
22127         * class.c, loader.c: warn and return NULL instead of erroring out.
22128         * icall.c: added System.AppDomain::getCurDomain().
22129         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
22130
22131 2001-09-25  Dick Porter  <dick@ximian.com>
22132
22133         * threads-pthread.h:
22134         * threads-pthread.c: Implemented timed thread joining and added
22135         System.Threading.Thread::Join_internal internal call
22136
22137         * icall.c: Added System.Threading.Thread::Join_internal internal call
22138
22139         * threads-dummy.h:
22140         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
22141
22142 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
22143
22144         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
22145         mono_string_intern () to implement the semantics of the ldstr opcode
22146         and the interning of System.Strings.
22147         * icall.c: provide hooks to make String::IsIntern and String::Intern
22148         internalcalls.
22149
22150 2001-09-23  Dick Porter  <dick@ximian.com>
22151
22152         * threads-dummy.c: 
22153         * threads-dummy.h: New files of dummy threading routines
22154
22155         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
22156         support code based on system specifics
22157
22158         Rename PTHREAD_LIBS to THREAD_LIBS
22159         
22160 2001-09-23  Dick Porter  <dick@ximian.com>
22161
22162         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
22163         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
22164         internal calls.
22165         (mono_thread_init): Set up a Thread object instance to return when
22166         the main thread calls Thread.CurrentThread
22167         (mono_thread_cleanup): Wait for all subthreads to exit
22168
22169         * icall.c: New internal calls for System.Threading.Thread::Sleep
22170         (including Schedule) and CurrentThread
22171
22172         * threads.h: New file, to insulate thread-specific stuff from the
22173         rest of the code
22174
22175 2001-09-21  Dick Porter  <dick@ximian.com>
22176
22177         * threads-pthread.h: 
22178         * threads-pthread.c: New file, for handling pthreads-style
22179         threading support.  Start() now starts a new thread and executes
22180         the ThreadStart delegate instance.
22181
22182         * icall.c: Added the internalcall for
22183         System.Threading.Thread::Start_internal
22184
22185         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
22186
22187 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
22188
22189         * loader.c: work around the different signatures for delegates
22190         constructors csc generates in compiled code vs the ones compiled in mscorlib.
22191
22192 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22193
22194         * class.h, class.c: add mono_class_get_field_from_name ().
22195         * *: Fix C comments and other ANSI C issues.
22196
22197 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
22198
22199         * endian.h, assembly.c: fix some endianness issues.
22200
22201 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
22202
22203         * loader.h, load.c: add delegate_class to mono_defaults.
22204         Handle runtime provided methods in mono_get_method ().
22205
22206 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
22207
22208         * loader.c (mono_get_method): use pinvoke for internal call
22209
22210         * icall.c: use pinvoke for internal call
22211
22212         * loader.c (method_from_memberref): set the method name
22213
22214 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
22215
22216         * metadata.c: help the compiler generate better code for
22217         mono_class_from_mono_type ().
22218
22219 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
22220
22221         * class.c (mono_class_metadata_init): delayed computing of the
22222         class size to mono_class_metadata_init ()
22223
22224 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
22225
22226         * class.c, class.h: add an interfaces member to MonoClass.
22227         * image.c, image.h: add assembly_name field to MonoImage
22228         from the assembly table.
22229         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
22230
22231 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22232
22233         * class.c: Handle Array in mono_class_from_mono_type ().
22234         * metadata.c, pedump.c: some endian fixes.
22235
22236 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22237
22238         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
22239         * metadata.c: fix small problem introduced with the latest commit.
22240
22241 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
22242
22243         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
22244         We don't need a MonoMetadata pointer anymore to compare signatures in
22245         mono_metadata_signature_equal (), update callers.
22246         Reduced memory usage an number of allocations for MonoMethodHeader and
22247         MonoMethodSignature.
22248
22249 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
22250
22251         * metadata.c: added compare for szarray.
22252
22253 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
22254
22255         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
22256         and add a couple more types to it and mono_defaults. Give an hint on
22257         classes that need implementing in our corlib and are referenced
22258         in mscorlib.
22259
22260 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
22261
22262         * class.h, class.c: keep track if a class is also an Enum.
22263         * loader.c: Implement a couple more types for use in libffi
22264         marshalling. Gives better diagnostics when failing to dlopen
22265         a library. Set method->klass for P/Invoke methods, too.
22266
22267 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
22268
22269         * class.c, class.h: add a MonoType this_arg to MonoClass that
22270         represents a pointer to an object of the class' type that
22271         can be used by the interpreter and later the type cache.
22272         Add best guess alignment info for valuetype objects.
22273
22274 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
22275
22276         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
22277         into MonoType: one less level of indirection and allocation and
22278         simplifies quite a bit of code. Added cache for MonoTypes that are
22279         used frequently, so that we don't need to allocate them all the time.
22280
22281 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
22282
22283         * class.c (mono_class_create_from_typedef): System.Enum is also a
22284         value type, although it does not derive from System.ValueType
22285         (maybe a bug in the ms compiler?)
22286
22287         * metadata.c (mono_type_size): return the right size for value types
22288
22289         * loader.c (mono_get_method): only initialize method header if not abstract
22290
22291         * class.c (mono_class_from_mono_type): use mono_default values. 
22292
22293 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
22294
22295         * *: use MonoClass pointers instead of <type_tokens>
22296         
22297         * class.h: new flag: metadata_inited.
22298
22299         * class.c (mono_class_metadata_init): impl.
22300         (mono_class_instance_size): impl.
22301         (mono_class_data_size): impl.
22302
22303 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22304
22305         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
22306         MonoClass now has the name and name_space fields. 
22307         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
22308         mono_get_method () takes and optional MonoClass as argument.
22309         Removed mono_typedef_from_name() and added mono_class_token_from_name()
22310         instead that takes advantage of a map from class names to typedef
22311         tokens in MonoImage.
22312
22313 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
22314
22315         * metadata.c: zero is not a valid alignment boundary.
22316         Merge MONO_TYPE_VOID in default decoding code.
22317
22318 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
22319
22320         * image.h: merged MonoMetadata into MonoImage
22321
22322         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
22323         identify the type of elements.
22324
22325 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22326
22327         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22328         * cil-coff.h: split MonoMSDOSHeader and add size info.
22329         * image.c: add some consistency checks.
22330         * metadata.c: fix row size computation: one programmer
22331         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22332         add explanation for the locator routine.
22333         Fix decoding of size in method header.
22334         
22335 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22336
22337         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22338         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22339         function from gnome-libs.  This uses the right path separator
22340         based on the OS, and also works around a bug in some systems where
22341         a double slash is not allowed. 
22342         (default_assembly_name_resolver): Use g_concat_dir_and_file
22343         (mono_assembly_open): ditto.
22344
22345 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22346
22347         * metadata.c (mono_metadata_signature_equal): impl.
22348
22349         * *: void is now a realy MonoType (instead of using NULL)
22350         
22351         * metadata.c (do_mono_metadata_parse_type): use
22352         mono_metadata_parse_type to parse void value.
22353
22354 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22355
22356         * metadata.c, metadata.h: in the signature and method header store
22357         only the space required for holding the loca vars and incoming arguments.
22358
22359 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22360
22361         * metadata.c (do_mono_metadata_parse_type): treat void like any
22362         other type (instead of assigning NULL);
22363
22364 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22365
22366         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22367
22368 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22369
22370         * image.c (do_mono_image_open): added a cache for arrays.
22371
22372 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22373
22374         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22375         decode a single column from a row in a metadata table and changes
22376         to take advantage of it in the typedef locator (gives a nice speed up).
22377         Store offset info for function params.
22378
22379 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22380
22381         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22382
22383 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22384
22385         * assembly.c: how could mono_assembly_close () had ever worked?
22386         * metadata.c, metadata.h: provide offset info for local vars.
22387         Implement mono_type_size () to take care of alignment as well
22388         as size (it was mono_field_type_size in cli/class.c before).
22389
22390 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22391
22392         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22393
22394         * assembly.h (CORLIB_NAME): set to corlib.dll
22395
22396         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22397
22398 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22399
22400         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22401         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22402         tokentype.h: massive namespace cleanup.
22403
22404 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22405
22406         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22407
22408 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22409
22410         * metadata.c (mono_metadata_free_type): added check for type !=
22411         NULL (void) before calling mono_metadata_free_type()
22412
22413 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22414
22415         * metadata.h, row_indexes.h: added header with enumerations to use
22416         to index in the columns from tables in metadata and to decode coded
22417         tokens: we should start using this instead of embedding magic numbers
22418         all over the code.
22419
22420 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22421
22422         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22423         Move metadata_t info from cli_image_info_t to MonoImage, where
22424         it's easily accessible. Changed all the uses accordingly.
22425         Added the method and class caches to MonoImage.
22426         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22427         and mono_metadata_decode_value () signature to be more consistent
22428         with the other parse functions (and simplify code). Taken advantage
22429         of zero-length array allocation with GCC. Removed reduntant (and
22430         wrong) MonoFieldType struct and use MonoParam instead. Changed
22431         mono_metadata_parse_field_type () to use common code for parsing.
22432         Added mono_metadata_typedef_from_field () and
22433         mono_metadata_typedef_from_method () to lookup a typedef index from a
22434         field or method token.
22435         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22436
22437 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22438
22439         * metadata.c (mono_metadata_parse_field_type): Implement. 
22440         (do_mono_metadata_parse_type): Split engine from
22441         mono_metadata_parse_type, so that we can create smaller structures
22442         for things that just have one pointer to the MonoType (look at
22443         the MonoFieldType)
22444
22445 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22446
22447         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22448         as Jan Gray found out, it is incorrect. 
22449
22450 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22451
22452         * assembly.c: Implement asssembly loading.  This loads an image
22453         and loads all the referenced assemblies.  Come to think of it, we
22454         could always do lazy loading of the assemblies. 
22455
22456         * image.c (mono_image_open): Keep loaded images in a hashtable.
22457
22458         * image.h (MonoImage): Add reference count.
22459
22460 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
22461
22462         * assembly.c (mono_assembly_open): Keep track of the file name in
22463         case the assembly has no ASSEMBLY table.
22464
22465         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
22466         from get.c here.
22467
22468 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22469
22470         * metadata.c, metadata.h: decode local vars in method header
22471         parse function. Change callers accordingly.
22472
22473 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22474
22475         * metadata.h, cil-coff.h: protect against multiple inclusion.
22476         Added some new structures to hold information decoded from metadata:
22477         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22478         and relevant decoding/free functions.
22479         * metadata.c: implement decoding functions. Add warning for out of bounds
22480         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22481         all the info about a method signature and invocation. Remove check on
22482         uninitialized local var in parse_mh() and fix memory leak.
22483
22484 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22485
22486         * metadata.h: More macros.
22487
22488         * tokentype.h: New file.
22489
22490 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22491
22492         * assembly.c: added a consistency check and initialize
22493         some structures with g_new0().
22494         * metadata.c: fixed a couple more bugs in table size computation
22495         and add other checks for out-of bound access to metadata.
22496
22497 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22498
22499         * metatada.c: fix bugs computing table sizes. Spew a
22500         warning when index in string heap is out of bounds.
22501
22502 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22503
22504         * metadata.h: Add a couple of macros to manipulate tokens. 
22505
22506 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22507
22508         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22509         cli_section_tables).
22510
22511 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22512
22513         * metadata.c (mono_metadata_user_string): New function, provides
22514         access to the UserString heap. 
22515
22516 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22517
22518         * metadata.c: Add inline documentation.
22519
22520 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22521
22522         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22523         files. 
22524
22525 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22526
22527         * typeattr.h: New file, TypeAttribute flags. 
22528
22529 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22530
22531         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22532         mono_assembly_ensure_section): Section loading code.
22533         (load_section_tables): Load the sections.
22534
22535         * mono/metadata/metadata.c (mono_metadata_locate_token,
22536         mono_metadata_locate): Functions to locate the information
22537         definition given a token or a table and an index.
22538         (mono_metadata_compute_table_bases): New.
22539         (compute_size): New function to compute the sizes of the various
22540         tables.
22541
22542         * mono/metadata/metadata.h: Finish listing the different index
22543         types. 
22544
22545         * mono/metadata/pedump.c: Improve to dump new information.
22546
22547 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22548
22549         * mono/metadata/metadata.c: Entered all the tables matching
22550         Beta2. 
22551
22552         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22553
22554
22555