2007-08-28 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
2
3         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
4
5 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
6
7         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
8         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
9
10 2007-08-28  Mark Probst  <mark.probst@gmail.com>
11
12         * security-manager.c (mono_security_manager_get_methods):
13         LinkDemandSecurityException now has 2 arguments instead of 3.
14
15 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
16
17         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
18         platforms which need it.
19
20 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
21
22         * sgen-gc.c: unregister thread data structures with a pthread_key_t
23         dtor.
24
25 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
26
27         * threads.c: free the thread static data on thread exit.
28
29 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
30
31         * class.c: walk the hierarchy to find the generic definition for
32         a class (fixes runtime part of bug #82498).
33
34 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
35
36         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
37         ...
38
39         * image.c (mono_image_close): Here. Hopefully fixes #82510.
40
41 2007-08-24  Mark Probst  <mark.probst@gmail.com>
42
43         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
44
45 2007-08-24  Robert Jordan  <robertj@gmx.net>
46
47         * appdomain.c: don't perform the ':'->';' substitution on Win32.
48
49 2007-08-24  Jb Evain  <jbevain@novell.com>
50
51         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
52         for byref types.
53
54 2007-08-24  Mark Probst  <mark.probst@gmail.com>
55
56         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
57         #82286.
58
59 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
60
61         * assembly.c: Fix a warning.
62         
63 2007-08-23  Marek Habersack  <mhabersack@novell.com>
64
65         * appdomain.c: parse the <runtime> section looking for the probing
66         element with the 'privatePath' attribute, which sets additional
67         directories in which the runtime should look for assemblies.
68
69 2007-08-23  Robert Jordan  <robertj@gmx.net>
70
71         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
72         Fixes #82499.
73
74 2007-08-23  Martin Baulig  <martin@ximian.com>
75
76         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
77         _mono_debug_init_corlib() and remove it from the header file.
78
79 2007-08-23  Martin Baulig  <martin@ximian.com>
80
81         * mono-debug-debugger.c
82         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
83         don't notify the debugger about it.
84
85         * mono-debug-debugger.h
86         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
87
88 2007-08-23  Robert Jordan  <robertj@gmx.net>
89
90         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
91         Code is contributed under MIT/X11 license.
92
93 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
94
95         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
96
97 2007-08-22  Martin Baulig  <martin@ximian.com>
98
99         * mono-debug.c: Store debugging info on a per-domain basis and
100         free it on domain unload.  Add support for unloading symbol files.
101
102         * mono-debug.h
103         (MonoDebugList): New typedef.
104         (MonoSymbolTable):
105         - add `data_tables and `type_table'.
106         - replace 'symbol_files' and `num_symbol_files' with a
107           `MonoDebugList *'.
108         (mono_debug_data_table): Removed.
109         (mono_debug_list_add): New public function.
110         (mono_debug_list_remove): New public function.
111         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
112         (mono_debug_init_2_memory): Renamed into
113         mono_debug_open_image_from_memory().
114         (mono_debug_close_image): New public function.
115         (mono_debug_domain_create): Likewise.
116         (mono_debug_domain_unload): Likewise.
117         (MONO_DEBUGGER_VERSION): Bump to 60.
118
119         * mono-debug-debugger.h
120         (MonoDebuggerEvent):
121         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
122         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
123         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
124         - rename `THREAD_CREATED' and `THREAD_EXITED' into
125           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
126         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
127           meaning.
128         (mono_debugger_add_symbol_file): Removed.
129         (mono_debugger_add_type): Removed.
130         (mono_debugger_lookup_type): Removed.
131         (mono_debugger_lookup_assembly): Removed.
132
133         * domain.c
134         (mono_domain_create): Call mono_debug_domain_create().
135         (mono_init_internal): Call mono_debug_init_corlib().
136
137         * assembly.c
138         (mono_assembly_close): Call mono_debug_close_image().
139
140 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
141
142         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
143         mmap call.
144
145 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
146
147         * sgen-gc.c: ensure section->pin_queue_end is initialized
148         correctly when non pinning objects in the section have been found.
149
150 2007-08-22  Marek Habersack  <mhabersack@novell.com>
151
152         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
153         containing a list of directories separated by ':'. MSDN docs say
154         the directories should be separated with ';'. Part of a bugfix for
155         bug #81446
156
157 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
158
159         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
160         it should MonoType and not MonoClass.
161
162 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
163
164         * culture-info-table.h : regenerated.
165
166 2007-08-20  William Holmes  <billholmes54@gmail.com>
167
168         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
169          to call ReplaceFile Kernel32 on windows or in io-layer.
170         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
171         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
172          as an internal call.
173
174         Code is contributed under MIT/X11 license.
175
176 2007-08-20  Jb Evain  <jbevain@novell.com>
177
178         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
179         and MONO_EXCEPTION_FIELD_ACCESS.
180
181         * debug-helpers.[c|h]: new mono_field_full_name function.
182
183 2007-08-20  Mark Probst  <mark.probst@gmail.com>
184
185         * class.c: Removed class_security_level() and moved it to
186         security-core-clr.c.
187
188         * security-core-clr.c, security-core-clr.h: class_security_level()
189         is now public and renamed to mono_security_core_clr_class_level().
190         It also looks for security attributes in the classes a class is
191         nested in.
192
193 2007-08-20  Mark Probst  <mark.probst@gmail.com>
194
195         * security-core-clr.c, security-core-clr.h: CoreCLR security
196         utility functions.
197
198         * Makefile.am: Added security-core-clr.[ch].
199
200         * security-manager.c, security-manager.h: Functions and enum for
201         setting and getting the security mode.
202
203         * class.c: CoreCLR security checks.
204
205 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
206
207         * icall-def.h, process.c, process.h: implemented icall to get
208         user/system processor times.
209
210 2007-08-17  Mark Probst  <mark.probst@gmail.com>
211
212         * domain.c, threads.c, class-internals.h, domain-internals.h: New
213         reader-lock-free jit_info_table.
214
215 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
216
217         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
218
219         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
220
221         * object-internals.h (MonoException): Add missing _data member.
222
223 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
224
225         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
226         checking that only methods with matching qname or fqname are picked
227         from implemented interfaces.
228
229 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
230
231         * verify.c (do_newarr):added, do type verification of
232         newarr ops, push the right value on the eval stack.
233         * verify.c (mono_method_verify): use do_newarr
234
235
236 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
237
238         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
239         factored the common code into get_boxable_mono_type, which
240         is now using mono_type_get_full, this fixed byref related tests.
241
242 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
243
244         * class.c: added mono_type_get_full, this function has the same
245         behavior of mono_class_get_full but the returned MonoType has
246         all metadata of the associated token in case of a typespec token.
247         * class.c: added mono_type_retrieve_from_typespec, used by 
248         mono_type_get_full to retrieve the token type.
249         * class.c (mono_class_create_from_typespec): changed to use
250         mono_type_retrieve_from_typespec.
251         * class.c (mono_ldtoken): changed to use mono_type_get_full
252         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
253         * class-internals.h: exported mono_type_get_full for internal use.
254
255 2007-08-16  Jb Evain  <jbevain@novell.com>
256
257         * domain.c (supported_runtimes): add entry for
258         the 'moonlight' runtime version.
259
260 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
261
262         * verify.c (mono_method_verify): small typo sliped in.  
263
264 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
265
266         * verify.c (do_unbox_value): added, do type verification of
267         unboxing ops
268         * verify.c (mono_method_verify): use do_unbox_value
269
270
271 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
272
273         * verify.c (dump_stack_value): fixed typo, was printing string
274         instead of object on stack.
275         * verify.c (do_box_value): moved the byref check up as it leads
276         to invalid code and should be done earlier.
277         * verify.c: improved error messages for and ldobj
278
279 2007-08-15  William Holmes  <billholmes54@gmail.com>
280
281         * marshal.c (emit_marshal_custom): Omit the call to 
282           marshal_native_to_managed when calling native to managed 
283           and the argument is specified as an out argument.
284
285         Code is contributed under MIT/X11 license.
286
287 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
288
289         * verify.c: fixed the type checks for generics, function pointers and vectors.
290         Added type verification for ldobj and ldtoken. The verifier
291         would segfault if header or signature of a method contained references
292         to non-existant types.
293
294 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
295
296         * marshal.c (cominterop_get_ccw): Patch from
297         Bill Holmes to no walk up interface hierarchy. 
298         All parent methods should be present in the interface for COM.
299    
300         Code is contributed under MIT/X11 license.
301
302 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
303
304         * marshal.c (emit_marshal_com_interface): Patch from
305         Bill Holmes to handle COM Interfaces as return values
306         for native->managed calls.
307    
308         Code is contributed under MIT/X11 license.
309
310 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
311
312         * marshal.c (cominterop_get_idispatch_for_object): Implement
313         for runtime callable wrappers.
314    
315         Code is contributed under MIT/X11 license.
316
317 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
318
319         * pedump.c (main): changed from mono_init to mono_init_from_assembly
320         so 2.0 types are accessible
321
322
323 2007-08-13  Miguel de Icaza  <miguel@novell.com>
324
325         * domain.c (mono_init_internal): Call mono_assembly_load_friends
326         once we load mscorlib.   Due to the order in which we initialize,
327         the mono_assembly_load_full routine that loads mscorlib did not
328         load friends.   We now load it once we load the
329         mono_defaults.internals_visible_class class. 
330
331         * assembly.c: Expose the mono_load_friend_assemblies method.
332
333 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
334
335         * verify.c: improved the handling of boxing, better
336         type checking for unary ops and conversion. Fix bug
337         regarding managed pointer compatibility checking
338
339 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
340
341         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
342
343         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
344
345 2007-08-09  Raja R Harinath  <rharinath@novell.com>
346
347         * reflection.c (dup_type): Remove.
348         * class.c (dup_type): Remove.
349         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
350         instead of the dodgy 'dup_type'.
351         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
352         handle the case where 'dup_type' needed the second argument.
353
354 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
355
356         * domain.c: Fix a warning.
357
358 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
359
360         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
361         checking that methods with the same fqname are not overridden
362         with a method from an ancestor.
363
364 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
365
366         * threads.c (free_thread_static_data_helper): Avoid a crash if
367         thread->static_data is not yet set.
368
369 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
370
371         * marshal.c: Use correct image when emitting
372         native wrapper for COM calls.
373    
374         Code is contributed under MIT/X11 license.
375
376 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
377
378         * icall-def.h, security.c, security.h :
379           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
380
381 2007-08-07  Martin Baulig  <martin@ximian.com>
382
383         * mono-debug-debugger.h
384         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
385
386         * domain.c (mono_domain_free): Call
387         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
388
389 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
390
391         * verify.c (check_underflow, check_overflow): error message now returns IL offset
392         * verify.c (in_same_block): code should test if either offset is inside the clauses
393         * verify.c (mono_method_verify): push the exception into the eval stack of exception
394         and filter blocks
395
396 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
397
398         * image.c (mono_image_close): Fix a leak.
399
400         * object.c (mono_runtime_invoke_array): Avoid using alloca.
401
402         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
403
404 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
405
406         * domain.c, threads.c, threads-types.h: fix memory retention issue
407         with thread static variables not being cleared on domain unload.
408         Reuse thread static slots after domain unload.
409
410 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
411
412         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
413         nullable type.
414
415         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
416         now done in mono_runtime_invoke_array.
417
418         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
419         receiver is a nullable type.
420
421         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
422         generic parameter.
423
424 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
425
426         * marshal.c: Implement COM Objects as return type for 
427         managed->unmanaged calls. Added Release calls for COM Object
428         out/return values in managed->unmanaged calls.
429
430         Code is contributed under MIT/X11 license.
431
432 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
433
434         * threads.h, threads-type.h: move the hazard pointer declarations
435         to the private header.
436
437 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
438
439         * file-io.c, appdomain.c: memory leak fixes.
440
441 2007-08-02  Dick Porter  <dick@ximian.com>
442
443         * socket-io.c
444         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
445         SO_REUSEADDR setting into io-layer/sockets.c.
446
447 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
448
449         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
450         from Object when called on a generic parameter. Fixes #82211.
451
452 2007-08-01  Dick Porter  <dick@ximian.com>
453
454         * file-io.c (convert_share): Test FileShare values bit-by-bit.
455         Fixes bug 79250 yet again.
456
457 2007-07-30  Martin Baulig  <martin@ximian.com>
458
459         Merged the `debugger-dublin' branch.
460
461         * mono-debug.h
462         (MonoDebugDataTable): New typedef.
463         (MonoDebugMethodAddressList): New typedef.
464         (MonoDebugWrapperData): Removed.
465         (MonoDebugSymbolTable): Removed `current_data_table',
466         `current_data_table_size', `current_data_table_offset'.
467         (MonoDebugDataItemType): Moved into mono-debug.c.
468         (MonoDebugMethodJitInfo): Remove `address'.
469         (mono_debug_data_table): New global variable.
470         (mono_debug_lookup_method_addresses): New public function.
471         (mono_debug_find_method): Take a `MonoMethod *', not a
472         `MonoDebugMethodInfo *'.
473
474         * mono-debug.c: Drop support for the old symbol tables.
475
476 2007-06-28  Martin Baulig  <martin@ximian.com>
477
478         * mono-debug.c (mono_debug_debugger_version): New public variable.
479
480 2007-07-31  William Holmes  <billholmes54@gmail.com>
481
482         * metadata.c Changed mono_type_create_from_typespec to not insert
483           the type into the hash map until after
484           do_mono_metadata_parse_type has completed.
485         Fixes Bug #82194
486         Code is contributed under MIT/X11 license.
487
488 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
489
490         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
491         generic parameter. Fixes #82211.
492
493 2007-07-27  Jb Evain  <jbevain@novell.com>
494
495         * pedump.c (dump_metadata, dump_metadata_header): dump
496         versions contained in the metadata header.
497
498 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
499
500         * threads.c: register small_id_table with the GC.
501
502 2007-07-27  Mark Probst  <mark.probst@gmail.com>
503
504         * threads.c, threads.h, class-internals.h, object-internals.h:
505         Hazard pointers, to be used by lock-free parallel algorithms.
506
507 2007-07-26  Dick Porter  <dick@ximian.com>
508
509         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
510         routine on non-windows platforms, as I've not managed to think of
511         a non-kludgy way of doing this.  Finishes off bug 78739.
512
513 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
514
515         * object.c: properly setup interface_bitmap in proxy vtables.
516
517 2007-07-25  Marek Habersack  <mhabersack@novell.com>
518
519         * appdomain.c (get_shadow_assembly_location): do not use TickCount
520         to create unique shadow copy target directories, use the domain's
521         serial number instead. Each domain gets a unique target directory
522         that way.
523
524         * domain.c (mono_domain_create): added code to increment domain
525         shadow copy serial number and cache the value in the current
526         domain structure.
527
528         * domain-internals.h (struct _MonoDomain): added a new field -
529         shadow_serial to hold the serial number used in generation of
530         shadow-copy directories. This is to make sure that the directory
531         name is unique for each and every domain created. We avoid a race
532         condition with overriding assemblies already in use by other app
533         domains.
534
535 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
536
537         * class.c (mono_bounded_array_class_get): fixed memory leak when 
538         binding generic parameters.
539
540 2007-07-24  Raja R Harinath  <rharinath@novell.com>
541
542         * metadata.c (do_mono_metadata_parse_generic_class): Use
543         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
544         error.
545
546 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
547
548         * loader.c, class-internals.h, reflection.c: removed the per-method
549         generics hashtable: we use the global one through the call of
550         mono_class_inflate_generic_method ().
551
552 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
553
554         * class.c, metadata.c, class-internals.h: introduce yet another
555         generics global cache for inflated methods (fixes 98% of the perf
556         issue in bug #81806).
557
558 2007-07-23  Raja R Harinath  <rharinath@novell.com>
559
560         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
561         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
562         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
563         return a MonoGenericInst containing (a copy) of those types.
564         (mono_metadata_inflate_generic_inst): Update to changes.
565         (mono_metadata_parse_generic_inst): Likewise.
566         (mono_get_shared_generic_inst): Likewise.
567         * reflection.c (mono_class_bind_generic_parameters): Likewise.
568         (mono_reflection_bind_generic_method_parameters): Likewise.
569         * metadata-internals.h: Likewise.
570         * icall.c (free_generic_context): Kill.
571         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
572
573         * reflection.c (reflection_methodbuilder_to_mono_method): Use
574         mono_metadata_type_dup.
575         * marshal.c (mono_mb_create_method): Likewise.
576
577         * metadata.c (mono_metadata_type_dup): Rename from
578         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
579         MonoImage.  Handle a few more cases, esp. when no mempool is given.
580         * marshal.c, metadata-internals.h: Update to changes.
581
582 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
583
584         * class.c: fixed a small leak for array classes and removed warning.
585
586 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
587
588         * loader.c (mono_method_get_param_token): Make this work on generic methods.
589         Return 0x8000000 for return parameters. Fixes #82161.
590
591 2007-07-21  Marek Habersack  <grendello@gmail.com>
592
593         * appdomain.c (get_shadow_assembly_location): append the current
594         ticks value to the path. Avoids overwriting the same assemblies by
595         several threads at the same time.
596
597 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
598         and Raja R Harinath  <rharinath@novell.com>
599
600         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
601         Simplify slightly.
602         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
603         property for testing if a method is a generic method definition.
604
605 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
606
607         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
608
609 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
610
611         * verify.c: used function from private branch, reverted to the one in class.h 
612
613 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
614
615         * verify.c: a typo slipped in and the code wont compile
616
617 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
618
619         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
620         disabled box instruction as it is doing the wrong thing
621         improved stack dump messages, now it is easier to debug type related issues
622
623
624 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
625
626         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
627
628 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
629
630         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
631         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
632         grouped with class and valuetype. This change will simply 
633         the code as it should be handled just like unmanaged pointers.
634
635 2007-07-19  Mark Probst  <mark.probst@gmail.com>
636
637         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
638
639 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
640
641         * verify.c: several stack merge issues fixed, reference comparisons now
642         check the type size. strict type check now works correctly.
643         added more uses of IS_MANAGED_POINTER macro.
644         fixed issues pointed by running the test suite against .net.
645         
646
647 2007-07-19  Mark Probst  <mark.probst@gmail.com>
648
649         * class.c, loader.c, class-internals.h: Removed the
650         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
651         defines.
652
653         * icall.c: Better error checking in some internal reflection
654         methods.
655
656 2007-07-18  William Holmes  <billholmes54@gmail.com>
657
658         * filewatcher.c : removed unused variable 'filename' in 
659           ves_icall_System_IO_FSW_SupportsFSW
660
661 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
662
663         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
664         obsolete, removed.
665
666 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
667
668         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
669         
670         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
671
672 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
673
674         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
675         Implement generics support.
676         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
677
678         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
679         type_args and method_args arguments.
680         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
681         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
682         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
683
684 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
685
686         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
687           It adds a rootimage parameter to mono_reflection_get_type_internal,
688           adds new function mono_reflection_get_type_with_rootimage and use
689           the rootimage to resolve the types instead of the current image
690
691 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
692
693         * culture-info-table.h: Forgot to update after r78304.
694
695 2007-07-13  Raja R Harinath  <rharinath@novell.com>
696
697         * class.c (mono_class_is_open_constructed_type)
698         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
699
700 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
701
702         * class.c (mono_bounded_array_class_get):  method fails if used with
703         an incomplete TypeBuilder enum (no basetype field), fixed it by 
704         avoiding calculating the size for such array as it cannot be instantiated.
705         Fix bug #82015
706
707 2007-07-12  Raja R Harinath  <rharinath@novell.com>
708
709         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
710         field.
711         * metadata.c, reflection.c: Update to changes.
712
713 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
714
715         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
716         mono_class_is_valid_enum, they are used to valide a enum when loading.
717         * reflection.c: used new functions to throw TypeLoadException when and
718         invalid enum is build with TypeBuilder. Fixes #82018
719   
720 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
721
722         * object.c: forgot commit of mono_class_setup_methods () to access
723         iface->methods.
724         * object-internals.h: added a few more handy fields to
725         MonoIMTCheckItem.
726
727 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
728
729         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
730         iface->methods.
731
732 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
733
734         * class-internals.h, object-internals.h, object.c: IMT-based
735         interface invocation core from Massimiliano Mantione
736         (massi@ximian.com) with a reworked arch-specific interface,
737         bsearch implementation and a few bugfixes and memory savings by me.
738
739 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
740
741         * class.c (mono_class_create_from_typedef): mono would segfault if 
742         an enum did not have a __value field. It now throws a TypeLoadException
743         for such cases. Fix bug #82022
744
745 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
746
747         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
748
749 2007-07-09  Mark Probst  <mark.probst@gmail.com>
750
751         * class.c (mono_class_init): If a class is already inited but has
752         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
753
754 2007-07-09  Mark Probst  <mark.probst@gmail.com>
755
756         * class.c: Properly handle the case of an unimplemented interface
757         method.  Fixes: 81673.
758
759 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
760
761         * class-internals.h, object.c: cleanup patch from massi: use
762         MonoVTable->interface_bitmap since the vtable interfaces offset array
763         is going away.
764
765 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
766
767         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
768         GetMDStreamVersion icall instead.
769
770 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
771
772         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
773         not use mono_dl_build_path() with a full library name: makes
774         fallbacks to libgaim and libfam work.
775
776 2007-07-06  William Holmes  <billholmes54@gmail.com>
777
778         * assembly.c: Added a continue statement in probe_for_partial_name when
779          parse_assembly_directory_name fails.  Fixes : 82002
780
781 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
782
783         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
784         and added a verification  for TYPEDBYREF.
785         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
786         make native int interchangeable with int32 and some small cleanup and formating.
787         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
788         handle byref of byref.
789         * verify.c (push_local): handle byref of byref.
790         * verify.c (do_binop): invalid mix of values is unverifiable
791         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
792         added visibility checks
793         * verify.c (field related method): added visibility checks
794         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
795
796 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
797
798         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
799         string.
800
801 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
802
803         * profiler.c (mono_profiler_load): Fix an off-by-one error.
804
805         * marshal.c (emit_marshal_string): When returning a string from managed code,
806         allways make a copy even for unicode strings. Fixes #81990.
807
808 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
809
810         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
811         of byref generic inst types (bug #81997).
812
813 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
814
815         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
816         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
817
818 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
819
820         * marshal.c (emit_marshal_string): Add support for unicode strings in
821         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
822
823 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
824
825         * verify.c: field load/store are now verified, missing only access checks now
826
827 2007-06-28  Martin Baulig  <martin@ximian.com>
828
829         * mono-debug.c (mono_debug_debugger_version): New public variable.
830
831 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
832
833         * locales.c: When constructing DateTimeFormat or NumberFormat for
834         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
835         MonoCultureInfo contructed from the current locale is always
836         read-only and has UseUserOverride set to true. All MonoCultureInfo
837         instances returned for GetCultures have both IsReadOnly and
838         UseUserOverride set to true. Fixes part of bug #81930.
839
840 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
841
842        * icall-def.h: Update System.__ComObject icalls
843        * marshal.c: Avoid managed transition (and object creation)
844        when looking up COM interface in RCW.
845        * marshal.h: Ditto.
846        
847        Code is contributed under MIT/X11 license.
848
849 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
850
851         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
852         to avoid crashes during assembly unloading.
853
854 2007-06-22  Raja R Harinath  <rharinath@novell.com>
855
856         Fix MethodInfo.IsGenericMethodDefinition
857         * reflection.c (mono_reflection_bind_generic_method_parameters):
858         Rearrange code to ensure we always uses a generic method definition.
859         * class.c (mono_class_inflate_generic_method_full): Set
860         'generic_container' field only for generic method definitions.
861         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
862         Use presense of 'generic_container' field as indication of being a
863         generic method definition.
864
865 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
866
867         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
868
869         * object-internals.h: Reflect changes in the layout of the managed Delegate
870         class.
871         
872         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
873         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
874         runtime memory used by the dynamic method. Fixes #77146.
875
876 2007-06-21  Dick Porter  <dick@ximian.com>
877
878         * file-io.h: 
879         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
880         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
881         81767.
882
883 2007-06-21  Raja R Harinath  <rharinath@novell.com>
884
885         * reflection.c (method_encode_methodspec): Add a tripwire.
886         * class.c (inflate_generic_type): The fully open generic type is
887         not the same as the generic type definition.
888
889 2007-06-21  Martin Baulig  <martin@ximian.com>
890
891         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
892
893         * mono-debug-debugger.h
894         (MonoDebuggerBreakpointInfo): Removed.
895         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
896         (mono_debugger_remove_breakpoint): Likewise.
897         (mono_debugger_breakpoint_callback): Likewise.
898         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
899
900 2007-06-21  Raja R Harinath  <rharinath@novell.com>
901
902         * metadata.c (mono_metadata_lookup_generic_class): The fully open
903         generic type is not the same as the generic type definition.
904         * class.c (mono_generic_class_get_class): Likewise.
905
906 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
907
908         * icall.c: The second argument to 
909         System.Reflection.MethodBase.GetMethodFromHandleInternalType
910         is a MonoType not a MonoClass.
911
912 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
913
914         * verify.c: support for function pointers in the verifier
915
916 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
917
918         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
919
920 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
921
922         * assembly.c: removed Mono.Data.SqliteClient from the list of
923         forward-compatible assemblies as it breaks the ABI (bug #81899).
924
925 2007-06-19  Raja R Harinath  <rharinath@novell.com>
926
927         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
928         lookup/update with the loader lock.
929         * reflection.c (mono_class_bind_generic_parameters): No need to
930         protect mono_metadata_lookup_* with the loader lock.
931         * class.c (inflate_generic_type): Likewise.
932         
933         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
934         on a generic instantiated type.
935
936 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
937
938         *verify.c: produce meanfull error messages on verification error
939         *verify.c: fixed some cases of verification errors reported as validation errors
940         *pedump.c: fixed the error name array, now it shows validation errors properly
941         *verify.h: fixed the contant that should be used for verification errors
942
943 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
944
945         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
946         for bug #77596, 81858 and 80743 (generics data structures on domain
947         unload).
948
949 2007-06-15  Raja R Harinath  <rharinath@novell.com>
950
951         Avoid allocating 'MonoGenericContext' on the heap.
952         * class-internals (_MonoMethodInflated::context): Make field
953         inline, not a pointer.
954         * loader.c (method_from_methodspec): Allocate 'new_context' on the
955         stack.  Use the context embedded within the inflated method as the
956         hash key, rather than 'new_context'.
957         * class.c (inflate_generic_context): Simplify.  Return a struct
958         rather than allocating on the heap.
959         (mono_class_inflate_generic_method_full): Update to changes.  Now,
960         doesn't salt away a copy of the context -- simplifying the
961         lifetime rules of a 'MonoGenericContext *'.
962         (mono_method_get_context): Return pointer to embedded context.
963         (setup_generic_array_ifaces): Allocate temporary context on stack.
964         * reflection.c (inflate_mono_method): Likewise.
965         (mono_reflection_bind_generic_method_parameters): Likewise.
966         Use the context embedded within the inflated method as the hash key.
967
968         Avoid a source of allocation of 'MonoGenericContext'.
969         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
970         and 'cached_context' fields into embedded 'MonoGenericContext' field.
971         * class.c: Update to changes.
972         (mono_generic_class_get_context): Simplify drastically.  Now just
973         returns a pointer to the field.
974         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
975         argument as a const pointer.
976         (mono_metadata_generic_context_equal): Likewise.
977         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
978         Update to changes.
979
980 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
981
982         * verify.c improved the handling of brtrue/brfalse, factored out common code
983
984 2007-06-14  Raja R Harinath  <rharinath@novell.com>
985
986         Kill MonoGenericMethod.
987         * class-internals.h (MonoGenericContext::method_inst): Rename from
988         'gmethod' and convert to a MonoGenericInst.
989         (MonoGenericMethod): Remove.
990         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
991         * loader.c (method_from_methodspec): Update to changes.  Use a
992         MonoGenericContext as the key to the hashtable.
993         * metadata.c (mono_metadata_generic_context_equal): Rename from 
994         'mono_metadata_generic_method_equal' and take MonoGenericContext.
995         (mono_metadata_generic_context_hash): Likewise from
996         'mono_metadata_generic_method_hash'.  Change hash function.
997         (mono_metadata_load_generic_params): Update to changes.
998         (mono_get_shared_generic_method): Remove.
999         * metadata-internals.h (mono_get_shared_generic_method): Remove.
1000         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
1001         (inflate_generic_context): Likewise.
1002         (mono_class_inflate_generic_method_full): Likewise.
1003         (setup_generic_array_ifaces): Likewise.
1004         (mono_class_create_from_typespec): Likewise.
1005         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
1006         (method_encode_methodspec): Update callsite.
1007         (reflection_methodbuilder_to_mono_method): Update to changes.
1008         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
1009         MonoGenericContext as the key to the hashtable.
1010         (inflate_mono_method): Update to changes.
1011
1012         * class-internals.h (MonoGenericMethod::container): Remove.
1013         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1014
1015 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
1016
1017         * profiler-private.h, profiler.c, profiler.h: added API to profile
1018         exception events.
1019
1020 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1021
1022         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
1023
1024 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1025
1026         * verify.c: method invocation is now validated, now we verify parameter types on stack.
1027         Fixed overflow and underflow not aborting the verification process.
1028
1029 2007-06-13  Mark Probst  <mark.probst@gmail.com>
1030
1031         * class-internals.h (MonoStats): Added stats entries for dynamic
1032         code allocations.
1033
1034 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
1035
1036         * loader.c (mono_free_method): Free header->locals and header->clauses.
1037
1038         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
1039         dynamic case.
1040
1041         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
1042
1043         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
1044
1045 2007-06-12  Raja R Harinath  <rharinath@novell.com>
1046
1047         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
1048         the tables.
1049
1050 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1051
1052         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
1053
1054 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1055
1056         MonoGenericMethod on a diet
1057         * class-internals.h (_MonoMethodInflated::reflection_info): Move
1058         here ...
1059         (_MonoGenericMethod::reflection_info): ... from here.
1060         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1061         Update to changes.
1062         * reflection.c (inflate_mono_method): Likewise.
1063         (mono_reflection_bind_generic_method_parameters): Likewise.
1064
1065 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1066
1067         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
1068         *verify.c: factored long ldarg forms to share code with short forms
1069
1070 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1071
1072         *verify.c: fixed code formating factored some duplicate code
1073         into a new function
1074
1075         *verify.h: fixed binary incompatibility introduced earlier
1076
1077         *pedump.c: fixed formating
1078
1079 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1080
1081         Fix assertion when disassembling Mono.C5.dll
1082         * loader.c (method_from_methodspec): Avoid inflating a method
1083         twice with the same context.  If the methodref is inflated, use
1084         the declaring method instead.
1085
1086         * class.c (mono_class_from_generic_parameter): Fix case similar to
1087         bug #81830 handled below, but for method containers.
1088
1089 2007-06-10  Raja R Harinath  <harinath@gmail.com>
1090
1091         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
1092         get_shared_generic_class.  Directly inflate the instance.
1093         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
1094         (inflate_generic_class): Delete.
1095         (get_shared_generic_class): Delete.  Move setting of
1096         'cached_class' and 'cached_context' ...
1097         * metadata.c (mono_metadata_lookup_generic_class): ... here.
1098
1099         * metadata.c (mono_metadata_lookup_generic_class): Change
1100         signature to take the components of a MonoGenericClass rather than
1101         an allocated MonoGenericClass.  Change semantics to be intern-like.
1102         * reflection.c (mono_class_bind_generic_parameters): Update to
1103         changes.  Make locking region tighter.
1104         * class.c (inflate_generic_class): Update to changes.
1105         (get_shared_generic_class): Likewise.
1106         * metadata-internals.h: Likewise.
1107
1108         * reflection.c (mono_class_bind_generic_parameters): Take and
1109         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
1110         (mono_reflection_bind_generic_parameters): Use
1111         'mono_class_bind_generic_parameters' rather than duplicate the code.
1112         * class.c (mono_bounded_array_class_get): Update to changes.
1113         * object-internals.h: Likewise.
1114
1115         * reflection.c (mono_class_bind_generic_parameters): Only support
1116         parameterizing generic type definitions.  Remove support for other
1117         open types.
1118
1119 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
1120
1121         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
1122
1123         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
1124         in the dynamic case.
1125
1126 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
1127
1128         * threads.c: When cleaning up thread, reset the Background bit.
1129         Fixes bug #81720.
1130
1131 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
1132
1133        * metadata.c: Move variable declarations to top of scope.
1134        * verify.c: Move variable declarations to top of scope.
1135
1136        Code is contributed under MIT/X11 license.
1137
1138 2007-06-08  Raja R Harinath  <rharinath@novell.com>
1139
1140         * reflection.c (mono_class_bind_generic_parameters): Replace
1141         open-coded loop with mono_metadata_inflate_generic_inst.
1142
1143         * class.c (get_shared_generic_class): Don't call
1144         mono_get_shared_generic_inst.  Use the container's own
1145         'class_inst'.
1146
1147         * metadata.c (mono_metadata_load_generic_params): Move
1148         initialization of 'context' field here from ...
1149         * class.c (mono_class_create_from_typedef): ... here, and ...
1150         * loader.c (mono_get_method_from_token): ... here.
1151
1152         * class.c (get_shared_generic_class): Rename from
1153         mono_get_shared_generic_class and make static.
1154         (mono_get_shared_generic_inst): Move to metadata.c.
1155         * loader.c (mono_get_shared_generic_method): Likewise.
1156         * class-internals.h, metadata-internals.h: Update to changes.
1157
1158         Fix #81830
1159         * class.c (mono_class_from_generic_parameter): Don't assume a
1160         generic container owner exists.  Generic containers from monodis
1161         don't have any.
1162
1163 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
1164
1165         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
1166         * verify.h: new typedefs to returns the non-verifiable status
1167         * verify.c: initial implementation of generics, stack merging and object compatibility check
1168
1169 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1170
1171         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1172         a MonoInternalHashTable again (fixed bug in internal hash table
1173         code).
1174
1175 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1176
1177         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1178         MonoInternalHashTable again (fixed bug in internal hash table
1179         code).
1180
1181 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1182
1183         * class.c, image.c, class-internals.h, domain.c,
1184         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
1185         changes.  Have to figure out what makes them break the SWF
1186         regression.
1187
1188 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1189
1190         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1191         a MonoInternalHashTable now.
1192
1193 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1194
1195         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1196         MonoInternalHashTable now.
1197
1198 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
1199
1200         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
1201         invoke_impl code.
1202
1203         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
1204
1205         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
1206         dependent trampoline.
1207
1208         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1209
1210         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
1211
1212 2007-05-29  Robert Jordan  <robertj@gmx.net>
1213
1214         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
1215
1216 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
1217
1218         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
1219
1220 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
1221
1222        * marshal.c: Fix interface lookup loops for
1223        cominterop_get_com_slot_for_method and 
1224        cominterop_get_method_interface. Only need to lookup
1225        if type is a class, else use interface type method is on.
1226
1227        Code is contributed under MIT/X11 license.
1228
1229 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1230
1231         * reflection.c: HasSecurity can be present even if no specially 
1232         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
1233         SecurityAttribute). Fix CAS regression tests on buildbot.
1234
1235 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
1236
1237        * appdomain.c: Add configure checks for header files.
1238        * image.c: Add configure checks for header files.
1239        * file-io.c: Add configure checks for header files.
1240        * debug-mono-symfile.c: Add configure checks for header files.
1241        * threadpool.c: Add configure checks for header files.
1242        * console-io.c: Add configure checks for header files.
1243        * profiler.c: Add configure checks for header files.
1244        * rawbuffer.c: Add configure checks for header files.
1245        * icall.c: Add configure checks for header files.
1246        * rand.c: Add configure checks for header files.
1247        * socket-io.c: Add configure checks for header files.
1248
1249        Code is contributed under MIT/X11 license.
1250
1251 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
1252
1253         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1254         assertion as it breaks the build.
1255         
1256         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1257
1258         * reflection.c (lookup_custom_attr): Make a copy here too.
1259
1260         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1261         dynamic images.
1262
1263         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1264         images.
1265
1266         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1267         info.
1268
1269 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1270
1271         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1272         (load_cattr_value): Ditto.
1273
1274 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1275
1276         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1277
1278 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1279
1280         * threads.c: In "start_wrapper", set apartment_state to MTA if
1281         apartment_state is Unknown and we're running on 2.0 profile or
1282         higher.
1283         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1284         to main method, then set apartment_state to Unknown on 1.0 profile,
1285         and MTA on 2.0 profile.
1286
1287 2007-05-16  Jb Evain  <jb@nurv.fr>
1288
1289         * class-internals.h (MonoDefaults): Add an attribute_class and
1290           customattribute_data_class.
1291         * domain.c (mono_init_internal): Populate them.
1292         * reflection.c: Use them to remove duplicates. Make a vew
1293         MonoClass variables `static'.
1294
1295 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1296
1297         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1298         step in implementing IMT, so that all isinst checks now can go
1299         through the bitmap.
1300         This was needed because vtables for TransparentProxy need to look
1301         like the vtable of the "target" class, so they need to point to
1302         its interface bitmap directly.
1303
1304         * object.c: inside "mono_class_create_runtime_vtable" and
1305         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1306
1307 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1308
1309         * object-internals.h
1310           culture-info.h : added territory field in MonoCulture and
1311           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1312         * locales.c : fill territory field above too.
1313         * culture-info-table.h : regenerated.
1314
1315 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1316
1317         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1318         Fixes #81599.
1319
1320 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1321
1322         * object.c: Always initialize apartment, even if 
1323         there is no custom attributes on entry point.
1324         
1325         Code is contributed under MIT/X11 license.
1326
1327 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1328
1329         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1330         * metadata.c: If no encoding is set, check for unicode
1331         on class.
1332         
1333         Code is contributed under MIT/X11 license.
1334
1335 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1336
1337         * threads.c: Handle if mono_thread_current returns NULL 
1338         
1339         Code is contributed under MIT/X11 license.
1340
1341 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1342
1343         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1344         in start_wrapper. Added mono_thread_init_apartment_state and
1345         mono_thread_cleanup_apartment_state.
1346         * object.c: Initialize thread apartment state on main thread
1347         by checking for STAThreadAttribute on entry point.
1348         * object-internals.h: Add apartment_state field to MonoThread.
1349         * threads-types.h: Add unmanaged definition of 
1350         System.Threading.ApartmentState, MonoThreadApartmentState.
1351         
1352         Code is contributed under MIT/X11 license.
1353         
1354 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1355
1356         * class.c: Fix windows build.
1357         * class-internals.h: Fix windows build.
1358         
1359         Code is contributed under MIT/X11 license.
1360
1361 2007-05-08  Robert Jordan  <robertj@gmx.net>
1362
1363         * process.c (CreateProcess_internal):
1364         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1365         .CreateNoWindow was specified. Fixes #81496.
1366
1367 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1368
1369         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1370         step in implementing IMT, replaced it with two compact arrays
1371         (interfaces_packed and interface_offsets_packed) and a bitmap that
1372         is used for isinst checks (interface_bitmap).
1373
1374         * class.c: (compare_interface_ids): compare function to pass to
1375         bsearch when looking for an interface with a given id.
1376         (mono_class_interface_offset): reimplemented using bsearch on
1377         interfaces_packed, getting the offset from interface_offsets_packed.
1378         (print_implemented_interfaces): utility debugging function.
1379         (setup_interface_offsets): reworked to initialize interfaces_packed,
1380         interface_offsets_packed and interface_bitmap.
1381
1382         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1383         with uses of interfaces_packed and interface_offsets_packed.
1384
1385 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1386
1387         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
1388         mono_class_interface_offset prototype to wrap all accesses to
1389         "MonoClass.interface_offsets".
1390
1391         * class.c: Implemented mono_class_interface_offset, and wrapped all
1392         accesses to "MonoClass.interface_offsets".
1393
1394         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
1395         "MonoClass.interface_offsets".
1396
1397 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1398
1399         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1400         GetMethodFromHandle overloads (bug #78637).
1401
1402 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1403
1404         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1405         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1406
1407 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1408
1409         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1410         #81498.
1411
1412         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1413         gracefully.
1414         (mono_custom_attrs_from_index): Ditto.
1415
1416         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1417         Fixes #81501.
1418
1419 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1420
1421         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1422         is now allocated from a mempool.
1423
1424 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1425
1426         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1427         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1428
1429 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1430
1431         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1432         mono_loader_clear_error () too late. Fixes #81463.
1433
1434 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1435
1436         * culture-info-table.h : regenerated.
1437
1438 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1439
1440         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1441         is missing.
1442
1443 2007-04-25  Dick Porter  <dick@ximian.com>
1444
1445         * Makefile.am: Put the mingw enforced-optimisation back into the
1446         PLATFORM_WIN32 section.
1447
1448 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1449
1450         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1451         patch.
1452
1453         * image.c (mono_image_load_module): New API function to load a module reference.
1454
1455         * image.c (load_modules): Load modules lazily. Fixes #80812.
1456
1457         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1458         
1459         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1460
1461         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1462         to mono_image_load_module_dynamic.
1463
1464 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1465
1466         * marshal.c: Fix calling convention for CCW on non-windows
1467         platforms. STDCALL on windows, CDECL everywhere else to work 
1468         with XPCOM and MainWin COM.
1469         
1470         Code is contributed under MIT/X11 license.
1471
1472 2007-04-23  Martin Baulig  <martin@ximian.com>
1473
1474         Fix #80969.
1475
1476         * loader.c
1477         (method_from_memberref): Added `gboolean *used_context' argument.
1478         (mono_get_method_from_token): Likewise.
1479         (mono_get_method_full): Don't insert the method in the cache when
1480         `used_context' is true.
1481
1482 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1483
1484         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1485
1486         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1487         create new MonoTypes for returned types.
1488         * class.c (mono_generic_class_get_class): Export mono-internal.
1489         * class-internals.h: Update to changes.
1490
1491 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1492
1493         * threadpool.c, threadpool.h, icall-def.h: patch from
1494         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
1495
1496 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
1497
1498         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
1499         
1500         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
1501
1502         * threads.c (mono_thread_get_stack_bounds): New helper function.
1503
1504         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
1505         Correctly compute stack bounds when attaching. Fixes #81394.
1506
1507 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
1508
1509         * reflection.c: fix handling of doubles in custom attributes
1510         for the arm-fpa format (bug #81368).
1511
1512 2007-04-18  Raja R Harinath  <rharinath@novell.com>
1513
1514         * reflection.c (assembly_add_win32_resources): Mildly relax an
1515         bounds check to let the end pointer point just past the end of the
1516         allocated buffer.  (may fix #81384)
1517
1518 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1519
1520         * culture-info-table.h : regenerated.
1521
1522 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
1523
1524         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
1525         the thread is aborted early.
1526
1527 2007-04-05  Dick Porter  <dick@ximian.com>
1528
1529         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
1530         FindFirstFile()/FindNextFile() to find entries.  This lets the
1531         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
1532         81038.
1533
1534         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
1535         the parameters of
1536         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
1537
1538 2007-04-04  Martin Baulig  <martin@ximian.com>
1539
1540         * debug-helpers.c
1541         (mono_method_desc_full_match): Add support for nested classes.
1542
1543 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
1544
1545         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
1546
1547 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
1548
1549         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
1550         waiting for too many threads.
1551
1552 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1553
1554         * environment.c: Fix return value check on uname so we can get the 
1555         executing version on Solaris operating systems.
1556
1557 2007-03-28  Jb Evain  <jbevain@gmail.com>
1558
1559         * class.c (mono_type_get_name_recurse): Complete the
1560         fix for the creation of assembly qualified names for
1561         pointer types. Fixes #81208.
1562
1563 2007-03-27  Dick Porter  <dick@ximian.com>
1564
1565         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
1566         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
1567         changed.
1568
1569         * threads.c
1570         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
1571         the value of ReleaseMutex().
1572
1573 2007-03-27  Dick Porter  <dick@ximian.com>
1574
1575         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
1576         in little-endian order, not network endian, so must be converted
1577         to host endian here.  Fixes bug 80593.
1578
1579 2007-03-22  Jb Evain  <jbevain@gmail.com>
1580
1581         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
1582         qualified names for pointer types. Fixes #81208.
1583
1584 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
1585
1586         * marshal.c: Add support for PreserveSigAttribute. 
1587         
1588         Code is contributed under MIT/X11 license.
1589
1590 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
1591
1592         * process.c: Fix endianness issues. Fixes #81126.
1593
1594         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
1595         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
1596
1597         * image.c (mono_image_lookup_resource): Make this work on big-endian
1598         machines.Change API contract so the caller needs to free the return value.
1599         
1600         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
1601         API change.
1602         
1603 2007-03-14  Martin Baulig  <martin@ximian.com>
1604
1605         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
1606         mono_type_get_desc() as well.
1607
1608 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
1609
1610         * icall.c:  Fix environ access in VS.  
1611         
1612 2007-03-13  Alp Toker  <alp@atoker.com>
1613
1614         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1615         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1616         #63841.
1617
1618 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
1619
1620         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
1621         circular references among dynamic methods. Fixes #81091.
1622
1623         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
1624
1625 2007-03-09  Martin Baulig  <martin@ximian.com>
1626
1627         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
1628
1629 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
1630
1631         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
1632         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
1633         
1634         Code is contributed under MIT/X11 license.
1635         
1636 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
1637
1638         * loader.c: Reapply patch for bug #79424.
1639
1640 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1641
1642         * metadata.c (mono_type_to_unmanaged): Only convert object to
1643         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
1644
1645 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
1646
1647         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
1648         (and incorrectly set) is_reference field from MonoGenericInst.
1649
1650 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1651
1652         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
1653         a little earlier.
1654
1655         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
1656
1657         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
1658
1659 2007-03-05  Miguel de Icaza  <miguel@novell.com>
1660
1661         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
1662         FileOptions.1 value to mean "temporary", map that to
1663         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
1664
1665         Fixes 80688
1666
1667 2007-03-03  Marek Habersack  <mhabersack@novell.com>
1668
1669         * appdomain.c: implement MS .Net style shadow copying. Copies of
1670         the assemblies are made in a subdirectory of the dynamic base
1671         directory, the assembly names are preserved.
1672         Copy .mdb and .config files along with the assemblies being shadowed.
1673
1674 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1675
1676         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
1677         (emit_marshal_handleref): Ditto.
1678
1679         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
1680         on Visual C++. Fixes #80671.
1681
1682 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
1683
1684         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
1685         for clone operations.
1686
1687 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1688
1689         * marshal.c: Fix warnings.
1690
1691 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
1692
1693         * loader.c: allow case-insensitive matching of the dll name
1694         in dllmap handling when prefixed with "i:".
1695
1696 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
1697
1698         * threads.c: Fix #ifdef for dummy_apc function for VS.
1699
1700 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
1701
1702         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
1703
1704 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
1705         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
1706         giving precedence to the methods with a fully qualified name
1707         (InterfaceName.MethodName) when building the interface sections
1708         of the vtable.
1709
1710 2007-02-16  Dick Porter  <dick@ximian.com>
1711
1712         * threadpool.c (append_job): Fix fast-path array handling, so it's
1713         less likely the array will grow exponentially when the load is
1714         heavy.
1715
1716 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1717
1718         * metadata-internals.h, loader.c: fix dllmap lookup order
1719         for non-function maps, too, and prepare for fallback code.
1720
1721 2007-02-12  Robert Jordan  <robertj@gmx.net>
1722
1723         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
1724         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
1725         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
1726         GlobalFree. Fixes a part of bug #77075.
1727
1728 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
1729
1730         * loader.c: implemented typedef parent in field memberref.
1731
1732 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
1733
1734         * marshal.c: Fix warnings and remember to call Release on
1735         IUnknown of RCW.
1736         
1737         Code is contributed under MIT/X11 license.
1738
1739 2007-02-10  Miguel de Icaza  <miguel@novell.com>
1740
1741         * class-internals.h: Add MonoHandleRef definition, and
1742         handleref_class to mono_defaults. 
1743
1744         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
1745         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
1746
1747         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
1748         (do nothing on this stage)
1749         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
1750         (emit_marshal_handleref): New method, used for argument handling
1751         of HandleRefs. 
1752
1753 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
1754
1755         * class.c (mono_class_setup_parent): Lazily init com types.
1756         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
1757         init com types.
1758         * object.c (mono_remote_class_vtable): Lazily init com types.
1759         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
1760         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
1761         * domain-internals.h: Expose mono_init_com_types.
1762         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
1763         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
1764         Add support for COM Callable Wrapper marshalling.
1765         * marshal.h: Add icall definitions.
1766         * gc.c: Handle freeing of CCWs in finalizer code.
1767         
1768         Code is contributed under MIT/X11 license.
1769
1770 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
1771
1772         * reflection.c: changed all the signature encoding code to use
1773         a variable-sized buffer.
1774
1775 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1776
1777         * marshal.c: locking fixes: never take the loader lock
1778         or other runtime locks when holding the marshal lock
1779         (fixes bug#80664).
1780
1781 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
1782
1783         * marshal.c: make the delegate function pointer mapping
1784         work for the moving GC.
1785
1786 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
1787
1788         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
1789         for bug #80618.
1790
1791 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1792
1793         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
1794         gmodule.
1795
1796 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
1797
1798         * threadpool.c: made the code moving-GC safe.
1799
1800 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1801
1802         * assembly.c, boehm-gc.c, class-internals.h, class.c,
1803         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
1804         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
1805         warning cleanup.
1806         * reflection.c: warning cleanup, some threading and moving GC fixes.
1807
1808 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
1809
1810         * class.c, loader.c: create the needed Set/Get/Address array methods
1811         as well as the .ctors in mono_class_init (), fixes bug #80567.
1812
1813 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
1814
1815         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
1816         we doesn't decrease its alignment. Should fix the sparc build.
1817
1818 2007-01-24  Dick Porter  <dick@ximian.com>
1819
1820         * socket-io.c
1821         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
1822         Create the returned object if we need to ignore an unsupported
1823         socket option.  Fixes a segfault reported by Atsushi.
1824
1825 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
1826
1827         * class.c, object.c: restrict GC-tracked fields to
1828         UIntPtr fields used inside corlib, so we provide better
1829         type info to the GC and also allow broken packing as in
1830         bug #80580.
1831
1832 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
1833
1834         * sgen-gc.c: removed duplicated function.
1835
1836 2007-01-19  Miguel de Icaza  <miguel@novell.com>
1837
1838         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
1839         value that means that the value is not supported, but that we
1840         should not return a failure, but instead report this as a
1841         successful operation.
1842
1843 2007-01-19  Raja R Harinath  <rharinath@novell.com>
1844
1845         Fix tests/bug79956.2.il
1846         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
1847         (mono_generic_class_get_class): If the generic definition in an
1848         enum, copy over other fields related to it.
1849
1850 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
1851
1852         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
1853         genericinst enums (bug #79215).
1854
1855 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
1856         * class.c: Fix bug 80307.
1857
1858 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
1859
1860         * image.c: if the file table is not present, try to load
1861         all the modules, since we don't have info about them
1862         having or not metadata (bug #80517).
1863         * assembly.c: allow mono_assembly_load_references () to
1864         work for netmodules.
1865
1866 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1867
1868         * image.c, metadata-internals.h, object.c: execute module
1869         cctors when running on the 2 runtime if present (bug #80487).
1870
1871 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
1872
1873         * icall.c: optimized InitializeArray() on bigendian.
1874
1875 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
1876
1877         * icall.c: fix for the broken ARM FPA double format.
1878
1879 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
1880
1881         * icall.c: handle endian issues for r4 and r8 types, too, in
1882         the InitializeArray() icall.
1883
1884 2007-01-15  Miguel de Icaza  <miguel@novell.com>
1885
1886         * loader.c (mono_loader_error_prepare_exception): Clear the error
1887         once we have extracted the information from it, do this before we
1888         call into the JIT's class loading mechanisms.
1889
1890         * object.c (mono_class_create_runtime_vtable): Do not clear the
1891         loader error before calling mono_class_get_exception_for_failure
1892         as the loader error is needed inside
1893         mono_class_get_exception_for_failure to throw the error (thinko).
1894
1895         Fixes #80521
1896         
1897 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
1898
1899         * reflection.c: align fields rva data so it's faster to load at
1900         runtime.
1901
1902 2007-01-12  Raja R Harinath  <rharinath@novell.com>
1903
1904         Prepare to simplify GenericMethod handling.
1905         * class-internals.h (mono_method_get_context): New accessor function.
1906         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
1907         rather than directly accessing '->context' field.
1908
1909         * class-internals.h (_MonoGenericParam.method): Move ...
1910         (_MonoGenericContainer): ... here.  Add into union with klass field.
1911         * class.c, icall.c, loader.c, metadata.c, reflection.c:
1912         Update to changes.
1913
1914 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
1915
1916         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
1917         the wrapper type enum and reduce relocations.
1918
1919 2007-01-12  Raja R Harinath  <rharinath@novell.com>
1920
1921         * reflection.c (inflate_mono_method): Reuse method instantiation
1922         from the generic method, if available.
1923
1924 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1925
1926         * marshal.c (emit_marshal_variant): Fix conv_arg
1927         type in last commit, based on whether parameter is byref.
1928         
1929 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1930
1931         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
1932         marshalling.
1933         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
1934         MONO_TYPE_OBJECT back for VARIANT support.
1935
1936 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1937
1938         * marshal.c, marshal.h, icall-def.h: Implement 
1939         Marshal.ReAllocCoTaskMem.
1940
1941 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
1942
1943         * marshal.c: memory retention fixes: use the proper
1944         image cache for runtime_invoke method lookups.
1945
1946 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
1947
1948         * mempool.c: added code to help debug mempool allocations.
1949
1950 2007-01-11  Dick Porter  <dick@ximian.com>
1951
1952         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
1953         support (experimenting with faking it with IP_MTU_DISCOVER for
1954         systems that don't have IP_DONTFRAGMENT.)
1955         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
1956         icall.
1957
1958         * icall-def.h: new System.Net.Sockets.Disconnect icall.
1959
1960         * socket-io.h: Add new fields to MonoSocketAsyncResult
1961         corresponding to the new ones in Socket.cs.
1962
1963 2007-01-11  Raja R Harinath  <rharinath@novell.com>
1964
1965         Fix IronPython regression mentioned in #80249
1966         * metadata.c (do_mono_metadata_parse_generic_class): Clear
1967         'cached_context' field, since it may have been initialized as a
1968         side-effect of metadata parsing.
1969
1970         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
1971         (_MonoGenericClass.cached_class): Move here and rename from lone
1972         remaining field of ...
1973         (_MonoInflatedGenericClass): ... this.  Remove.
1974         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
1975         to changes.
1976
1977         Fix mcs/tests/test-128.cs regression.
1978         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
1979         2007-01-10 change below.
1980         [MONO_TYPE_OBJECT]: Recurse into array case.
1981
1982 2007-01-11  Raja R Harinath  <harinath@gmail.com>
1983
1984         * class-internals.h (mono_get_inflated_generic_class): Remove.
1985         * class.c (mono_get_inflated_generic_class): Remove.
1986         (mono_generic_class_get_class): Rename from
1987         mono_class_create_generic.
1988         (mono_class_from_mono_type) [GENERICINST]: Use it.
1989         * reflection.c, metadata.c: Update to changes.  Use
1990         'mono_class_from_mono_type'.
1991
1992 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
1993
1994         * reflection.c: use passed type when encoding an array element
1995         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
1996
1997 2007-01-09  Robert Jordan  <robertj@gmx.net>
1998
1999         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
2000         result arguments (someDelegate.EndInvoke (unrelatedAres)).
2001         Fixes bug #80392.
2002
2003 2007-01-09  Raja R Harinath  <rharinath@novell.com>
2004
2005         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
2006
2007         * object.c (set_value): Avoid aliasing between type->data.klass
2008         and type->data.generic_class.
2009
2010         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
2011
2012 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2013
2014         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
2015         between type->data.klass and type->data.generic_class.
2016
2017 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
2018
2019         * marshal.c: In MS.NET, StringBuilder objects are not copied by
2020         value in out parameters.
2021
2022 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2023
2024         Simplify invariant for MonoGenericClass::klass field.
2025         * class.c (mono_class_create_generic): Verify 'klass' is null.
2026         * metadata.c (do_mono_metadata_parse_generic_class): Don't
2027         initialize 'klass' field.
2028
2029 2007-01-05  Raja R Harinath  <rharinath@novell.com>
2030
2031         Ongoing work to avoid redundant data and simplify invariants.
2032         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
2033         'generic_class', and change type to a GenericInst.
2034         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
2035         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2036
2037 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
2038
2039         * class.c : skip io-layer under PLATFORM_WIN32.
2040
2041 2007-01-03  Tor Lillqvist  <tml@novell.com>
2042
2043         Fix #80305: In a bundled executable, look in the bundled exe
2044         assembly to determine the runtime version. Add the possibility to
2045         bundle also the machine.config file.
2046         
2047         * assembly.c (mono_assembly_open_from_bundle): Make
2048         non-static. Allow being called even if we have no bundled
2049         assemblies, and return NULL right away in that case.
2050
2051         * domain-internals.h: Declare mono_assembly_open_from_bundle()
2052         here.
2053
2054         * domain.c (app_config_parse): Take an assembly exe file name as
2055         parameter instead of a config file name. Check for a bundled
2056         config file for that assembly by calling
2057         mono_config_string_for_assembly_file() (see below) before looking
2058         for one in the file system.
2059         (get_runtimes_from_exe): Corrsponding change to call of
2060         app_config_parse().
2061         (get_runtimes_from_exe): Check for bundled assembly exe file first
2062         by calling mono_assembly_open_from_bundle(). If no bundled
2063         assembly exe file is found, call mono_image_open() as before to
2064         look it up in the file system.
2065
2066         * mono-config.c: Add variable bundled_machinec_onfig.
2067         (mono_config_string_for_assembly_file): New function.
2068         (mono_config_for_assembly): Move code snippet that looks for a
2069         bundled assembly .config file into the above new function. Call
2070         it.
2071         (mono_register_machine_config, mono_get_machine_config): New
2072         functions to set and retrieve
2073
2074         * assembly.h: Declare mono_register_machine_config().
2075
2076         * mono-config.h: Declare mono_get_machine_config() and
2077         mono_config_string_for_assembly_file().
2078
2079         * icall.c: No declaration of environ necessary on Win32. It is
2080         declared (as a macro expanding to a function call) in stdlib.h.
2081         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
2082         New internal mono function. Returns the value of
2083         mono_get_machine_config() as a Mono string.
2084
2085         * icall-def.h: Add get_bundled_machine_config().
2086
2087 2007-01-04  Raja R Harinath  <rharinath@novell.com>
2088
2089         Remove redundant field
2090         * class-internals.h (_MonoGenericContext.container): Remove field.
2091         * loader.c (mono_method_get_signature_full): Don't parse a
2092         "container" for a signature parse when the signature is inflated
2093         immediately.
2094         (method_from_methodspec): Likewise, for a generic_inst.
2095         * class.c, metadata.c, reflection.c: Update to changes.
2096
2097 2006-01-04  Raja R Harinath  <rharinath@novell.com>
2098
2099         * class-internals.h (_MonoGenericClass): Rename 'context' field to
2100         'cached_context', and change semantics -- it starts off NULL, and
2101         is initialized on demand.
2102         * class.c (mono_generic_class_get_context): New accessor to
2103         replace 'context' field accesses.
2104         (mono_class_get_context): New helper.
2105         (*): Update to changes.
2106         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
2107
2108 2007-01-03  Miguel de Icaza  <miguel@novell.com>
2109
2110         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
2111         before the memcpy.   Fixes Marshal2 regression.
2112
2113 2007-01-02  Jb Evain  <jbevain@gmail.com>
2114
2115         * blob.h: add a MONO_TYPE_ENUM definition
2116         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
2117         fix the encoding of arrays of enums in custom attributes.
2118
2119         Fixes #79666.
2120
2121 2007-01-01  Miguel de Icaza  <miguel@novell.com>
2122
2123         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
2124         string is null terminated, but only cut the string short if it
2125         overflows the buffer.   
2126         
2127         (mono_string_to_byvalstr): Also fix this routine.   The code here
2128         was not properly terminating a string (it was only terminated
2129         because of the previous catch-all memset). 
2130
2131         I left the memset, because I do not know if applications expect
2132         the runtime to clear this region. 
2133
2134         Fixes #79944.
2135
2136         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
2137         Clear the error before returning to unmanaged code to prevent the
2138         runtime from being confused later on (fixes  80420).
2139         (ves_icall_type_from_name): Always call mono_loader_clear_error
2140         after parsing a type that could have failed.
2141         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
2142
2143         * loader.c (mono_loader_clear_error): Fix indentation.
2144
2145 2006-12-28  Martin Baulig  <martin@ximian.com>
2146
2147         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
2148
2149 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2150
2151         * reflection.c: patch from Rolf Bjarne Kvinge to fix
2152         getting a token for an EnumBuilder.
2153
2154 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2155
2156         * reflection.c: be more careful in case resource generation
2157         fails to create the data array.
2158
2159 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2160
2161         * sgen-gc.c: write barrier for clone and fix unregister handles.
2162
2163 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2164
2165         * reflection.c: some fixes needed in the generics code for the moving GC.
2166
2167 2006-12-22  Robert Jordan  <robertj@gmx.net>
2168
2169         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
2170         account. Fixes bug #80299.
2171
2172 2006-12-21  Raja R Harinath  <rharinath@novell.com>
2173
2174         Fix WaitHandle usage in delegates.
2175         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
2176         * object.c (mono_wait_handle_new): Use the property set method to
2177         initialize the handle.
2178         (mono_wait_handle_get_handle): New.
2179         * threadpool.c (mono_async_invoke): Use it.
2180         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
2181         Likewise.
2182         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
2183
2184 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
2185
2186         * marshal.c (emit_marshal): Call emit_marshal_variant and
2187         emit_marshal_com_interface when applicable.
2188         (emit_marshal_variant, emit_marshal_com_interface): Add
2189         methods for this case and remove if's from emit_marshal_object.
2190         
2191 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
2192
2193         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
2194
2195 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
2196
2197         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
2198         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
2199         and GlobalFree on Windows. Remove FIXME.
2200
2201 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2202
2203         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
2204         implementation for managed objects.
2205
2206 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
2207
2208         * object.c: implemented code to be used for checking
2209         that no reference field overlaps with non-references.
2210
2211 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2212
2213         * threadpool.c: fix queue code to be compatible with the
2214         moving GC.
2215
2216 2006-12-18  Miguel de Icaza  <miguel@novell.com>
2217
2218         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
2219         in structures by throwing ArgumentNullException.
2220
2221         (emit_marshal_safehandle): Also when they are null parameters.
2222
2223         (emit_marshal_safehandle): Add support for ref
2224         SafeHandles parameters
2225
2226 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2227
2228         * profiler.c: updated to use the mono-dl API instead of
2229         gmodule.
2230
2231 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2232
2233         * profiler.c: updated to use the mono-dl dynamic loading
2234         API instead of gmodule.
2235
2236 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2237
2238         * profiler.c: use readlink, older versions of glib don't have
2239         g_file_read_link ().
2240
2241 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2242
2243         * profiler.c: try to detect the path to mono if libc fails to provide
2244         a useful name (bug #80286).
2245
2246 2006-12-16  Raja R Harinath  <rharinath@novell.com>
2247
2248         Fix #80242
2249         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
2250         instance, use the generic type definition instead.
2251         (ves_icall_Type_GetNestedTypes): Likewise.
2252         * class.c (mono_class_create_generic): Always set the
2253         nested_classes of a generic instance to NULL, even if the generic
2254         type definition has nested types.
2255
2256 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2257
2258         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2259         and fix on Linux.
2260         
2261 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2262
2263         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2264         my arguments were in the wrong order.   I also fixed the Windows
2265         version which seems to have had the same issue.
2266
2267         (mono_free_bstr): On Unix, this is g_free.
2268         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2269         conversions (for the tests in corlib to pass).
2270
2271 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2272
2273         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2274         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2275         exception if a ref SafeHandle in a struct has changed).
2276         
2277         (emit_struct_conv): Do not perform layout checks for classes
2278         derived from SafeHandle, as those are specially handled. 
2279
2280         (emit_object_to_ptr_conv): Add support for
2281         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2282
2283         (emit_marshal_safehandle): Implement conversion of return values
2284         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2285         
2286         * threads.c: WaitHandle now is compiled with two different handles
2287         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2288         for 2.0.
2289         
2290         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2291         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2292         these routines to cope with both kinds of fields.
2293
2294 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2295
2296         * metadata.c (mono_type_to_unmanaged): Handle the case where
2297         type->data.klass is a SafeHandle, and in that case, return the
2298         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2299         MONO_MARSHAL_CONV_SAFEHANDLE. 
2300
2301 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2302
2303         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2304         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2305         calling emit_marshal_object.
2306
2307         (emit_marshal_safehandle): Implement marshalling of
2308         SafeHandle parameters (no ref support yet).
2309
2310         (MarshalAction): Document the defines as I implement
2311         them for SafeHandle.
2312
2313         (emit_marshal_object): indentation police.
2314
2315         * class-internals.h: Define MonoSafeHandle.
2316         Add safehandle_class to MonoDefaults type.
2317
2318         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2319         list of classes to check for fields. 
2320
2321         * domain.c (mono_init_internal): Add SafeHandle to the list of
2322         mono_defaults loaded.
2323
2324 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2325
2326         Fix #80253
2327         * reflection.c (mono_reflection_bind_generic_parameters): If the
2328         generic type definition is a type builder, ensure that it is fully
2329         initialized before instantiating it.  Kill some dead code.
2330
2331 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2332
2333         * object.c: clear the loader_error () before loading
2334         more metadata stuff (bug #80258).
2335
2336 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2337
2338         * icall.c, icall-defs.h: type modifiers icalls for
2339         parameters and properties.
2340
2341 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2342
2343         * object.c, icall.c: fixed warnings.
2344
2345 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2346
2347         * marshal.c: fixed a couple of leaks and coding style in a few places.
2348
2349 2006-12-08  Dick Porter  <dick@ximian.com>
2350
2351         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2352         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2353         80173.
2354
2355 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2356
2357         * process.c: ProcessStartInfo may have only filename set and
2358         arguments can be NULL.
2359
2360 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2361
2362         * icall.c: fix leak found by Robert Jordan.
2363
2364 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2365
2366         * marshal.c, marshal.h: generate managed method to access an element
2367         of a multi-dimensional array.
2368
2369 2006-11-30  Paolo Molaro (lupus@ximian.com)
2370
2371         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2372
2373 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2374
2375         * icall.c: back out GetFields () fix until the serialization code is
2376         fixed to not depend on the incorrect behaviour.
2377
2378 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2379
2380         * profiler.c: provide defaults if none are set.
2381
2382 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2383
2384         * Makefile.am, attrdefs.h: new public header file with
2385         constants for attributes for use by embedders.
2386
2387 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2388
2389         * icall.c: GetFields () fix for bug #80064.
2390
2391 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
2392
2393         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
2394         removed long unused icalls.
2395
2396 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2397   
2398         * marshal.c: 
2399                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2400                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2401                 can be generated without a delegate class.
2402                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2403         
2404         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2405
2406 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2407
2408         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2409         #80069.
2410
2411 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2412
2413         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2414         icall-def.h: added icalls needed by System.GC.
2415
2416 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2417
2418         * loader.c: ensure the class in catch clauses is handled
2419         correctly for generics methods (fixes bug#79980).
2420
2421 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2422
2423         * monitor.h, monitor.c: added mono_locks_dump () function
2424         to help debug deadlocks involving managed locks.
2425
2426 2006-11-13  Dick Porter  <dick@ximian.com>
2427
2428         * file-io.c (get_file_attributes): If the file is a symlink try
2429         and get the stat data for the target, but also add the
2430         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2431         the specs for the windows symlink support, but will probably have
2432         to be reworked when I have test data from a vista machine.  Fixes
2433         bug 79887.
2434
2435 2006-11-13  Dick Porter  <dick@ximian.com>
2436
2437         * gc.c (mono_domain_finalize): 
2438         * marshal.c (mono_delegate_begin_invoke): 
2439         * threadpool.c (socket_io_init, mono_thread_pool_init)
2440         (mono_thread_pool_finish): 
2441         * monitor.c (mono_monitor_try_enter_internal): 
2442         * threads.c (mono_thread_resume, mono_thread_init)
2443         (mono_thread_suspend_all_other_threads)
2444         (mono_thread_execute_interruption): 
2445         * appdomain.c (mono_domain_unload): Check for NULL error returns
2446         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2447         75733.
2448
2449 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2450
2451         * process.c
2452         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2453         Only close the handle if the value of the handle is not
2454         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2455         robust.
2456
2457         Improvement for #75733, so that we do not run into this problem. 
2458
2459         
2460         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2461         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2462         internal variables.  Fixes #79462 
2463         
2464
2465 2006-11-09  Dick Porter  <dick@ximian.com>
2466
2467         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2468         Use poll() not select().  Fixes bug 79397.
2469
2470 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2471
2472         Fix #79872
2473         * assembly.c (mono_assembly_load_from_full): Check that the given
2474         image has an assembly manifest.
2475
2476 2006-11-09  Ankit Jain  <jankit@novell.com>
2477
2478         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2479         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2480         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2481
2482 2006-11-07  Dick Porter  <dick@ximian.com>
2483
2484         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2485         Put the old resolver behaviour back for pre-2.0 profiles.
2486
2487 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2488
2489         * threadpool.c: precise GC and locking fixes.
2490
2491 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2492
2493         * class.c: don't load types that have an explicit unaligned
2494         managed reference. Provide better info in the TypeLoad exception.
2495         Part of the fix for bug #79744.
2496         * object.c: use the correct check for class type load issues.
2497
2498 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2499
2500         * class.c: enforce alignment of fields with managed references
2501         even when Pack=1 is forced by the user (bug #77788).
2502
2503 2006-11-03  Dick Porter  <dick@ximian.com>
2504
2505         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2506         If the address reverse lookup fails, return it as the hostname
2507         anyway.  Fixes bug 79721.
2508
2509 2006-11-03  Dick Porter  <dick@ximian.com>
2510
2511         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
2512         Fix build on Windows.
2513
2514 2006-11-02  Dick Porter  <dick@ximian.com>
2515
2516         * icall-def.h: 
2517         * object-internals.h: 
2518         * exception.c (mono_get_exception_thread_interrupted): 
2519         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
2520         Fixes bug 74525.
2521
2522         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
2523         Check for pending Thread.Interrupt.
2524
2525 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
2526         * loader.c: Fixed bug 79684.
2527
2528 2006-10-27  Dick Porter  <dick@ximian.com>
2529
2530         * file-io.c (get_file_attributes): Force symlinks to directories
2531         to be returned as a regular file.  Fixes bug 79733.
2532 2006-10-26  Dick Porter  <dick@ximian.com>
2533
2534         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
2535         CreateFile to open a directory then we need to set the
2536         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
2537
2538 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
2539
2540         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
2541         friends.
2542
2543 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2544
2545         * sgengc.c: small cleanup of timer code.
2546
2547 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2548
2549         * sgen-gc.c: fix some warnings and start adding support for
2550         complete object removal on domain unload.
2551
2552 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
2553
2554         * assembly.c: build_assembly_name should not consider a version
2555         number without build or revision number invalid. Fixes bug #79715.
2556
2557 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
2558
2559         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
2560         call kernel32 function OutputDebugString directly.
2561         
2562         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2563         
2564 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
2565
2566         * reflection.c: small cleanup, using a function to insert a MonoString
2567         in the string heap.
2568
2569 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
2570
2571         * reflection.c: moving GC fixes.
2572
2573 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
2574
2575         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
2576         all the objects with finalizers belonging to an unloading appdomain.
2577
2578 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
2579
2580         * sgen-gc.c: added ability to allocate even when the nursery is fully
2581         pinned and fixed a couple of bugs.
2582
2583 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2584
2585         * threads.h: Revert the last change for now.
2586
2587         * threads.h (mono_thread_get_pending_exception): Rename this to
2588         mono_thread_get_undeniable_exception ().
2589
2590 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
2591
2592         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
2593         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
2594         when fname does not refer to valid assembly. This result in a more
2595         meaningful error message.
2596         * exception.c: added mono_get_exception_bad_image_format2 which 
2597         constructs a BadImageFormatException using the ctor taking a custom
2598         message and the file name. Passing in a NULL msg results in a default
2599         message.
2600         * exception.h: define mono_get_exception_bad_image_format2 function.
2601         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
2602         when file name pointed to an invalid IL image. Use 
2603         mono_get_exception_file_not_found2 to construct FileNotFoundException,
2604         as this results in a more meaningful error message.
2605
2606 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2607
2608         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
2609         #79465.
2610
2611 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
2612
2613         * metadata.c (mono_type_size): Change the align parameter to guint32 for
2614         consistency with the other _size functions.
2615         (mono_type_stack_size): Ditto.
2616
2617         * class.c object.c icall.c: Fix warnings caused by the above change.
2618
2619         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
2620
2621         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
2622
2623         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
2624
2625 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2626
2627         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
2628         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
2629         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
2630         threadpool.h, threads-types.h: mark more internal functions.
2631
2632 2006-10-11  Dick Porter  <dick@ximian.com>
2633
2634         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2635         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
2636         reproduce the bug even before applying the fix.)
2637
2638 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
2639
2640         * reflection.c: allow retrieving attributes for arguments in generic
2641         methods (bug #79241).
2642
2643 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
2644
2645         * debug-mono-symfile.c: properly check fopen () result (found by
2646         coverity).
2647
2648 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
2649
2650         * reflection.c: make error message clearer and fixed two
2651         issuelets found by Coverity.
2652
2653 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
2654
2655         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
2656
2657 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2658
2659         * object-internals.h, gc-internal.h, profiler-private.h:
2660         mark internal functions.
2661
2662 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2663
2664         * reflection.c: put data in the text section.
2665         * icall.c: recognize more types in type_from_typename ().
2666         * process.c, marshal.c: added some GC FIXMEs.
2667
2668 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2669
2670         * loader.c: check for NULL before initializing.
2671
2672 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
2673
2674         * gc.c (finalizer_thread): Use a non-alertable wait here.
2675
2676         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
2677         until the correct solution is found.
2678
2679 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2680
2681         * reflection.c (mono_module_get_object): Avoid an assert when operating on
2682         modules with no metadata. Fixes #79596.
2683
2684         * image.c (load_metadata_ptrs): Put back the error message when
2685         the #- heap is encountered since the support is not complete yet.
2686
2687 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2688
2689         * gc.c: do not allow the user to SuppressFinalize () a
2690         delegate because it would leak the trampoline if present.
2691
2692 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2693
2694         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
2695         PropertyPtr table.
2696
2697 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
2698
2699         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
2700
2701         * metadata.c (mono_metadata_get_param_attrs): Ditto.
2702
2703         * row-indexes.h: Add definitions for *Ptr tables.
2704
2705         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
2706
2707         * metadata.c (mono_metadata_translate_token_index): New helper function to
2708         translate table indexes used in uncompressed metadata.
2709         (mono_metadata_decode_table_row): Ditto.
2710         (mono_metadata_decode_table_row_col): Ditto.
2711
2712         * metadata.c: Add table schema for *Ptr tables.
2713
2714         * class.c loader.c: Use the new helper function to access the affected metadata
2715         tables.
2716         
2717         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
2718         #38532.
2719         
2720 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
2721
2722         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
2723         sequences which can be unbounded in size. Fixes #79583.
2724
2725 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
2726
2727         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
2728         static initialization.
2729
2730         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
2731
2732         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
2733
2734         * domain.c (mono_domain_free): Free up type_init_exception_hash.
2735
2736         * object.c (mono_runtime_class_init): Implement correct semantics when a static
2737         ctor fails, i.e. throw the same exception on subsequent accesses.
2738         
2739 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
2740
2741         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
2742         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
2743         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
2744         Handle marshalling of interfaces and VARIANTs contained in structs.
2745         
2746         Code is contributed under MIT/X11 license.
2747         
2748 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
2749
2750         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
2751         
2752         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
2753         mempool.
2754
2755 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2756
2757         * console-io.c: ignore previous SIGINT handler.
2758
2759 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
2760
2761         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
2762         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
2763         #79460, #79461, #79485.
2764
2765         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
2766
2767         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
2768         #79217.
2769
2770 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
2771
2772         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
2773         could be generated from it.
2774
2775 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
2776
2777         * rand.c: fix read loop to correctly handle EINTR.
2778
2779 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2780
2781         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
2782         internal calls are defined to keep methods closer to the declaring
2783         type and allow a significant reduction in runtime relocations and
2784         memory usage.
2785
2786 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
2787
2788         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
2789         exception message to have FileNotFoundException use the default
2790         assembly load error message. Fixes bug #79426.
2791         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
2792
2793 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2794
2795         * threadpool.c: (start_thread_or_queue) use the root domain when
2796         creating the thread instead of the async object one.
2797
2798 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
2799
2800         * class.c, object.c, class-internals.h, reflection.c:
2801         for arrays, store element_size inside MonoClass (speedup
2802         for array object creation).
2803
2804 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
2805
2806         * icall.c: fixed CodeBase to use the file name and not the module
2807         name (bug #79365).
2808
2809 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
2810
2811         * mono-debug.c, mono-debug.h: export find_method as
2812         mono_debug_find_method ().
2813
2814 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2815
2816         * debug-helpers.c, class-internals.h: added a few functions useful
2817         when debugging under gdb.
2818
2819 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2820
2821         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
2822         characters that need special handling.
2823
2824 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
2825
2826         * mono-config.c: make the os/cpu specification more flexible,
2827         allowing lists and negation.
2828
2829 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
2830
2831         * marshal.c: COM Interop fixes. Handle case where method->klass.
2832         is interface. Handle BSTR/MonoString when null. Use CDECL as 
2833         calling convention on non-windows platforms. This is for
2834         compatibility with XPCOM and MainWin COM.
2835         
2836         Code is contributed under MIT/X11 license.
2837         
2838
2839 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
2840
2841         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
2842         correctly. Fixes #79217.
2843
2844         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
2845
2846 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
2847
2848         * mono-config.c: allow both an os and cpu attribute for dllmap
2849         and dllentry elemnets to enable a single config file to be used
2850         for multiple architectures.
2851
2852 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
2853
2854         * loader.c: MonoLoaderError was cleared too soon on load failure.
2855         Fixes bug #79424.
2856
2857 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
2858
2859         * icall.c: use the defining class vtable when accessing a
2860         static field, not a pobblibly derived class.
2861
2862 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
2863
2864         * icall.c string-icalls.c: Remove references to unicode.h.
2865
2866         * unicode.h unicode.c Makefile.am: Remove these unused source files.
2867
2868         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
2869
2870         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
2871         indicating the image where custom marshaller types should be looked up.
2872         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
2873         custom marshallers, instead of corlib. Fixes #79425.
2874
2875 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
2876
2877         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
2878
2879 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
2880
2881         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
2882         Implement Environment.ProcessorCount.
2883         
2884         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
2885         Implement Environment.ProcessorCount.
2886         
2887         * icall.c: 
2888         Add Environment.ProcessorCount icall.
2889         
2890         Patch by Jason McFall.
2891
2892 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2893
2894         * assembly.c: don't append .exe/.dll when the filename already contains
2895         one of those extensions.
2896
2897 2006-09-12  Martin Baulig  <martin@ximian.com>
2898
2899         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
2900         to array interfaces.
2901
2902 2006-09-11  Martin Baulig  <martin@ximian.com>
2903
2904         * reflection.c (mono_image_build_metadata): Create the
2905         MethodImpl's after emitting all types and methods, so we don't
2906         need another fixup pass for them.
2907
2908 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
2909
2910         * class.c (mono_class_from_name_case): Fix regression introduced by the last
2911         change.
2912
2913 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
2914
2915         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
2916         unload.
2917
2918 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
2919
2920         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
2921         args is not set. Fixes #78926.
2922
2923 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
2924
2925         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
2926
2927         * image.c (load_class_names): Move this to class.c, and rename it to 
2928         'mono_image_init_name_cache'.
2929         (load_modules): Fix a warning.
2930
2931         * class.c icall.c image.c: Initialize image->name_cache lazily.
2932
2933         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
2934         on its name using information in the AOT file.
2935
2936         * class.c (mono_class_from_name): Use the new hook function.
2937
2938 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
2939
2940         * reflection.c (mono_param_get_objects): Handle enum default parameter values
2941         correctly.
2942
2943         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
2944         Fixes #79289.
2945         
2946 2006-09-06  Martin Baulig  <martin@ximian.com>
2947
2948         * icall.c (mono_lookup_internal_call): Small fix.
2949
2950 2006-09-05  Raja R Harinath  <rharinath@novell.com>
2951
2952         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
2953         double g_free.
2954
2955 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
2956
2957         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
2958         when --debug is specified.
2959
2960 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
2961
2962         * class.c (setup_generic_array_ifaces): Fix a warning.
2963
2964 2006-09-04  Miguel de Icaza  <miguel@novell.com>
2965
2966         * Temporarily remove the patch to assemly.c that checks the
2967         assembly versions as it breaks our gacutil.
2968
2969 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
2970
2971         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
2972
2973         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
2974         a net 1.0 runtime.
2975
2976         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
2977         created using the default ctor. Fixes #79152.
2978         (mono_string_builder_to_utf16): Ditto.
2979
2980 2006-09-01  Martin Baulig  <martin@ximian.com>
2981
2982         Fix handling of the generic array interfaces.
2983
2984         * class-internals.h
2985         (MonoDefaults): Removed `generic_array_class' and added
2986         `generic_ilist' class.
2987
2988         * class.c
2989         (mono_bounded_array_class_get): Add the new generic array interfaces.
2990         (setup_generic_array_ifaces): New static method; create vtable
2991         entries for each method in the generic array interfaces.
2992
2993         * metadata.c
2994         (select_container): Allow "parent-less" generic methods.
2995
2996         * marshal.c
2997         (mono_marshal_get_generic_array_helper): New public method.
2998
2999         * icall.c
3000         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
3001         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
3002         moved the interncall into System.Array.
3003
3004 2006-09-01  Raja R Harinath  <rharinath@novell.com>
3005
3006         A few more cases of avoiding work on types with ->byref set.
3007         Has the real fix for #79238
3008         * icall.c (is_generic_parameter): New helper.
3009         (ves_icall_Type_GetGenericParameterPosition): Use it.
3010         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
3011         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3012         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3013         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
3014         reference types.
3015         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
3016         reference types.
3017         (ves_icall_Type_get_IsGenericInstance): Likewise.
3018         (ves_icall_Type_get_IsGenericType): Likewise.
3019
3020 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
3021
3022         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
3023         class if possible.
3024
3025         * mempool.h (mono_mempool_get_allocated): New helper function.
3026
3027         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
3028         change.
3029
3030         * mempool.c: Fix warnings and the calculation of stats.
3031
3032         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
3033
3034         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
3035
3036         * loader.c (mono_get_method_from_token): Update method_count stat.
3037
3038         * class-internals.h (MonoStats): Add some stats.
3039
3040 2006-08-31 Robert Jordan  <robertj@gmx.net>
3041
3042         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
3043         with managed variants.
3044         All code is contributed under the MIT/X11 license.
3045         
3046 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
3047
3048         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
3049         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
3050
3051         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
3052
3053         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
3054         with cycles in classes.
3055
3056         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
3057
3058         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
3059         missing a [MarshalAs] directive. Fixes #79203.
3060
3061         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
3062         klass->marshal_info. Fixes #79217.
3063
3064 2006-08-30  Martin Baulig  <martin@ximian.com>
3065
3066         Committing a patch from Joachim Ante <joe@otee.dk>:
3067         Add support for binary data symbol stores.
3068
3069         * debug-mono-symfile.c
3070         (mono_debug_open_mono_symbol_file): Renamed into
3071         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
3072         arguments.
3073
3074         * mono-debug.c
3075         (mono_debug_open_image): Added `raw_contents' and `size' args.
3076         (mono_debug_init_2_memory): New public function.
3077
3078 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
3079
3080         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
3081
3082 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3083
3084         * appdomain.c: implement support for ShadowCopyFiles.
3085
3086 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3087
3088         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
3089         when value is NULL (and should remove CID #51).
3090
3091 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3092
3093         * image.c: moved 2 functions to ../utils.
3094
3095 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3096
3097         * gc.c: cope with the target object of a GC handle being NULL
3098         (bug #78877).
3099
3100 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
3101
3102         * class.c: recursively check parent's explicit implementations
3103         of interface methods (fixes bug #79125).
3104
3105 2006-08-19  Miguel de Icaza  <miguel@novell.com>
3106
3107         * filewatcher.c: Avoid warnings when building, do not redefine
3108         constants that are defined.
3109
3110         Remove warnings.
3111
3112 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3113
3114         * image.c: don't fail when the link points to an absolute path.
3115
3116 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
3117
3118         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
3119         Fix CID #3.
3120
3121 2006-08-17  Miguel de Icaza  <miguel@novell.com>
3122
3123         * image.c (full_path): A new method used to obtain the actual path
3124         of an assembly even in the presence of symbolic links.  
3125
3126         This is necessary for the case where we are running a binary that
3127         has been GACed, but we are using the "published" path name
3128         ($prefix/mono/1.0/blah.exe) which happens to point to the real
3129         file in the GAC.
3130
3131         This was the source of the failure for the `xsp' command with the
3132         recent AppDomain changes, as far as the runtime was concerned,
3133         there were two different assemblies: $prefix/mono/1.0/blah.exe and
3134         $prefix/mono/gac/blah/version/blah.exe.
3135
3136         (do_mono_image_open): use full path
3137
3138 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3139
3140         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
3141
3142 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
3143
3144         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
3145         domain_id is supplied. Fix CID #241 and corlib's unit tests.
3146
3147 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3148
3149         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
3150         small structures. Fixes #78990.
3151
3152 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3153
3154         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
3155
3156         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
3157
3158 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3159
3160         * appdomain.c:
3161         * marshal.c: don't load all the assemblies from a domain into newly
3162         created ones. The new domains might have different rules and load
3163         assemblies from different locations. Fixes bug #76757.
3164
3165         Patch by Lluis. Conflicts resolved by Brian Crowell.
3166
3167 2006-08-16  Alp Toker  <alp@atoker.com>
3168
3169         * socket-io.c: First half of the fix for #79084.
3170         Set sa_size to the length of the content, not that of the struct.
3171         Don't add NULL suffix to the content, this should be done in
3172         managed code if needed.
3173
3174 2006-08-14  Raja R Harinath  <rharinath@novell.com>
3175
3176         Fix part of #79012
3177         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
3178         mono_metadata_parse_type returns NULL.
3179
3180 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
3181
3182         * normalization-tables.h : new file for string normalization data.
3183         * locales.c, locales.h, icall.c :
3184           added load_normalization_resource() for string normalization,
3185           and icall as well.
3186         * Makefile.am : added normalization-tables.h to the sources.
3187
3188 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
3189
3190         * marshal.c: Add more helper functions to reduce code duplication and use them
3191         everywhere.
3192
3193 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
3194
3195         * marshal.c: Fix non-x86 stdcall warnings.
3196         
3197         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
3198         them everywhere.
3199
3200 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
3201
3202         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
3203         type check on multi-dimensional arrays. Fixes #79000.
3204
3205 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
3206
3207         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
3208         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
3209         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
3210         * class-internals.h: add is_com_object to class structure.
3211         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
3212         null checks to COM object marshalling. Fix .ctor call on RCW.
3213         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
3214         
3215         All code is contributed under the MIT/X11 license.
3216
3217 2006-08-09  Dick Porter  <dick@ximian.com>
3218
3219         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
3220         racing mono_monitor_allocator_lock() somewhere, so don't delete
3221         the critical section for now.  Found by running and exiting
3222         monodevelop.
3223
3224 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
3225
3226         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
3227         (ves_icall_System_ComObject_FindInterface): Ditto.
3228         (ves_icall_System_ComObject_CacheInterface): Ditto.
3229
3230         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
3231         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
3232
3233 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3234
3235         * threadpool.c: treat pipes from process asynchronous reads as sockets
3236         when reading from them, so we get select/poll or epoll to wait for
3237         data.
3238
3239 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
3240
3241         * loader.c: Fix a typo (CID #233) in the null check.
3242
3243 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
3244
3245         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
3246         Hopefully fixes #78949.
3247         
3248         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
3249         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
3250         bytes. Fixes #78972.
3251
3252 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3253
3254         * filewatcher.c: we need to set errno here.
3255
3256 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3257
3258         * filewatcher.c: let Win32Exception get the error value.
3259
3260 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3261
3262         * filewatcher.c: translate errno into win32 errors for Win32Exception
3263         to know what happened.
3264
3265 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3266
3267         * threadpool.c: Fix more warnings.
3268
3269         * assembly.c (search_loaded): Fix warnings.
3270
3271         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3272         (mono_async_invoke): Ditto.
3273
3274 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3275
3276         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3277         entries for __ComObject type in addition to ComImport types.
3278         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3279         about hash table.
3280         
3281         All code is contributed under the MIT/X11 license.
3282
3283 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3284
3285         * image.c: avoid tentative loading of modulerefs that contain
3286         no metadata (P/Invoke library names).
3287
3288 2006-07-28  Dick Porter  <dick@ximian.com>
3289
3290         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3291         mono_loader_lock() somewhere, so don't delete the critical section
3292         for now.  Found by running and exiting monodevelop.
3293
3294 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3295
3296         * filewatcher.c: define the inotify syscalls when we're building on
3297         linux and have sys/syscall.h. The build system might not have support
3298         for inotify but the target system might have it.
3299
3300 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3301
3302         * domain.c: Documentation updates.
3303
3304         * loader.c (mono_free_method): Do not release the method
3305         information if we are being profiled, as profilers will use this
3306         information at shut down to present some data to the user.
3307
3308         This is needed so that the profiler does not crash, as the
3309         profiler tends to keep MonoMethods around, and they might become
3310         invalid if we free these.
3311
3312         (mono_get_method_constrained): Return the original CIL stream
3313         method as well, so verification can be performed against it.
3314
3315 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3316
3317         * filewatcher.[ch]: support for inotify file system watcher.
3318         * icall.c: add new internal calls for the inotify file system watcher.
3319
3320 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3321
3322         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3323         #78888.
3324
3325 2006-07-20  Dick Porter  <dick@ximian.com>
3326
3327         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3328         warning.
3329
3330 2006-07-20  Dick Porter  <dick@ximian.com>
3331
3332         * threads.c (start_wrapper): Do the thread cleanup while we still
3333         hold a reference to its object.  Fixes bug 78123.
3334
3335 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3336
3337         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3338         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3339           "managed-to-managed".
3340         * icall.c: Redirect string constructors that take sbyte* to
3341           ves_icall_System_String_ctor_RedirectToCreateString.
3342         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3343           to CreateString () methods with matching signature.
3344         * reflection.c: Use original security informations for
3345           MONO_WRAPPER_MANAGED_TO_MANAGED.
3346         * security-manager.c: Use original security informations for
3347           MONO_WRAPPER_MANAGED_TO_MANAGED.
3348         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3349           that is a placeholder and only its address should be used.
3350         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3351           that is a placeholder and only its address should be used.
3352
3353 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3354
3355         Begin implementing COM Interop.
3356         * appdomain.c: Increment corlib version.
3357         * class.c: Set ComImport classes' parent to __ComObject.
3358         * loader.c: Mark cominterop methods as such.
3359         * domain.c: Add __ComObject class to MonoDefaults structure.
3360         * image.c: Add 2 hashtables to the image for COM Interop related methods
3361         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3362         using the mempool allocator
3363         
3364         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3365         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3366         declaration for mono_metadata_type_dup_mp.
3367         
3368         * debug-helpers.c: Added strings for two additional wrapper types
3369         * object.c: Create proxy objects for ComImport classes
3370         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3371         and added __ComObject class to MonoDefaults structure.
3372         
3373         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3374         MonoComInteropProxy and MonoComObject.
3375         
3376         * marshal.c: Added support for COM Interop
3377         (signature_cominterop): Converts managed signature to corresponding
3378         unmanaged COM signature.
3379         (cominterop_get_function_pointer): gets unmanaged function pointer via
3380         COM object vtable
3381         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3382         (cominterop_get_method_interface): returns interface type that method is defined on
3383         (mono_mb_emit_cominterop_call): emits native call to function pointer
3384         gotten from vtable
3385         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
3386         that matches signature of unmanaged function.
3387         (cominterop_get_native_wrapper): wrapper around adjusted method call.
3388         (cominterop_get_invoke): forwards call from proxy to __ComObject
3389         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
3390         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
3391         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
3392         
3393         * marshal.h: Added Marshal icall declarations.
3394         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
3395         so we can access them in finalizer
3396         
3397 2006-07-14  Dick Porter  <dick@ximian.com>
3398
3399         * object.c (mono_type_initialization_cleanup): Fix a race
3400         condition by temporarily commenting out the critical section
3401         deletion.
3402
3403 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3404
3405         * reflection.c (create_custom_attr): Fix some warnings.
3406         (create_custom_attr_data): Ditto.
3407         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3408         types. Fixes #78855.
3409
3410 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3411
3412         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3413
3414         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3415
3416 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3417
3418         * reflection.c (resolve_object): Add support for DynamicMethod.
3419
3420         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3421         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3422
3423 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3424
3425         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3426         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3427
3428 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3429
3430         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3431         Fixes #77888.
3432
3433 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3434
3435         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3436         slightly: remove a shadow local variable.
3437
3438 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3439
3440         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3441         definition that introduces the virtual function slot.
3442         Also fix Coverity #105.
3443
3444 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3445
3446         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3447         for dynamic assemblies. Fixes #78724.
3448
3449 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3450
3451         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3452         Fixes #78722.
3453
3454 2006-06-21  Martin Baulig  <martin@ximian.com>
3455
3456         * reflection.c
3457         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3458         fixes #76484.
3459
3460 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3461
3462         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3463
3464 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3465
3466         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3467         nor TYPEREFs.
3468         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3469         Inflate result if necessary.
3470         (mono_class_get_full): Remove old version.  Rename from
3471         'mono_class_get' and add 'context' argument.  Pass it to
3472         ..._create_from_typespec.
3473         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3474         (mono_ldtoken): Revert change below.
3475
3476 2006-06-20  Martin Baulig  <martin@ximian.com>
3477
3478         * class.c (mono_ldtoken): Don't pass the generic context to
3479         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3480
3481 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3482
3483         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3484         and later freeing it. Fixes #78638.
3485
3486 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3487
3488         * icall.c (mono_class_get_throw): Revert over-zealous error
3489         throwing, the caller for mono_class_get_throw will cope with
3490         errors when classes are not properly initialized already.
3491
3492         The code still copes with loader exceptions though.
3493
3494         Fixes the regression in reftype1 and reftype3 from the CAS tests.
3495         
3496 2006-06-14  Miguel de Icaza  <miguel@novell.com>
3497
3498         Fixes the `make run1' version of RuntimeAbort (to be commited,
3499         source is in Bugzilla).
3500         
3501         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
3502         FALSE on class loading failure instead of returning true.
3503
3504         * class.c (mono_class_create_from_typedef): It is possible for
3505         mono_metadata_interfaces_from_typedef_full to fail if a class is
3506         not found, cope with this.
3507         
3508
3509 2006-06-14  Dick Porter  <dick@ximian.com>
3510
3511         * socket-io.c: 
3512         * process.c: Fix a bunch of signed/unsigned warnings from gcc
3513         4.1.1
3514
3515 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
3516
3517         * culture-info-table.h : oops, forgot to make it nsync with r61548.
3518
3519 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3520
3521         * icall.c: Another fix for building mono in Visual Studio.
3522
3523 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3524
3525         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
3526         
3527 2006-06-09  Martin Baulig  <martin@ximian.com>
3528
3529         * debug-mono-symfile.c: Put this back and really fix it this
3530         time. Sorry for all the trouble.
3531
3532 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
3533
3534         * icall.c (mono_class_get_throw): Fix a warning.
3535         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
3536         ReflectionTypeLoadException if needed. Fixes #78606.
3537
3538         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
3539         (mono_class_init): Ditto.
3540
3541         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
3542         ref_only exceptions.
3543         (mono_loader_clear_error): Make this work even if there is no error.
3544
3545 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
3546
3547         * object-internals.h marshal.c marshal.h icall.c: Implement method 
3548         Marshal.GetComSlotForMethodInfo using internal call.
3549
3550 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
3551
3552         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
3553         a function for signalling it.
3554
3555         * class.c (mono_class_from_typeref): Use the new kind of loader error when
3556         a referenced assembly is not found.
3557
3558         * loader.c (mono_loader_error_prepare_exception): Add support for 
3559         LOADER_ERROR_ASSEMBLY. Fix formatting.
3560
3561 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3562
3563         * domain.c appdomain.c class-internals.h marshal.c: Add support 
3564         for VARIANT marshalling on windows and increment corlib version
3565         since Variant struct was added.
3566
3567 2006-06-03  Miguel de Icaza  <miguel@novell.com>
3568
3569         * debug-mono-symfile.c: Revert Martin's previous patch which broke
3570         stack trace line information:
3571
3572         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
3573         (Martin) when looking up B which is between A and C, return A not C.
3574
3575         Bug is #78573.
3576
3577         Thanks to Alexander Olk for tracking this down.
3578
3579 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
3580
3581         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
3582         
3583         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
3584         avoid clobbering its value.
3585         (mono_string_to_lpstr): Fix a warning on windows.
3586
3587 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3588
3589         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
3590
3591         * reflection.c loader.c: Removed references to 'dummy' flag.
3592
3593         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
3594
3595         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
3596         it gets GC tracking.
3597
3598         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
3599         GC tracking.
3600         
3601         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
3602
3603         * marshal.c threadpool.c: Update callers of mono_async_result_new.
3604
3605         * appdomain.c: Bump corlib version.
3606
3607 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3608
3609         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3610         CEE_STIND_REF when working with object references.
3611
3612 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3613
3614         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
3615         Fixes #78539.
3616
3617 2006-05-30  Miguel de Icaza  <miguel@novell.com>
3618
3619         * loader.c (method_from_memberref): Fix argument value for
3620         mono_loader_set_error_method_load (I was passing the MonoClass
3621         instead of the class name char *).
3622
3623 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3624
3625         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3626         CEE_STIND_REF when working with object references.
3627
3628 2006-05-30  Martin Baulig  <martin@ximian.com>
3629
3630         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
3631         mono_method_full_name() change and replace the ':' with a '.'
3632         here.
3633
3634 2006-05-30  Martin Baulig  <martin@ximian.com>
3635
3636         * debug-mono-symfile.c
3637         (mono_debug_symfile_lookup_location): Fix the algorithm:
3638         when looking up B which is between A and C, return A not C.
3639
3640 2006-05-29  Martin Baulig  <martin@ximian.com>
3641
3642         * mono-debug.h
3643         (MonoDebugMethodInfo): Make the typedef public.
3644         (MonoDebugSourceLocation): New public struct.
3645
3646         * mono-debug.c
3647         (mono_debug_source_location_from_address): Removed.
3648         (mono_debug_source_location_from_il_offset): Removed.
3649         (mono_debug_il_offset_from_address): Removed.
3650         (mono_debug_address_from_il_offset): Removed.
3651         (mono_debug_lookup_method): New public function.
3652         (mono_debug_lookup_source_location): New public function; replaces
3653         the old mono_debug_source_location_from_*() functions; see the
3654         inline documentation.
3655         (mono_debug_free_source_location): New public function.
3656         (mono_debug_print_stack_frame): New public function; see the
3657         inline documentation.
3658
3659         * debug-mono-symfile.c
3660         (mono_debug_find_source_location): Renamed into
3661         mono_debug_symfile_lookup_location(); only take a
3662         `MonoDebugMethodInfo *' and an `offset' argument; added inline
3663         documentation.
3664         (mono_debug_find_method): Renamed into
3665         mono_debug_symfile_lookup_method().
3666
3667 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
3668
3669         * assembly.c (mono_assembly_open_full): Dont overwrite the status
3670         returned by mono_image_open_full ().
3671
3672         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
3673         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
3674         #78517.
3675
3676         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
3677         #78518.
3678
3679 2006-05-27  Miguel de Icaza  <miguel@novell.com>
3680
3681         * class.c (mono_class_from_typeref): handle missing images
3682         earlier, deals with bug #78418.   Refactor code; 
3683
3684         Fix a warning introduced in my previous commit (some stale code
3685         from before I revisited my patch).
3686
3687         * class.c (mono_class_create_from_typedef): On failure, remove the
3688         class from the MonoImage->class_cache as the class is not
3689         initialized;   Fixes the leak pointed out by Paolo.
3690
3691 2006-05-25  Dick Porter  <dick@ximian.com>
3692
3693         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
3694         DeleteCriticalSections until I figure out which one may still be
3695         sometimes locked when mono_thread_cleanup is called.
3696
3697 2006-05-24  Dick Porter  <dick@ximian.com>
3698
3699         * threads.c (mono_thread_cleanup): Move the threading cleanup out
3700         of mono_thread_manage and back into its own function, so it can be
3701         called after the finalizer thread has finished.
3702
3703         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
3704
3705 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
3706
3707         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
3708         Fixes #78495.
3709
3710         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
3711         with non-blittable elements.
3712         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
3713
3714 2006-05-24  Martin Baulig  <martin@ximian.com>
3715
3716         * mono-debug-debugger.h (MonoDebuggerEvent): Added
3717         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
3718
3719         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
3720         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
3721         `mono_debugger_event_handler' to NULL.
3722
3723 2006-05-24  Martin Baulig  <martin@ximian.com>
3724
3725         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
3726
3727 2006-05-24  Martin Baulig  <martin@ximian.com>
3728
3729         * mono-debug-debugger.h
3730         (mono_debugger_create_notification_function): Added
3731         `MonoCodeManager *' argument.
3732
3733 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
3734
3735         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
3736
3737 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
3738
3739         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
3740         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
3741         implementation.
3742
3743 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
3744
3745         * icall.c: precise GC support: objects can't be stored in unmanaged
3746         memory anymore, even if they are kept alive by other references: since
3747         they can move the GC needs to be able to always find them.
3748
3749 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
3750
3751         * object.c: precise GC support for static fields. Support
3752         for moving GCs: write barriers and pinned allocation for interned
3753         strings.
3754
3755 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3756
3757         * domain.c, domain-internals.h: precise GC support for the MonoDomain
3758         structure.
3759
3760 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3761
3762         * class.c, gc.c: sgen and precise GC updates.
3763
3764 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
3765
3766         * marshal.h, marshal.c: added write barrier wrapper and precise type
3767         fixes.
3768
3769 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
3770
3771         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
3772         support.
3773
3774 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
3775
3776         * reflection.c: precise and sgen GC updates.
3777
3778 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
3779
3780         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
3781
3782 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
3783
3784         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
3785
3786 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
3787
3788         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
3789         MONO_TYPE_OBJECT. Fixes #78462.
3790
3791 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
3792
3793         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
3794         and blittable types.
3795
3796 2006-05-17  Miguel de Icaza  <miguel@novell.com>
3797
3798         * class.c (mono_class_get_exception_for_failure): Implement parts
3799         of a TODO: if the loader error is set (instead of the class
3800         error), we return a Loader exception that can be properly thrown
3801         elsewhere.
3802
3803         This was exposed by some Winforms 2.0 code that I tried to run
3804         (Atsushi pointed me to it).
3805
3806 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
3807
3808         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
3809         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
3810         
3811         * marshal.c (emit_marshal_vtype): Add limited support for 
3812         UnmanagedType.LPStruct. Fixes #78427.
3813
3814         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
3815         Applied a patch from kangaroo to fix #77523.
3816
3817 2006-05-17  Martin Baulig  <martin@ximian.com>
3818
3819         * threads.c
3820         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
3821         (debugger_thread_created): Removed.
3822         (debugger_thread_exited): Removed.
3823
3824 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
3825
3826         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3827
3828         * object-internals.h (MonoReflectionResource): Sync with managed version.
3829
3830 2006-05-12  Wade Berrier <wberrier@novell.com>
3831
3832         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
3833
3834 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
3835
3836         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
3837         functions try to allocate from the image mempool.
3838
3839 2006-05-12  Dick Porter  <dick@ximian.com>
3840
3841         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
3842
3843 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
3844
3845         * object.c: The FieldGetter and FieldSetter methods require the full
3846         name of the class, not only the name. Fixes bug #78277.
3847
3848 2006-05-11  Miguel de Icaza  <miguel@novell.com>
3849
3850         * loader.c (method_from_memberref): Do not pass the NULL klass to
3851         mono_loader_set_error_() methods.  Pass the non-NULL value
3852         (class). 
3853
3854 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
3855
3856         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
3857         (mono_assembly_close): Null out assembly->image->references after freeing it.
3858
3859         * image.c (mono_image_close): Free image->references.
3860         
3861         * reflection.c (mono_image_basic_init): Fix a small memory leak.
3862
3863 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3864
3865         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
3866         before checking if it's NULL (g_assert).
3867
3868 2006-05-10  Martin Baulig  <martin@ximian.com>
3869
3870         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
3871         I thought I already killed that two months ago, but now it somehow reappeared.
3872
3873 2006-05-10  Martin Baulig  <martin@ximian.com>
3874
3875         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
3876
3877 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
3878
3879         * reflection.c: Allocate memory for dynamically created methods in the image
3880         mempools.
3881
3882 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3883
3884         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
3885         don't use the ad pointer before checking if it's NULL (g_assert).
3886
3887 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
3888
3889         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
3890         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
3891
3892         * marshal.c: Allocate all signatures from mempools.
3893
3894         * marshal.c: Allocate some more signatures from mempools.
3895
3896 2006-05-09  Miguel de Icaza  <miguel@novell.com>
3897
3898         * object.c (mono_load_remote_field): The code used to provide a
3899         temporary variable for returning results if the user did not
3900         provide a result pointer.  But our temporary variable was allocted
3901         on the satck.
3902
3903         Fix calling code to always pass a result area.   Coverity ID 103.
3904
3905 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
3906
3907         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
3908         value, not the old. Fixes #78312.
3909         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
3910
3911         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
3912         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
3913         per-image cache.
3914
3915         * assembly.c (mono_assembly_close): Free image->references.
3916
3917         * assembly.c (mono_assembly_names_equal): Fix a warning.
3918         (mono_assemblies_cleanup): Cleanup more global data.
3919
3920         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
3921
3922         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
3923         ptr_cache and image->modules.
3924
3925         * image.c (mono_image_init): Allocate array_cache lazily.
3926         
3927 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3928
3929         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
3930         behavior was changed recently and has bad side effects.
3931
3932 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
3933
3934         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
3935         
3936         * assembly.c (mono_assembly_close): Remove a debug printf.
3937
3938         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
3939
3940         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
3941         to also allow for temporary references between mono_image_open ()/close ().
3942
3943         * domain.c (get_runtimes_from_exe): Add a FIXME.        
3944
3945 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
3946
3947         * marshal.c: Fix support for dynamic methods.
3948
3949         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
3950
3951         * marshal.c (mono_marshal_cleanup): New cleanup function.
3952
3953         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
3954         image mempools.
3955
3956         * class.c (mono_class_init): Fix leaking class->nested_classes.
3957
3958         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
3959
3960         * image.c (mono_image_init): Initialize the new cashes.
3961
3962         * image.c (mono_image_close): Destroy the new cashes.
3963
3964         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
3965
3966         * mempool.c (mono_mempool_strdup): New helper function.
3967
3968         * class-internals.h: Add prototype for mono_loader_unlock ().
3969
3970         * domain.c (mono_jit_info_table_find): Fix a warning.
3971         (mono_debugger_check_runtime_version): Ditto.
3972
3973         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
3974         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
3975         functions to these modules.
3976
3977         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
3978         metadata modules.
3979         
3980         * marshal.c (mono_free_bstr): Fix a warning.
3981
3982         * assembly.c (mono_assembly_open_full): Fix another small leak.
3983
3984         * object.c: Fix some unload leaks in the remoting code.
3985
3986         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
3987         function.
3988
3989         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
3990
3991         * reflection.c: Fix some unload leaks in dynamic assemblies.
3992
3993 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
3994
3995         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
3996         * marshal.h: Add BSTR support on Win32
3997         * icall.c: Add BSTR icalls
3998         * metadata.h: Add BSTR enums
3999
4000 2006-04-28  Miguel de Icaza  <miguel@novell.com>
4001
4002         Work to catch the crash from #76795 and turn it into an
4003         exception.   As I stubbed out pieces of the VisualBasic support,
4004         I found a number of places where the code was failing and I added
4005         checks to those places. 
4006         
4007         * metadata.c (do_mono_metadata_parse_generic_class): Make this
4008         function return a status code.  If we fail to parse the signature
4009         from mono_metadata_parse_generic_inst, return FALSE.
4010
4011         * loader.c (mono_get_method_from_token): If we fail to load the
4012         method (mono_class_get) return NULL.   
4013
4014         * (method_from_memberref): Return NULL if we are unable to parse
4015         the method signature
4016
4017         (mono_loader_error_prepare_exception): Since we now use the
4018         loader_error flag internally to stop processing, and obtaining
4019         exceptions that might be thrown will walk this code path the
4020         proper way of going from a MonoLoaderError into a
4021         MonoException was convoluted.   This new routine encapsulates the
4022         process of turning the error into an exception and *clearing* the
4023         error afterwards.
4024         
4025 2006-04-27  Miguel de Icaza  <miguel@novell.com>
4026
4027         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
4028         with missing assemblies), and to cope with:
4029
4030                 * Missing fieldref from a non-existing assembly.
4031                 * Missing methodref from a non-existing assembly.
4032
4033         The first batch of work to address *some* of the issues from 76661.
4034         
4035         * object.c (mono_class_create_runtime_vtable): If we fail to
4036         initialize the class raise the exception here. 
4037
4038         * metadata.c (mono_class_get_overrides_full): If any methods fail
4039         to load return the failure to the caller.
4040
4041         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
4042         flagging assemblies that failed to load.   
4043
4044         Do not crash if we are unable to load the assembly.
4045
4046         (mono_assembly_close): Do nothing with REFERENCE_MISSING
4047         assemblies. 
4048
4049         * loader.c (mono_loader_set_error_type_load): Change the
4050         convention to always pass unallocated strings, so we make our own
4051         copies (I know our own code had duplicated strings before, but
4052         this keeps the normal conventions).
4053         (method_from_memberref): Call mono_loader_set_error_method_load
4054         for all possible failures of loading the class. 
4055         Remove assert, turn into a loader error.
4056
4057         (mono_loader_error_to_exception): Move this routine from mini
4058         (mini_loader_error_to_exception) there was no need to have that in
4059         mini. 
4060
4061         * class.c (mono_class_from_typeref): If we were not able to load
4062         the assembly with mono_assembly_load_reference, call the
4063         mono_loader_set_error_type_load to register the problem.
4064
4065         (mono_class_setup_fields): If we fail to load the type from
4066         mono_metadata_parse_type_full, call mono_class_set_failure and
4067         break from the loop.
4068
4069         If class->exception_type is set, we do not layout the fields as
4070         that might crash the runtime, and instead return (from breaking
4071         from the previous loop).
4072
4073         (mono_class_setup_vtable): This now returns a boolean indicating
4074         whether the table was properly setup.   The decision is driven by
4075         mono_class_get_overrides_full which might run into non-existing
4076         methods. 
4077         
4078         (mono_class_init): Returns TRUE on success or FALSE if there was a
4079         problem in loading the type (incorrect assemblies, missing
4080         assemblies, methods, etc).
4081
4082         When we call mono_class_setup_fields we also check for a potential
4083         error inside this call (either a class exception or a general
4084         loader exception).
4085
4086         (mono_class_create_from_typedef): If the parent fails to load
4087         (calling mono_class_get_full) return NULL.
4088         
4089         ** Important **
4090
4091         calls to mono_metadata_parse_type_full should be checked
4092         everywhere and set the mono_class_set_failure
4093         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
4094
4095         The current patch checks the places where my manually constructed
4096         tests show the errors are showing up, but we should do it
4097         everywhere. 
4098
4099         ** Important2 **
4100
4101         mono_class_init return values should be tested everywhere, like
4102         the previous case this is something that we should audit
4103         everywhere and not only on the cases exposed by the tests I
4104         created. 
4105
4106 2006-04-26  Miguel de Icaza  <miguel@novell.com>
4107
4108         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
4109         boolean parameter and instead pass the information on `options'
4110         parameter (FileOptions).
4111
4112         * icall.c: Register the new signature for MonoIO.Open.
4113
4114         * debug-helpers.c (dis_one): Trying to understand how coverity
4115         works.  Fix Run 5, item 78.
4116
4117 2006-04-26  Dick Porter  <dick@ximian.com>
4118
4119         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
4120         dereference.
4121
4122 2006-04-25  Martin Baulig  <martin@ximian.com>
4123
4124         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
4125
4126         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
4127         debugger_thread_created().
4128         (debugger_gc_push_all_stacks): Don't handle the main thread in any
4129         special way.
4130         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
4131         (mono_debugger_finalize_threads): New function; undo the effects
4132         of mono_debugger_init_threads().
4133         (mono_debugger_create_all_threads): Removed.
4134
4135 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
4136
4137         * image.c (mono_image_close): Tidy up trace messages.
4138
4139         * assembly.c (mono_assembly_close): Ditto.
4140
4141         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
4142         no longer references an already freed assembly. Fixes #78168.
4143
4144 2006-04-21  Dick Porter  <dick@ximian.com>
4145
4146         * threads.c (mono_thread_detach): Fix reference counting when
4147         detaching threads.
4148
4149 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
4150
4151         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
4152         #78155.
4153
4154 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
4155
4156         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
4157         (mono_type_to_stind): Ditto.
4158
4159         * marshal.c: Use the new helper functions to simplify code.
4160
4161         * image.c (mono_image_close): Add some code for help debug assembly unloading
4162         problems.
4163
4164         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
4165         image mempool.
4166
4167         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
4168         assembly was already loaded in another appdomain. Fixes #78083.
4169
4170 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
4171
4172         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
4173         referenced assemblies.
4174         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
4175
4176         * domain.c (mono_domain_free): Add a trace message.
4177
4178         * appdomain.c (add_assemblies_to_domain): Ditto.        
4179
4180         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
4181         field.  
4182
4183 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4184
4185         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
4186
4187 2006-04-12  Martin Baulig  <martin@ximian.com>
4188
4189         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
4190         `USE_INCLUDED_LIBGC'.   
4191
4192 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4193
4194         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
4195         the patch contains ../ and a small directory name later. Hopefully fixes
4196         #78035.
4197
4198 2006-04-10  Martin Baulig  <martin@ximian.com>
4199
4200         Clean up the debugger's thread-handling code.
4201
4202         The debugger's thread-handling code has been moved from
4203         ../mini/debug-debugger.c to threads.c.  We now iterate directly
4204         over the `threads' hash, keep track of exiting threads and also
4205         use proper locking.
4206
4207         We can now debug XSP and XSP based applications with the debugger.
4208
4209         * object-internals.h (MonoThread): Added `gpointer end_stack'.
4210
4211         * threads.h
4212         (MonoThreadCallbacks): Removed; this was only used by the debugger.
4213         (mono_install_thread_callbacks): Likewise.      
4214
4215         * threads.c (mono_thread_callbacks): Removed.
4216         (debugger_thread_created, debugger_thread_exited): New static functions.
4217         (start_wrapper): Call debugger_thread_created().
4218         (thread_cleanup): Call debugger_thread_exited().
4219         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
4220         (mono_debugger_init_threads): New public function.
4221         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
4222         iterate directly over the `threads' hash and also use proper locking.
4223
4224         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
4225
4226         * mono-debug-debugger.h
4227         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
4228
4229 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
4230
4231         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
4232         argument type=array. Fixes #78057.
4233
4234 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4235
4236         * culture-info-table.h : regenerated. Fixed bug #69652.
4237
4238 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
4239
4240         * loader.c metadata.c: Reapply a variant r59116.
4241         
4242         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
4243
4244         * class.c (mono_class_setup_interface_offsets): New internal function.
4245
4246         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
4247         interfaces too. Fixes #77398.
4248
4249         * reflection.c (encode_cattr_value): Add support for 
4250         parameter type=object, argument type=array.
4251         (load_cattr_value): Ditto. Fixes #77916.
4252
4253         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4254         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4255
4256         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4257         a byval char array and CharSet is Ansi.
4258
4259         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4260
4261 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4262
4263         * metadata.c: Add some locking comments.
4264         
4265         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4266         mempool.
4267         (mono_metadata_free_method_signature): Don't free the signature itself.
4268
4269         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4270
4271         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4272         reference the same MonoImage.
4273         (mono_assembly_load_from_full): Add an assert.
4274
4275 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4276
4277         * image.c (mono_image_close): Don't put the image we are about to free into the
4278         loaded_images_guid_hash.
4279
4280         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4281         to reduce code duplication.
4282
4283         * marshal.c: Register the native functions called by this module as icalls, to
4284         somewhat centralize the creation of MonoMethodSignature's.
4285
4286         * loader.c (mono_method_signature): Add a cache for method signatures.
4287
4288         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4289         the parameter attributes of a method.
4290         (mono_metadata_parse_method_signature_full): Refactored the computation of
4291         parameter attributes into a separate function. Also avoid one allocation in
4292         most cases.
4293
4294         * assembly.c (mono_assembly_close): Ditto.
4295
4296         * image.c (mono_image_close): Log trace messages with INFO level.
4297
4298         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4299
4300         * image.c reflection.c: Correct reference counting of image modules.
4301         
4302         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4303         of this function from the image mempool.
4304         
4305         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4306         to allow more cached types to be used.
4307
4308         * mono-debug.c (mono_debug_add_method): Appled patch from
4309         David S. Miller  <davem@sunset.davemloft.net>: Access 
4310         minfo->lexical_blocks[] entry elements using read32().
4311
4312 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4313
4314         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4315         methods as it is allocated from the mempool.
4316
4317         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4318         image mempool.
4319
4320         * metadata-internals.h: Add comments describing the reference counting scheme
4321         used for MonoImage and MonoAssembly.
4322
4323         * image.c assembly.c reflection.c: Rework reference counting of images and 
4324         assemblies so they are freed when the runtime is shut down. Free some 
4325         additional memory structures when an image is unloaded.
4326         
4327 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4328
4329         * class.c loader.c reflection.c: Allocate more data structures in
4330         the image mempool.
4331
4332 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4333
4334         * icall.c
4335         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4336         build on pre glib 2.4 systems.
4337
4338 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4339
4340         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4341
4342         * icall.c: Fix some warnings.
4343
4344 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4345
4346         * culture-info-table.h : regenerated.
4347
4348 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4349
4350         * threads.c, object-internals.h, verify.c: changed the culture caching
4351         code to use a normal MonoArray for storage so the GC can keep track of
4352         them easily. Fixed bits of the cache logic, too and simplified the
4353         code.
4354
4355 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4356
4357         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4358         thread for non-Boehm GCs.
4359
4360 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4361
4362         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4363         needed to keep track of the data for static fields.
4364
4365 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4366
4367         Fix #75172
4368         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4369         for interface classes.  Use 'num_methods' instead.
4370         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4371         before using '->vtable_size' field.
4372
4373 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4374
4375         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4376         doesn't contain managed pointers, so use a normal hashtable.
4377
4378 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4379
4380         * reflection.c, class-internals.h, domain.c: fixed handling of types
4381         used as values for objects in custom attributes (bug #77915):
4382
4383 2006-03-24  Martin Baulig  <martin@ximian.com>
4384
4385         * class.c (mono_class_setup_fields): Added support for generic
4386         instances; fixes #77580.
4387
4388 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4389
4390         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
4391
4392 2006-03-24  Dick Porter  <dick@ximian.com>
4393
4394         * file-io.c (get_file_attributes): More stat macro breakage.
4395         Fixes bug 77759.
4396
4397 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4398
4399         * profiler.c: added the file=filename option in the default profiler
4400         to output the profile data to filename.
4401
4402 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4403
4404         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4405         bug #77877.
4406
4407 2006-03-22  Martin Baulig  <martin@ximian.com>
4408
4409         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4410         allocated `MonoClassField *' in `fb->handle'.
4411
4412 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4413
4414         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4415         allocate interface ID to save memory and allow better ID reuse on
4416         appdomain unload. setup_generic_vtable () removal from Martin.
4417
4418 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4419
4420         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4421         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4422         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4423         write barriers for reference stores with managed objects accessed with
4424         C structures in the runtime and in embedding programs.
4425
4426 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4427
4428         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4429         'interface_id' and 'max_interface_id' fields of MonoClasses
4430         representing open generic types.
4431
4432 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4433
4434         * object.h, object.c, icall.c: added functions to deal with
4435         storing valuetypes that contain references in managed objects.
4436         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4437         fixes and comments around uses of mono_array_addr ().
4438
4439 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4440
4441         * object.h, icall.c, monitor.c: object.GetHashCode ()
4442         implementation that supports the moving garbage collector.
4443
4444 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4445
4446         * icall.c, threads-types.h, threads.c: implemented finalizer for
4447         LocalDataStoreSlot.
4448
4449 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4450
4451         * metadata.c (mono_type_size): Add a fixme.
4452         (mono_type_stack_size): Ditto.
4453
4454         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4455         'type_forwarders' field.
4456
4457         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4458         attribute from net 2.0.
4459
4460         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4461         from class.c.
4462
4463         * class.c (mono_class_setup_fields): Fix a warning.
4464         
4465         * class.c (mono_class_from_name): Add support for assemblyref entries
4466         in the EXPORTEDTYPE table.
4467
4468         * reflection.c: Add support for handling type forwarders under net 2.0.
4469
4470         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4471         
4472 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4473
4474         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4475         overwriting entries in ModuleBuild->types, also clean up the code
4476         a little. Fixes #77774.
4477
4478 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4479
4480         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4481         load friend assembly info when present.
4482
4483 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4484
4485         Fix crasher on gtest-158.cs.
4486         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4487         the return value if the MonoClass we want is yet in an
4488         inconsistent state.
4489         * class.c (mono_class_create_from_typedef): Add an comment
4490         explaining an order dependency between mono_class_setup_parent and
4491         mono_class_setup_mono_type.
4492
4493 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
4494
4495         * class.c: documentation updates and events bug fix.
4496
4497 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4498
4499         * class.c: some cleanup, locking fixes.
4500
4501 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
4502
4503         * class.c: fix the generics code to setup nested
4504         type info to the instantiated type (bug #77770).
4505
4506 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4507
4508         * marshal.c: fixed a few type correctness issues.
4509
4510 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4511
4512         * loader.c: the Set/Get/Addrtess array methods should be public.
4513
4514 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
4515
4516         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
4517         
4518         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
4519         info->wrapper.
4520
4521 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
4522
4523         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
4524
4525         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
4526
4527         * mempool.c (mono_mempool_alloc): Speed this up a bit.
4528         (mono_mempool_alloc0): Ditto.
4529
4530 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4531
4532         * socket-io.c:
4533         (create_object_from_sockaddr): it was allocating 4 extra bytes
4534         for the AF_UNIX data. Fixes bug #77747.
4535
4536 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
4537
4538         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
4539
4540 2006-03-09  Dick Porter  <dick@ximian.com>
4541
4542         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
4543         Fixes bug 76966 again.
4544
4545 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
4546
4547         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
4548         names from r57532
4549         * appdomain.c: Bumped corlib version to 48 (due to r57532)
4550
4551 2006-03-07  Martin Baulig  <martin@ximian.com>
4552
4553         * object.c
4554         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
4555
4556 2006-03-07  Martin Baulig  <martin@ximian.com>
4557
4558         * class.c
4559         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
4560         regression introduced in r56970; see gtest-252.cs.
4561
4562         * loader.c (mono_get_method_constrained): Correctly handle generic
4563         methods; see gtest-253.cs.
4564
4565 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
4566
4567         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
4568
4569 2006-03-04  Martin Baulig  <martin@ximian.com>
4570
4571         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
4572         compute the parent type at runtime, just like we're already doing
4573         it for interfaces.
4574
4575         * reflection.c
4576         (mono_reflection_bind_generic_parameters): Don't compute the
4577         parent type anymore.
4578
4579         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
4580
4581 2006-03-04  Martin Baulig  <martin@ximian.com>
4582
4583         * mono-debug-debugger.h
4584         (mono_debugger_create_notification_function): Allocate memory at
4585         runtime and return a pointer to it.
4586
4587 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
4588
4589         * assembly.c: Fix windows build.
4590         
4591         * assembly.c: Fix build.
4592
4593         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
4594
4595         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
4596         
4597 2006-03-03  Dick Porter  <dick@ximian.com>
4598
4599         * process.c
4600         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4601         Check parameters before dereferencing them.  Fixes Aaron's part of
4602         bug 77393.
4603
4604 2006-03-03  Raja R Harinath  <rharinath@novell.com>
4605
4606         Fix performance regression.
4607         * loader.c (find_method_in_class): Add 'from_class' argument.
4608         Rename 'klass' argument to 'in_class'.  The signature is compared
4609         against the method in 'in_class', and the corresponding method is
4610         returned from 'from_class'.
4611         (find_method): Walk both 'in_class' and 'from_class' in parallel.
4612         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
4613         type definition and generic instantiation in parallel.
4614         (mono_get_method_constrained): Update to changes.
4615
4616 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
4617
4618         * threads.c: make sure the domain is correct, too when doing
4619         mono_thread_attach ().
4620
4621 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
4622
4623         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
4624         windows. Fixes #77683.
4625
4626 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
4627
4628         * object.h, *: introduced specific way to set elements of an array
4629         of references to be used as write barrier. Still need to audit the
4630         uses of mono_array_addr.
4631
4632 2006-03-01  Miguel de Icaza  <miguel@novell.com>
4633
4634         * object-internals.h: New field to cache the assmebly name, patch
4635         from Tambet Ingo (tambet@ximian.com)
4636
4637 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4638
4639         * decimal.h, class-internals.h, metadata-internals.h,
4640         file-io.h: mark a few function declarations as internal, to
4641         reduce the number of PLT entries.
4642
4643 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4644
4645         * file-io.c: fix typo in warning message.
4646
4647 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
4648
4649         * loader.c: on unix, lookup the "*A" version of a function
4650         if charset is auto as a second option before failing.
4651
4652 2006-02-28  Raja R Harinath  <rharinath@novell.com>
4653
4654         * class.h (mono_class_inflate_generic_method): Revert to two
4655         argument version.
4656         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
4657         (mono_class_inflate_generic_method_full): Add.
4658         * class.c (mono_class_inflate_generic_method_full): Rename from
4659         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
4660         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
4661         * loader.c, reflection.c: Update to changes.
4662
4663 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
4664
4665         * icall.c: const fixes and small improvements.
4666
4667 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4668
4669         * threadpool.c: for asynchronous connect(), enable the same workaround
4670         for BSD 6 as for the Mac. Fixes bug #77637.
4671
4672 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
4673
4674         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
4675         formatted classes. Fixes #77524.
4676
4677 2006-02-24  Raja R Harinath  <rharinath@novell.com>
4678
4679         * class.c (inflate_generic_type): Add a couple more
4680         micro-optimizations.
4681         (inflate_generic_context): Don't use the 'gmethod' from
4682         'inflate_with'.
4683         (mono_class_inflate_generic_method): If the method has generic
4684         parameters, but the passed-in context doesn't have a 'gmethod',
4685         create one.  Use the possibly simplified generic instantiation
4686         from the declaring class instead of the one passed in.
4687
4688 2006-02-24  Raja R Harinath  <harinath@gmail.com>
4689
4690         Make generic method signature and method header handling lazy.
4691         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
4692         (inflate_generic_header): Likewise.
4693         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
4694         parameter to avoid inflating types.
4695         (mono_get_inflated_method): Empty out.
4696         * class.h (mono_class_inflate_generic_method): Update to changes.
4697         * loader.c (mono_get_method_from_token): Don't parse signature for
4698         generic methods, nor methods of generic classes.
4699         (mono_method_signature): Rename from 'mono_method_signature'.
4700         Inflate signature on demand.
4701         (mono_method_get_header): Inflate method header on demand.
4702         * reflection.c: Update to changes.
4703
4704 2006-02-23  Raja R Harinath  <rharinath@novell.com>
4705
4706         * metadata.c (mono_metadata_inflate_generic_inst): If the
4707         instantiation is closed, don't bother expanding it in the new
4708         context.
4709         * class.c (inflate_generic_class): If the generic instantiation
4710         doesn't change after inflation, return the argument itself.
4711         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
4712         Add bounds checks.
4713         (inflate_generic_context): If neither the generic class nor the
4714         generic method instantiations change, return the original context.
4715         * reflection.c (mono_method_get_object): Do
4716         'mono_get_inflated_method' before accessing the ->klass field.
4717         (inflate_mono_method): Don't create a MonoGenericMethod unless
4718         necessary.
4719         (inflate_method): Don't pass a constructed type as the declaring
4720         type of a methodbuilder.
4721
4722 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
4723
4724         * object.c: fix memory overwrite.
4725
4726 2006-02-22  Dick Porter  <dick@ximian.com>
4727
4728         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
4729         it doesn't work any more.
4730         (mono_threads_request_thread_dump): Fix unused variable warnings.
4731
4732 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4733
4734         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
4735         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
4736         the public header file.
4737
4738 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
4739
4740         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
4741
4742 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
4743
4744         * class-internals.h, object.c: reduce the size of MonoVTable
4745         and store the interface_offsets array at negative offsets.
4746
4747 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
4748
4749         * metadata.c: tweak table descriptors data structures to reduce
4750         size and runtime relocations.
4751
4752 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4753
4754         * marshal.c: fix some types and opcodes to be type-safe
4755         in marshaling wrappers.
4756
4757 2006-02-21  Ankit Jain  <jankit@novell.com>
4758
4759         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
4760
4761 2006-02-21  Raja R Harinath  <rharinath@novell.com>
4762
4763         * metadata.c (get_constraints): Relax debugging checks for monodis.
4764
4765 2006-02-21  Ankit Jain  <jankit@novell.com>
4766
4767         * metadata.c (mono_metadata_load_generic_params): Move the code
4768         checking for ambiguous generic params from here to mono/dis/get.c
4769         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
4770
4771 2006-02-21  Raja R Harinath  <harinath@gmail.com>
4772
4773         Fix assertion triggered when compiling nemerle.
4774         * class.c (mono_get_shared_generic_inst): Rename from
4775         get_shared_inst and make non-static.
4776         * loader.c (mono_get_shared_generic_method): New.  Used to create
4777         the MonoGenericContext-equivalent of a MonoGenericContainer.
4778         (mono_get_method_from_token): Initialize the 'context' field of
4779         the created MonoGenericContainer.
4780         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
4781         * metadata.c (get_constraints): Add sanity check.
4782         * class-internals.h: Add new internal methods.
4783
4784         * reflection.c (verify_safe_for_managed_space): New sanity check.
4785         Currently checks that owner-less generic parameters aren't allowed
4786         in managed space.
4787         (mono_type_get_object): Use it.
4788         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
4789         that are now in mono_type_get_object.
4790         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
4791
4792 2006-02-19  Raja R Harinath  <harinath@gmail.com>
4793
4794         * metadata.c (mono_type_create_from_typespec): Rename from
4795         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
4796         argument and caching of types in the generic container.
4797         (unwrap_arrays, find_generic_param): Remove.
4798         * metadata-internals.h: Update.
4799         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
4800
4801 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
4802
4803         * class.c (mono_class_get_exception_for_failure): Fix a warning.
4804
4805         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
4806         return values. Fixes #77581.
4807
4808         * class.c (mono_fnptr_class_get): Switch name and name_space.
4809
4810         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
4811         classes and add support for [In, Out] attributes.
4812         (mono_marshal_free_asany): Ditto. Fixes #77524.
4813
4814 2006-02-18  Raja R Harinath  <harinath@gmail.com>
4815
4816         * class.c (mono_class_from_generic_parameter): Make more robust to
4817         incomplete MonoGenericContainers from monodis.
4818
4819 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4820
4821         * class-internals.h: added some more exception types.
4822         * class.c, metadata.c: added a few checks to handle missing
4823         types.
4824
4825 2006-02-17  Raja R Harinath  <rharinath@novell.com>
4826
4827         Use owner-less generic-params some more.
4828         * class.c (my_mono_class_from_generic_parameter): Remove.
4829         (mono_class_from_generic_parameter): Handle null image,
4830         param->name and param->owner.
4831         (mono_class_from_mono_type): Update.
4832         (mono_class_create_from_typespec): Remove 'container' parameter.
4833         If that parameter is non-null, the result is always inflated by
4834         'mono_class_get_full' anyway.
4835         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
4836         parameter.
4837         (mono_class_get_full): Update.
4838
4839         * class.c (inflate_generic_type) [GENERICINST]: If the generic
4840         instance is not open, don't bother inflating.
4841         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
4842         parse metadata for inflated classes.
4843         (_mono_class_get): Change GenericContext* parameter to
4844         GenericContainer*.
4845         (mono_class_create_from_typespec): Likewise.  Simplify, and
4846         implement trivially.  All the cases are handled in
4847         mono_class_from_mono_type.  Don't inflate returned class.
4848         (mono_class_get_full): Delegate GENERICINST optimization to
4849         inflate_generic_type.
4850         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
4851
4852 2006-02-16  Dick Porter  <dick@ximian.com>
4853
4854         * socket-io.c (create_object_from_sockaddr): Fix typo.
4855         (create_sockaddr_from_object): Check array lengths before
4856         potentially accessing items off the end.
4857         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
4858         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
4859         (ves_icall_System_Net_Sockets_Socket_Send_internal)
4860         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
4861         length checks to avoid wraparound overflows.
4862         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
4863         contents of the array of sockets
4864         (hostent_to_IPHostEntry2)
4865         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
4866         Check return value of inet_ntop ().
4867         (addrinfo_to_IPHostEntry): Fix typo
4868
4869 2006-02-16  Raja R Harinath  <rharinath@novell.com>
4870
4871         Type metadata parsing doesn't use generic-instantiation information.
4872         * metadata.c (mono_metadata_parse_array_full): Change
4873         MonoGenericContext* parameter to MonoGenericContainer*.
4874         (mono_metadata_parse_type_full): Likewise.
4875         (mono_type_create_from_typespec_full): Likewise.
4876         (mono_metadata_parse_mh_full): Likewise.
4877         (mono_metadata_parse_generic_inst): Likewise.
4878         (do_mono_metadata_parse_generic_class): Likewise.
4879         (do_mono_metadata_parse_type): Likewise.
4880         * metadata-internals.h: Update to changes.
4881         * class.c (mono_class_find_enum_basetype): Likewise.
4882         (mono_class_setup_fields): Likewise.
4883         (mono_class_create_from_typespec): Likewise.
4884         * loader.c (method_from_methodspec): Likewise.
4885         (mono_get_method_from_token): Likewise.
4886         (mono_method_get_header): Likewise.
4887
4888 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4889
4890         * marshal.c: handle additional GENERICINST case (patch from
4891         Thong Nguyen <tum@veridicus.com>).
4892         Fix a few cases where LDIND_I/STIND_I was used for references.
4893
4894 2006-02-16  Raja R Harinath  <rharinath@novell.com>
4895
4896         * reflection.c (mono_reflection_get_token): Remove unused variable.
4897
4898 2006-02-16  Martin Baulig  <martin@ximian.com>
4899
4900         * reflection.c (mono_reflection_get_token): Add support for fields
4901         in instantiated generic types.
4902
4903         * icall.c
4904         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
4905
4906 2006-02-15  Martin Baulig  <martin@ximian.com>
4907
4908         * icall.c
4909         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
4910         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
4911         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
4912         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
4913
4914 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
4915
4916         * class.c, metadata.c, metadata.h, object.c, icall.c,
4917         marshal.c: changed mono_type_get_underlying_type () to do
4918         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
4919         Fixed handling of instantiated generic valuetypes (bug #75479).
4920
4921 2006-02-15  Raja R Harinath  <rharinath@novell.com>
4922
4923         * metadata.c (mono_metadata_decode_signed_value): Simplify.
4924         Delegate to mono_metadata_decode_value, and work on the returned value.
4925
4926         * icall.c (ves_icall_MonoType_GetGenericArguments):
4927         Add consistency check here too.
4928         
4929 2006-02-15  Ankit Jain  <jankit@novell.com>
4930
4931         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
4932         char/short etc.
4933
4934 2006-02-15  Ankit Jain  <jankit@novell.com>
4935
4936         * metadata.c (mono_metadata_decode_signed_value): New function to decode
4937         signed values, used only for representing lower bounds of arrays.
4938         (mono_metadata_parse_array_full): Use new
4939         mono_metadata_decode_signed_value to decode lower bounds.
4940
4941 2006-02-14  Martin Baulig  <martin@ximian.com>
4942
4943         * reflection.c
4944         (mono_reflection_get_token): Support "MonoGenericMethod" and
4945         "MonoGenericCMethod" and allow generic instances / methods.
4946
4947 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
4948
4949         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
4950         to obtain the terminal size using an ioctl.
4951
4952         * object.c (mono_nullable_init): Revert this as nullable reference
4953         types are not valid.
4954         (mono_nullable_box): Ditto.
4955
4956 2006-02-09  Dick Porter  <dick@ximian.com>
4957
4958         * threads.c (mono_thread_detach): Drop a reference to the thread
4959         we're detaching.
4960
4961 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
4962
4963         * object.c (mono_nullable_init): Handle nullable reference types.
4964         (mono_nullable_box): Ditto. Fixes #77446.
4965
4966 2006-02-07  Martin Baulig  <martin@ximian.com>
4967
4968         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
4969
4970 2006-02-07  Ankit Jain  <jankit@novell.com>
4971
4972         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
4973         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
4974         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
4975         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
4976         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
4977         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
4978
4979 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
4980
4981         * class.c (mono_class_create_generic): Set type_token as well.
4982
4983         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
4984         compatible with MS.
4985
4986 2006-02-02  Martin Baulig  <martin@ximian.com>
4987
4988         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
4989         has never been used so far.
4990
4991 2006-02-02  Martin Baulig  <martin@ximian.com>
4992
4993         * mono-debug-debugger.h: Changed comment at the top of this file;
4994         the header is not installed, but it's safe to #include it from
4995         within the JIT.
4996
4997         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
4998         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
4999
5000 2006-02-02  Martin Baulig  <martin@ximian.com>
5001
5002         * mono-debug.h
5003         (MonoSymbolTable): Removed the `metadata_info' field.
5004
5005         * mono-debug.c
5006         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
5007
5008         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5009         (mono_debugger_add_builtin_types): Removed.
5010         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
5011         (mono_debugger_create_notification_function): We now operate on a
5012         pre-allocated area; take a `gpointer' and return `void'.
5013
5014         * mono-debug-debugger.c
5015         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
5016         (mono_debugger_add_builtin_types): Removed.
5017
5018 2006-02-02  Martin Baulig  <martin@ximian.com>
5019
5020         * threads.c (mono_debugger_create_all_threads): New public method.
5021
5022 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5023
5024         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
5025         breaks on several platforms.
5026
5027 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
5028
5029         * assembly.c: the VS.NET build doesn't supply default values for
5030         MONO_ASSEMBLIES and MONO_CFG_DIR.
5031
5032 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
5033
5034         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
5035         helper function.
5036
5037         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
5038
5039         * loader.c (method_from_memberref): Fix a warning.
5040
5041         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
5042
5043         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
5044         with explicit layout. Fixes #77433.
5045
5046 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
5047
5048         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
5049         max_interface_id is initialized before using it. Fixes #77398.
5050         (ves_icall_Type_GetInterfaces): Ditto.
5051
5052 2006-01-30  Raja R Harinath  <rharinath@novell.com>
5053
5054         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5055         allocate memory for parameter attributes when parsing memberref
5056         signatures.
5057         * loader.c (mono_loader_set_error_method_load): Don't warn.
5058         (method_from_memberref): Ensure MissingMethodException gets thrown
5059         if method is not found.  Make warning more informative.
5060
5061 2006-01-29  Raja R Harinath  <harinath@gmail.com>
5062
5063         Fix #77397
5064         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
5065         return true if is byref.
5066         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5067         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
5068         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
5069
5070 2006-01-27  Raja R Harinath  <rharinath@novell.com>
5071
5072         Fix tests/find-method.2.il
5073         * loader.c (find_method, find_method_in_class): Remove is_inflated
5074         argument.  Revert 2006-01-18 change.
5075         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
5076         is generic, search for method in its generic definition.
5077         * class.c (mono_class_setup_vtable_general): Print generic
5078         arguments of generic types in debugging printf.
5079
5080 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
5081
5082         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
5083
5084         * threads.c (mono_threads_request_thread_dump): New helper function.
5085
5086 2006-01-25  Raja R Harinath  <rharinath@novell.com>
5087
5088         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
5089
5090 2006-01-25  Ankit Jain  <jankit@novell.com>
5091
5092         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
5093         move definition to ..
5094         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
5095         
5096 2006-01-25  Ankit Jain  <jankit@novell.com>
5097             Raja R Harinath  <rharinath@novell.com>
5098
5099         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
5100         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
5101         as necessary.
5102
5103 2006-01-25  Martin Baulig  <martin@ximian.com>
5104
5105         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
5106         `MonoDebuggerThread' into debug-debugger.c.
5107
5108 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
5109
5110         * profiler.c: fix printing of data.
5111
5112 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
5113
5114         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
5115           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
5116
5117 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5118
5119         * object.c: fix deadlock related to string interning.
5120
5121 2006-01-23  Martin Baulig  <martin@ximian.com>
5122
5123         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5124
5125         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
5126
5127 2006-01-23  Martin Baulig  <martin@ximian.com>
5128
5129         * mono-debug.h: Moved the prototypes of some functions which are
5130         used by the JIT here from mono-debug-debugger.h.
5131
5132 2006-01-21  Martin Baulig  <martin@ximian.com>
5133
5134         * Makefile.am: Don't install mono-debug-debugger.h.
5135
5136 2006-01-21  Martin Baulig  <martin@ximian.com>
5137
5138         * mono-debug-debugger.h: Enforce the private status of this header
5139         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
5140         Moved some stuff from mono-debugger-jit-wrapper.h here.
5141
5142 2006-01-20  Raja R Harinath  <rharinath@novell.com>
5143
5144         * class.c (mono_class_from_typeref): Add a sanity test to help
5145         catch lack of assembly load/search hooks.
5146
5147 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
5148
5149         * marshal.c (emit_struct_conv): Relax the fields with same offset
5150         check even more. Fixes #77230.
5151
5152 2006-01-18  Martin Baulig  <martin@ximian.com>
5153
5154         * loader.c (find_method_in_class): Added `gboolean is_inflated'
5155         argument; if false, we compare the uninstantiated signatures.
5156         (method_from_memberref): Compare the uninstantiated signatures;
5157         fixes #76417.
5158
5159 2006-01-18  Robert Jordan  <robertj@gmx.net>
5160
5161         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
5162         Clear the weak link. Fixes bug #77170.
5163
5164         * gc.c (mono_gchandle_free):
5165         Reflect *-gc.c changes (tiny optimization).
5166
5167 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
5168
5169         * metadata.c (mono_metadata_signature_dup): Applied patch from
5170         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
5171         Fixes #77288.
5172
5173 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
5174
5175         * marshal.c (emit_struct_conv): Allow fields with the same offset when
5176         marshalling from native to managed code. Fixes #77230.
5177
5178 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5179
5180         * threadpool.c: fix problem (Mac only) when more than one asynchronous
5181         connect. Fixes bug #77020.
5182
5183 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5184
5185         * class.c: fixed id assignement for nested interfaces (bug #77275).
5186         Added also better info for --print-vtable debugging.
5187
5188 2006-01-12  Martin Baulig  <martin@ximian.com>
5189
5190         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
5191         interfaces on-the-fly; fixes #76625.
5192
5193         * class-internals.h
5194         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
5195         don't need that anymore.
5196
5197 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5198
5199         * socket-io.c
5200         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5201         To avoid initing the nested_classes when not needed I turned the
5202         PeerCredData as a toplevel internal class, as it has to be shared
5203         anyways. 
5204
5205         Fixes the CASA issue.
5206
5207 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
5208
5209         * domain.c: Accessors for MonoJitInfo
5210
5211         * profiler-private.h: Add jitinfo to the end jit hook
5212
5213         * profiler.[ch]: Define new hooks, called after jitting which give
5214         the MonoJitInfo that was compiled
5215
5216 2006-01-10  Martin Baulig  <martin@ximian.com>
5217
5218         * class.c (mono_class_setup_events): Add support for generic
5219         classes; fixes #76440.
5220
5221 2006-01-06  Raja R Harinath  <rharinath@novell.com>
5222
5223         Fix #77160.
5224         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
5225         on passed-in method.
5226
5227 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5228
5229         * object.c (mono_runtime_invoke_array): Add Nullable support.
5230
5231         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
5232
5233 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
5234
5235         * file-io.c: Don't consider sockets as directory and avoid an endless
5236         loop. Fix bug #76966.
5237
5238 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5239
5240         * object.c (mono_nullable_init): New helper function.
5241         (mono_nullable_box): Ditto.
5242
5243         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
5244
5245         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
5246
5247         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
5248         
5249 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
5250
5251         * class.c (mono_class_is_assignable_from): Make T assignable to 
5252         Nullable<T>.
5253
5254 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5255
5256         * appdomain.c: Bump corlib version to 46.
5257         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5258         serialization purpose) and changed ves_icall_System_Reflection_
5259         Assembly_get_code_base signature to accept a boolean (to escape, or 
5260         not, the assembly code base).
5261
5262 2005-12-23  Dick Porter  <dick@ximian.com>
5263
5264         * icall.c: 
5265         * threads-types.h: 
5266         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5267         CreateEvent icall now returns "created" boolean parameter.
5268
5269 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5270
5271         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5272         #76967.
5273
5274         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5275         when attr_klass is an interface. Fixes #77045.
5276
5277 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5278
5279         * marshal.c (emit_struct_conv): Fix previous patch.
5280         
5281         * marshal.c (emit_struct_conv): Add a check for fields with the same
5282         offset.
5283
5284 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5285
5286         Fix regression in Mono.C5.
5287         * class.c (mono_class_create_generic): If 'klass' is an interface
5288         set up the interface offsets.
5289         (mono_class_is_assignable_from): Don't throw away generic arguments.
5290
5291 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5292
5293         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5294         type parameters.
5295
5296 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5297
5298         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5299         dead store.
5300         (do_mono_metadata_parse_generic_class): Don't pass the current
5301         generic context when parsing the type being instantiated: it
5302         cannot use it, anyway.
5303
5304         * loader.c (method_from_memberref): Don't inflate a signature if
5305         it doesn't contain any type parameters.
5306
5307 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5308
5309         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5310
5311 2005-12-14  Martin Baulig  <martin@ximian.com>
5312
5313         * class.c
5314         (mono_type_get_name_recurse): Don't return null for type
5315         parameters and open generic classes.
5316         (mono_class_setup_methods): Don't exclude generic instances.
5317         (mono_get_unique_iid): Use different IDs for different
5318         instantiations of the same generic type.
5319         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5320         open generic instances; create a normal vtable for closed generic
5321         instances.
5322         (mono_class_setup_vtable_general): We're now also called for
5323         closed generic instances.
5324
5325         * reflection.c
5326         (mono_reflection_bind_generic_parameters): Correctly use
5327         mono_metadata_lookup_generic_inst() everywhere.
5328
5329 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5330
5331         * object.c (mono_class_create_runtime_vtable): Call 
5332         mono_class_setup_vtable ().
5333
5334         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5335         function.
5336         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5337         #76959.
5338
5339         * loader.c (mono_loader_set_error_type_load): Print the type load
5340         warnings to the console so they are more visible to the user.
5341         (mono_loader_set_error_method_load): Ditto.
5342
5343         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5344         is still broken.
5345         
5346         * reflection.c (ensure_runtime_vtable): Fix build.
5347
5348         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5349         doesn't work in all cases.
5350
5351 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5352
5353         * object.c (mono_array_new_full): Treat a single dimensional array
5354         with 0 lower bounds as an szarray. Fixes #76973.
5355
5356         * reflection.c (custom_attr_visible): Really fix this.
5357
5358 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5359
5360         * reflection.c (custom_attr_visible): Allow nested public attributes
5361         as well.
5362
5363         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5364         interface check.
5365
5366 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5367
5368         * class.c (set_generic_param_owner): Delete.
5369         (mono_class_create_from_typedef): Don't set ->owner field of
5370         generic parameters to "param containers" of enclosing classes.
5371         * reflection.c (mono_reflection_initialize_generic_parameter):
5372         Likewise.
5373
5374 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5375
5376         * reflection.c (custom_attr_visible): Fix build.
5377
5378 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5379
5380         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5381         private attributes.
5382         
5383         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
5384         handling of null parameter defaults.
5385
5386 2005-12-09  Raja R Harinath  <rharinath@novell.com>
5387
5388         * class.c (mono_class_from_generic_parameter): Don't set
5389         klass->generic_container.
5390         (my_mono_class_from_generic_parameter): Likewise.
5391
5392 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
5393
5394         * reflection.c (load_public_key): Fix a warning.
5395         (method_encode_code): Fix unaligned accesses.
5396
5397 2005-12-07  Martin Baulig  <martin@ximian.com>
5398
5399         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5400
5401         * reflection.c
5402         (write_generic_param_entry): Encode our custom attrs.
5403
5404         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5405
5406 2005-12-07  Martin Baulig  <martin@ximian.com>
5407
5408         * reflection.c (encode_new_constraint): Removed; we don't use the
5409         `NewConstraintAttribute' anymore.
5410
5411 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5412
5413         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5414         not fire a TypeResolve event when Assembly.GetType () is called.
5415
5416 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5417
5418         Beginning of support for nullable types in the runtime. Parts of
5419         this patch are from Martin.
5420
5421         * appdomain.c (MONO_CORLIB_VERSION): Bump
5422
5423         * domain.c (mono_init_internal): get the nullable type
5424
5425         * class.c (mono_class_is_nullable): New method
5426         (mono_class_get_nullable_param): New mehod
5427         (mono_class_create_generic): In types T? set cast_class to T
5428
5429         * class-internals.h (MonoDefaults): new nullable default class
5430         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5431         new methods.
5432
5433 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5434
5435         * metadata.c (select_container): New.  Refactor code to select the
5436         appropriate GenericContainer given the type of generic parameter
5437         we are looking for.
5438         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5439         not a MonoGenericContext.  Use select_container.  Update parameters.
5440         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5441         and MONO_TYPE_MVAR.
5442         (unwrap_arrays): Remove duplicate tests.
5443         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5444         generic instantiated class to find any arguments that are generic
5445         parameters.
5446         (mono_type_create_from_typespec_full): Use find_generic_param to
5447         avoid evicting some generic instantiations from the typespec
5448         cache.
5449
5450 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5451
5452         * reflection.c: fixed writing of doubles on ARM FPA.
5453
5454 2005-12-02  Robert Jordan  <robertj@gmx.net>
5455
5456         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5457
5458 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5459
5460         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5461         least on SUSE 10 they are not the same (on debian, they are just the
5462         same thing).
5463
5464 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5465
5466         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5467         DeclaringType for VARs and MVARs.
5468         * class.c (set_generic_param_owner): Fix initialization of owner
5469         fields.
5470
5471 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5472
5473         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5474
5475 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5476
5477         * threadpool.c: workaround for a bug that shows up on the Mac:
5478         select()+connect() on a blocking socket is not like it should
5479         be, so we proceed to connect() in that case, wasting the I/O
5480         threadpool thread until connect succeedes. Fixes bug #75436.
5481
5482 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5483
5484         * threadpool.c: fix typo when setting file descriptor states.
5485
5486 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5487
5488         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5489         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5490         create a temporary signature container.
5491         (mono_metadata_parse_generic_param): Update to changes.
5492         (mono_type_create_from_typespec_full): Update to changes.
5493         * loader.c (method_from_memberref): Don't use a
5494         MonoGenericContainer while parsing a memberref signature.
5495         (method_from_methodspec): Remove dead-store of the 'container'
5496         variable.  It's overwritten before use.
5497
5498         * metadata.c (mono_type_create_from_typespec_full): Make debugging
5499         checks tighter.
5500         (mono_metadata_parse_generic_param): Likewise.
5501         * loader.c (find_method_in_class): Does not need a
5502         MonoGenericContainer.  Use 'mono_method_signature' rather than
5503         'mono_method_signature_full'.
5504         (find_method, mono_get_method_constrained, method_from_memberref):
5505         Update to changes.
5506
5507         * metadata.c (mono_type_create_from_typespec_full): Ensure that
5508         owner-less generic-parameters are never evicted from the typespec
5509         cache.
5510
5511         * loader.c (method_from_memberref): Don't use the current context
5512         when parsing signatures.
5513         (method_from_methodspec, mono_get_method_from_token): Update to changes.
5514
5515         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
5516         side-effects in g_assert.
5517         * loader.c (mono_get_method_from_token): Resolve klass earlier so
5518         that we don't potentially lose information.
5519
5520 2005-11-26  Dick Porter  <dick@ximian.com>
5521
5522         * icall.c:
5523         * threads.c: icalls to implement basic (ie, not named)
5524         System.Threading.Semaphore.
5525
5526 2005-11-24  Dick Porter  <dick@ximian.com>
5527
5528         * process.c
5529         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5530         Use GetProcessId() if it's available.
5531
5532 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
5533
5534         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
5535
5536 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5537             Ankit Jain  <jankit@novell.com>
5538
5539         * loader.c (mono_get_method_from_token): Initialize 'method' field
5540         of all generic parameters before parsing the signature.  Remove
5541         code that "fixed"-up MVAR references.
5542
5543 2005-11-23  Ankit Jain  <jankit@novell.com>
5544
5545         * metadata.c (mono_metadata_has_generic_params):
5546         (mono_metadata_load_generic_param_constraints):
5547         (mono_metadata_load_generic_params): Move duplicate code ...
5548         (mono_metadata_get_generic_param_row): ... here. Returns the
5549         first row-id in GenericParam table for a given owner (token).
5550         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
5551         prototype.
5552
5553 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5554             Ankit Jain  <jankit@novell.com>
5555
5556         * metadata.c (mono_metadata_class_equal): Pass signature_only when
5557         comparing VARs too.
5558         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
5559         type->data.generic_param only if the type is an MVAR.
5560         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
5561         leak owner-less VARs and MVARs into managed space.
5562
5563 2005-11-21  Martin Baulig  <martin@ximian.com>
5564
5565         * class-internals.h
5566         (MonoMethod): Moved the `generic_container' here from
5567         `MonoMethodNormal' since we now also need it for
5568         `MonoMethodPInvoke';
5569         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
5570         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
5571         an union containing both `MonoMethodNormal' and
5572         `MonoMethodPInvoke'.
5573
5574         * loader.c
5575         (mono_get_method_from_token): Allow implementing generic methods
5576         as interncalls.
5577
5578         * threads.c
5579         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
5580         icall.
5581
5582 2005-11-17  Dick Porter  <dick@ximian.com>
5583
5584         * icall.c: 
5585         * process.h: 
5586         * process.c: Split the Process Start_internal icall into
5587         ShellExecuteEx_internal and CreateProcess_internal, which are
5588         called depending on whether UseShellExecute is true.  Fixes bug
5589         76670.
5590
5591         * appdomain.c (MONO_CORLIB_VERSION): Incremented
5592
5593 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
5594
5595         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
5596         'msize' parameters, use the information in 'mspec' instead.
5597         (emit_object_to_ptr_conv): Ditto.
5598
5599         * marshal.c (emit_struct_conv): Handle explicit layout structs with
5600         fields out of order. Fixes #76733.
5601
5602 2005-11-17  Ankit Jain  <jankit@novell.com>
5603
5604         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
5605
5606 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
5607
5608         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
5609           bug #76575.
5610
5611 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5612
5613         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
5614         for types with non-auto layout. Fixes #76717.
5615
5616 2005-11-16  Ankit Jain  <jankit@novell.com>
5617
5618         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
5619         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
5620         if generic_context is null.
5621           (mono_metadata_generic_param_equal): param->owner can be null.
5622           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
5623         null.
5624
5625 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5626
5627         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
5628         the correct value.
5629
5630 2005-11-15  Martin Baulig  <martin@ximian.com>
5631
5632         * object.c (set_value): Use mono_class_from_mono_type() instead of
5633         the hack for generic instances; fixes #76136.
5634
5635 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
5636
5637         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
5638         fields.
5639
5640         * image.c (load_metadata_ptrs): Initialize the new fields.
5641
5642         * reflection.c (create_dynamic_mono_image): Ditto.
5643
5644         * reflection.c (build_compressed_metadata): Use the new fields.
5645
5646         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
5647         icall.
5648
5649         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
5650         icall.
5651         
5652 2005-11-15  Ankit Jain  <jankit@novell.com>
5653             Raja R Harinath  <harinath@gmail.com>
5654
5655         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
5656         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
5657         new per-generic_container cache if the cached MonoType's context matches
5658         the current context.
5659           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
5660         to the expected context.
5661           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
5662
5663 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5664
5665         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
5666         we changed the signature of an icall.
5667         * icall.c: Modify to mono_double_ParseImpl return true/false 
5668         depending on the success, instead of throwing the exception. This will
5669         help us in Double.TryParse methods.
5670         
5671 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
5672
5673         * marshal.c (emit_marshal_object): Throw an exception when
5674         marshalling 'object' instead of crashing. Fixes #76696.
5675
5676 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5677
5678         * class-internals.h: Add prototype for mono_type_get_full_name ().
5679
5680 2005-11-11  Dick Porter  <dick@ximian.com>
5681
5682         * threads.c (mono_thread_manage): Make sure the main thread has
5683         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
5684
5685 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5686
5687         * loader.c (mono_loader_set_error_type_load): Log a warning to the
5688         console about the missing type.
5689         (mono_loader_set_error_method_load): Ditto.
5690
5691 2005-11-09  Miguel de Icaza  <miguel@novell.com>
5692
5693         * mono-config.c (mono_get_config_dir): Set the system defaults if
5694         none is specified.
5695
5696         * assembly.c (mono_set_dirs): New API entry point to set the
5697         assembly and the config directory in one call
5698
5699 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
5700
5701         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
5702         the ftnptr was created from a delegate in a domain other than the
5703         current domain. Fixes #75377.
5704
5705         * exception.h exception.c: Add mono_get_exception_not_supported ().
5706
5707 2005-11-08  Martin Baulig  <martin@ximian.com>
5708
5709         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
5710
5711 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
5712
5713         * security-manager.h: Added definitions to deal with strongname key 
5714         pairs bigger (and smaller) than 1024 bits.
5715         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
5716         adjust wrt the public key length being used.
5717
5718 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
5719
5720         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
5721           Windows build (r51396-51397).
5722
5723 2005-11-03  Martin Baulig  <martin@ximian.com>
5724
5725         * class.c (mono_class_setup_vtable_general): Also add generic
5726         methods to the vtable; fixes #76581.
5727
5728 2005-11-01  Miguel de Icaza  <miguel@novell.com>
5729
5730         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
5731         sure that we lookup GetString method from the System.Text.Encoding
5732         class, not the derived class or we get an empty method.
5733
5734         Fixed class #76612.
5735
5736 2005-10-25  Miguel de Icaza  <miguel@novell.com>
5737
5738         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
5739         if it has been previously set (embedders). 
5740
5741         Make mono_set_rootdir available also on Unix.
5742
5743 005-10-24  Robert Jordan  <robertj@gmx.net>
5744
5745         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
5746
5747 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
5748
5749         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
5750         only calls which are made to native code use this flag.
5751
5752         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
5753
5754 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
5755
5756         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
5757         Add support for FieldBuilders.
5758
5759 2005-10-29  Martin Baulig  <martin@ximian.com>
5760
5761         * mono-debug.c
5762         (mono_debug_using_mono_debugger): New public method; returns
5763         whether we're running inside the debugger.
5764
5765 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
5766
5767         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
5768         for Method/Constructor/FieldBuilders.
5769
5770 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
5771
5772         * reflection.c (module_add_cattrs): Save custom attributes for global methods
5773         and fields as well.
5774
5775 2005-10-26  Martin Baulig  <martin@ximian.com>
5776
5777         * mono-debug-debugger.c
5778         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
5779
5780 2005-10-24  Raja R Harinath  <harinath@gmail.com>
5781
5782         * icall.c (base64_to_byte_array): Don't pass an out-of-range
5783         integer to isspace.
5784
5785 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
5786
5787         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
5788         when passing valuetypes byref. Fixes #76502.
5789
5790 2005-10-19  Jackson Harper  <jackson@ximian.com>
5791
5792         * profiler.c: Don't put a . in front of types that are not in a
5793         namespace.
5794
5795 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
5796
5797         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
5798
5799 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
5800
5801         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
5802         #76436.
5803         (mono_marshal_get_ldflda_wrapper): Fix a warning.
5804
5805 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5806
5807         * assembly.c metadata-internals.h icall.c: Define an additional
5808         parameter for mono_assembly_name_parse_full, so we can avoid creating
5809         S.R.AssemblyName.Version when no version info wasn't passed.
5810         
5811 2005-10-09  Miguel de Icaza  <miguel@novell.com>
5812
5813         * class.c (mono_type_get_full_name): Reimplement method that was
5814         removed. 
5815
5816         * image.c: Some docs
5817
5818 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
5819
5820         * profiler.c (output_newobj_profile): Fix printing of Total memory
5821         on x86.
5822
5823 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5824
5825         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
5826
5827 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
5828
5829         * threads.c: remove debug output.
5830
5831 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5832
5833         * threads.c (mono_thread_manage): Fix crashes if more than 64
5834         threads need to be aborted. Hopefully fixes #75899.
5835
5836         * assembly.c (mono_stringify_assembly_name): New helper function.
5837
5838         * class.c: Use mono_stringify_assembly_name instead of the similar
5839         static function.
5840
5841         * assembly.h assembly.c: Add support for calling a postload search 
5842         hook if an assembly cannot be loaded.
5843
5844         * appdomain.c: Register new search hooks which call the AssemblyResolve
5845         events in AppDomain. Fixes #75231
5846
5847 2005-10-07  Martin Baulig  <martin@ximian.com>
5848
5849         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
5850         methods without debug info.
5851
5852 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
5853
5854         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
5855         wrappers.
5856
5857 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5858
5859         * file-io.c: now that we return symlinks, use lstat and, when the file
5860         is a symbolic link, stat, to get the file attributes. Also avoid the
5861         conversion to/from utf16/external.
5862
5863 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
5864
5865         * class.c (mono_class_layout_fields): Compute klass->has_references
5866         correctly if an embedded valuetype is not yet initialized. Fixes
5867         #76331.
5868
5869 2005-10-04  Martin Baulig  <martin@ximian.com>
5870
5871         * metadata.c
5872         (mono_metadata_load_generic_param_constraints): New public
5873         function; splitted the constraints loading out from
5874         mono_metadata_load_generic_params().
5875
5876         * class.c (mono_class_create_from_typedef): Call
5877         mono_metadata_load_generic_param_constraints() after setting up
5878         the type and creating our parent; fixes #75329.
5879
5880 2005-10-04  Martin Baulig  <martin@ximian.com>
5881
5882         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
5883         non-dynamic parent classes.
5884
5885 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
5886
5887         * file-io.c : win32 build fix (ETXTBSY seems not found).
5888
5889 2005-10-04  Martin Baulig  <martin@ximian.com>
5890
5891         * reflection.c
5892         (mono_image_get_methodspec_token): Make the cache actually work;
5893         fixes #75974.
5894
5895 2005-10-04  Martin Baulig  <martin@ximian.com>
5896
5897         * class.c (mono_class_name_from_token): Removed the unneccessary
5898         `MonoGenericContext *' argument.
5899
5900 2005-10-04  Martin Baulig  <martin@ximian.com>
5901
5902         * loader.c
5903         (method_from_methodspec): Make the caching work again; fixes the
5904         performance regression from #76262.
5905
5906 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5907
5908         * file-io.c:
5909         * file-io.h:
5910         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
5911         GetFileSystemEntries that performs the same work but without going
5912         into io-layer, locking, etc.
5913
5914 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
5915
5916         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
5917         ThreadState_Stopped as well. Fixes #76047.
5918
5919 2005-09-29  Martin Baulig  <martin@ximian.com>
5920
5921         * class.c
5922         (inflate_generic_context): If the new context has a `gmethod', set
5923         its `container' that that gmethod's `container'.
5924
5925         * metadata.c
5926         (mono_metadata_parse_generic_param): Simplify things;
5927         `generic_container = generic_context->container;' is just fine.
5928
5929         * loader.c (method_from_methodspec): Code cleanups.
5930
5931 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
5932
5933         * decimal.c: fix warning (and let gcc generate correct
5934         code on ARM with optimizations).
5935
5936 2005-09-28  Martin Baulig  <martin@ximian.com>
5937
5938         * loader.c
5939         (method_from_memberref): Added `MonoGenericContext *class_context'
5940         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
5941         (method_from_methodspec): If we're a memberref, use the enclosing
5942         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
5943
5944 2005-09-28  Martin Baulig  <martin@ximian.com>
5945
5946         * object.c (mono_runtime_invoke_array): Added support for
5947         MONO_TYPE_GENERICINST; fixes #75917.
5948
5949 2005-09-27  Martin Baulig  <martin@ximian.com>
5950
5951         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
5952         `k->byval_arg.type' to determine the actual type.
5953
5954         * loader.c (method_from_methodspec): Removed some hacks.
5955
5956 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
5957
5958         * class-internals.h (mono_field_is_deleted): Do the test for
5959         rtspecialname before we check the actual name of the field. This
5960         prevents us from dereferencing a pointer into the string table,
5961         saving us from accessing a few pages
5962
5963         * *.c: Replace the use of {Enter,Leave}CriticalSection with
5964         macros. This will allow a deadlock debugger to easily be plugged
5965         in.
5966
5967 2005-09-27  Martin Baulig  <martin@ximian.com>
5968
5969         * loader.c (method_from_methodspec): Create a "signature"
5970         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
5971
5972 2005-09-27  Martin Baulig  <martin@ximian.com>
5973
5974         * class.c
5975         (inflate_generic_class): Correctly set the new context's
5976         container.
5977
5978         * loader.c
5979         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
5980         instead of a `MonoGenericContext *'.
5981         (mono_method_signature_full): Take a `MonoGenericContainer *'
5982         instead of a `MonoGenericContext *'.
5983
5984         * metadata.c
5985         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
5986         instead of a `MonoGenericContext *'.
5987         (mono_metadata_parse_method_signature_full): Likewise.
5988
5989 2005-09-26  Martin Baulig  <martin@ximian.com>
5990
5991         * class.c
5992         (mono_class_from_generic_parameter): Set `klass->generic_container'
5993         (mono_class_from_generic_parameter): Likewise.
5994         (mono_bounded_array_class_get): We inherit the generic container
5995         from the element class.
5996
5997         * loader.c
5998         (find_method, find_method_in_class): Take a `MonoGenericContext *'
5999         argument rather than computing it here.
6000         (method_from_memberref): Correctly set the generic context before
6001         parsing the signature.  Fixes #75681.
6002
6003 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
6004
6005         * object.c (mono_class_has_special_static_fields): Fix warnings.
6006
6007 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6008
6009         * assembly.c: Add parse_public_key function, to
6010         par the public keys. Also added mono_assembly_name_parse_full,
6011         to define it the parsed key should be freed or not.
6012         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
6013         to parse a long format assembly name.
6014         * metadata-internals.h: Keep mono_assembly_name_parse_full as
6015         private, since calling it to preserve the key requires
6016         freeing it manually.
6017         
6018 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
6019
6020         * locales.c : removed HAVE_ICU part.
6021
6022 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
6023
6024         * object.c (mono_class_create_runtime_vtable): Avoid calling 
6025         field_is_special_static if the klass has no special static fields.
6026
6027         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
6028         (MonoCachedClassInfo): Likewise.
6029
6030         * object.c (mono_class_has_special_static_fields): New helper function.
6031
6032 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6033
6034         * class.c (mono_class_create_from_typedef): Don't call 
6035         interfaces_from_typedef_full for enums.
6036         (mono_class_create_from_typedef): Compute the base types of enums directly
6037         without calling mono_class_setup_fields ().
6038         (mono_class_find_enum_basetype): New helper function.
6039
6040         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
6041         one place inside the string heap.
6042         
6043 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
6044
6045         * class.c: locking fixes, code cleanups, some docs added.
6046         Allocate some data structures in the image mempool.
6047
6048 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6049
6050         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6051         the example code.
6052         
6053 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
6054
6055         * class-internals.h, class.c, reflection.c: reduce memory taken by
6056         MonoClass.
6057
6058 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
6059
6060         * metadata.c, metadata.h, loader.h: documentation updates, code and
6061         API cleanups.
6062
6063 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6064
6065         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6066         the example code.
6067
6068         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
6069         page faults caused by the runtime while reading metadata.
6070
6071 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6072
6073         * socket-io.c: the field names were changed 3 months ago and no one
6074         realized until bug #76077 got filed!
6075
6076 2005-09-20  Martin Baulig  <martin@ximian.com>
6077
6078         * icall.c (assembly_icalls): Removed some unused debugger icalls.
6079
6080 2005-09-20  Martin Baulig  <martin@ximian.com>
6081
6082         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
6083         write the rank into the class entry.
6084
6085 2005-09-20  Martin Baulig  <martin@ximian.com>
6086
6087         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
6088
6089 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
6090
6091         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6092
6093         * icall.c (custom_attrs_defined_internal): New icall.
6094
6095         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
6096         function.
6097         (mono_custom_attrs_construct_by_type): New helper function.
6098
6099 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
6100
6101         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
6102         terminate the resulting string. Fixes #76123.
6103
6104 2005-09-16  Martin Baulig  <martin@ximian.com>
6105
6106         * mono-debug.c
6107         (mono_debug_add_method): Ignore inflated methods for the moment.
6108
6109 2005-09-14  Martin Baulig  <martin@ximian.com>
6110
6111         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
6112
6113 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
6114
6115         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
6116         return a success/failure indication.
6117         (mono_metadata_interfaces_from_typedef_full): Ditto.
6118         (get_constraints): Ditto.
6119
6120 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
6121
6122         * marshal.c (emit_marshal_array): Fix handling of null arrays.
6123         
6124         * marshal.c (emit_marshal_array): Add support for returning string
6125         arrays from delegates. Fixes #76063.
6126
6127         * marshal.c: Use the emit_ldloc/stloc macros where possible.
6128
6129 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
6130
6131         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
6132         icall.
6133
6134 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
6135
6136         * reflection.c icall.c: Fix after mono_get_exception_type_load
6137         signature change.
6138
6139         * assembly.c (mono_assembly_get_assemblyref): New helper function.
6140         (mono_assembly_load_reference): Use the new helper.
6141
6142         * class-internals.h (MonoLoaderError): New structure containing 
6143         information about type loading errors.
6144
6145         * class-internals.h loader.c: Add APIs to store per-thread loader
6146         error information.
6147
6148         * loader.c class.c: Set the loader error if needed.
6149
6150         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
6151
6152 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
6153
6154         * decimal.c: fixed to handle the broken ARM fp format.
6155
6156 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
6157
6158         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
6159         broken.
6160
6161 2005-09-06  Martin Baulig  <martin@ximian.com>
6162
6163         * domain.c (supported_runtimes): Added v2.0.50727.
6164
6165 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
6166
6167         * culture-info.h: reduce the size of some structures.
6168
6169 2005-09-05  Martin Baulig  <martin@ximian.com>
6170
6171         Reflect latest API changes in the August CTP.
6172
6173         * icall.c
6174         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
6175         ("MonoType.HasGenericArguments"): Removed.
6176         ("MonoMethod.BindGenericParameters"): Renamed to
6177         "MakeGenericMethod".
6178         ("MethodBuilder.BindGenericParameters"): Renamed to
6179         "MakeGenericMethod".    
6180
6181 2005-09-05  Martin Baulig  <martin@ximian.com>
6182
6183         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
6184
6185 2005-09-05  Martin Baulig  <martin@ximian.com>
6186
6187         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6188
6189         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
6190         generic_container is non-NULL.
6191
6192 2005-09-05  Martin Baulig  <martin@ximian.com>
6193
6194         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6195
6196         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
6197
6198 2005-08-29  Michal Moskal  <malekith@nemerle.org>
6199
6200         * reflection.c (encode_locals,
6201         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
6202         for large generic types.
6203
6204 2005-09-05  Martin Baulig  <martin@ximian.com>
6205
6206         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6207
6208         * class.c (mono_dup_array_type): New public method.
6209         (mono_metadata_signature_deep_dup): New public method.
6210         (dup_type): Correctly duplicate array and function types.
6211
6212 2005-09-05  Martin Baulig  <martin@ximian.com>
6213
6214         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6215
6216         * reflection.c (get_default_param_value_blobs): Handle generic types
6217         and generic methods.
6218
6219 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
6220
6221         * class.c: Fixed error reporting (method/class were inversed) for 
6222         inheritance demands.
6223         * security-manager.c|h: Added the AppDomain when calling the managed
6224         System.Security.SecurityManager.InheritanceDemand method.
6225
6226 2005-09-01  Raja R Harinath  <rharinath@novell.com>
6227
6228         * reflection.c (encode_marshal_blob): 'marshaltype' and
6229         'marshaltyperef' are alternate sources for the custom marshaler
6230         name.
6231
6232 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
6233
6234         * class.c: fix creation of array classes with rank == 1
6235         (patch by Ankit Jain <jankit@novell.com>).
6236
6237 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
6238
6239         * object.c: fix check for creating the bound data for arrays vs
6240         szarrays.
6241
6242 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6243
6244         * object.c: configuration file name is now based on the executable name,
6245         not the image name. Fixes bug #75931.
6246
6247 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
6248
6249         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
6250         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
6251
6252 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
6253
6254         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6255
6256 2005-08-24  Ankit Jain  <jankit@novell.com>
6257             Raja R Harinath  <rharinath@novell.com>
6258
6259         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6260           called by it recursively.
6261           (mono_class_init): Remove special case in pending_init handling, since it's
6262           superseded by the fix to mono_class_from_typeref.
6263
6264 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6265
6266         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6267         BROKEN_THREAD_START stuff.
6268
6269 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6270
6271         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6272         trampoline.
6273
6274         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6275         
6276         * object.c (mono_delegate_ctor): Replace the original function address with
6277         a delegate trampoline.
6278
6279 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6280
6281         * icall.c: add boolean argument to base64_to_byte_array and 
6282         InternalFromBase64String to control whether a whitespace-only string
6283         is allowed (or should casue a FormatException to be thrown). We need
6284         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6285         to match the MS behaviour in both profiles.
6286         * appdomain.c: Bump corlib version.
6287
6288 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6289
6290         This patch implements a big portion of publisher policy
6291         support, used to bind assembly versions and redirect
6292         one assembly from version A to version B.
6293
6294         * assembly.c:
6295         New GSList loaded_assembly_bindings, for storing the cached
6296         assembly bindings.
6297         (assembly_binding_maps_name): New static function for checking if a 
6298         assembly binding information maps an assembly name.
6299         (mono_assembly_binding_info_free): New function for freeing
6300         assembly binding information resources.
6301         (get_publisher_policy_info): New static function for retrieving 
6302         assembly binding information from a MonoImage.
6303         (compare_versions): New static function for comparing an assembly
6304         binding information data and the version of an assembly name.
6305         (check_policy_versions): New static function for checking if an
6306         assembly binding info mapping an assembly name is valid for it.
6307         (mono_assembly_load_publisher_policy): New static function for
6308         loading the 'policy.major.minor.MyAssembly' image for an assembly
6309         with an assembly name 'aname'.
6310         (mono_assembly_bind_version): New static function for updating
6311         assembly redirection.
6312         (mono_assembly_apply_binding): New static function for applying
6313         assembly binding.
6314         (search_binding_loaded): New static function for searching 
6315         loaded assembly binding infos in the cache domain.
6316         (mono_assembly_load_full): Don't apply assembly binding for
6317         reflection only assemblies.
6318
6319         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6320         which contains information about assembly binding. Also
6321         declare signature for mono_config_parse_publisher_policy ()
6322         function, used to retrieve pub policy info.
6323         
6324         * mono-config.c:
6325         (publisher_policy_start): New static function used to parse publisher 
6326         policy config files.
6327         (publisher_policy_parser): New static MonoParseHandler containing 
6328         the functions used when parsing config files.
6329         (mono_config_parse_publisher_policy): New function for parsing
6330         publisher policy files.
6331         
6332 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6333
6334         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6335
6336         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6337
6338         * object.c (mono_get_addr_from_ftnptr): New helper function.
6339
6340         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6341
6342         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6343
6344 2005-08-19  Dick Porter  <dick@ximian.com>
6345
6346         * threads.c, threads.h, appdomain.c, appdomain.h,
6347         profiler-private.h, monitor.c, object.c, object-internals.h,
6348         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6349         store the thread ID, so it can hold a 64 bit value if needed.
6350
6351 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6352
6353         * reflection.c (mono_reflection_create_dynamic_method): Store the
6354         handle class into the method references as well so ldtoken works in
6355         dynamic methods.
6356
6357         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6358         types.
6359
6360 2005-08-19  Ankit Jain <jankit@novell.com>
6361
6362         Fix #75847.
6363         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6364           here rather than using the method signature of a arbitrary function
6365           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6366           two arguments.
6367           Hack done with Harinath.
6368
6369 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6370
6371         * threadpool.c: disable printing stack traces when we get a exception
6372         in a threadpool thread. I need to do more testing to figure out which
6373         cases actually print this. Fixes bug #75828.
6374
6375 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6376
6377         * icall.c: there might be ignored whitespace after the last '='. This
6378         fixes length computation and bug #75840.
6379
6380 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6381
6382         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6383         well. Fixes #75809.
6384
6385         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
6386         #75784.
6387         
6388         * reflection.c (create_custom_attr_data): Ditto.
6389
6390 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
6391
6392         * locales.c, culture-info.h : removed RegionLCIDMap.
6393         * culture-info-tables.h : regenerated.
6394
6395 2005-08-16  Martin Baulig  <martin@ximian.com>
6396
6397         * class.c (mono_type_get_name_recurse): Small fix.
6398
6399 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6400
6401         * locales.c : indentation fixie.
6402
6403 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6404
6405         * object-internals.h,
6406           locales.h,
6407           locales.c,
6408           culture-info.h,
6409           icall.c : added RegionInfo table support.
6410         * culture-info-table.h : regenerated for region support.
6411
6412 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6413
6414         * reflection.c (resolve_object): handle all kinds of MonoMethod
6415         including generic ones
6416
6417 2005-08-12  Ankit Jain <jankit@novell.com>
6418
6419         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6420           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6421
6422 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6423
6424         * process.c: Don't close a thread handle when it's NULL. This is a
6425         workaround for bug #75733.
6426
6427 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6428
6429         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6430
6431 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6432
6433         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6434
6435 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6436
6437         * threadpool.c: if a work item in the thread pool has a callback that
6438         catches a exception, don't propagate it after invoking the callback.
6439         Fixes bug #75336.
6440
6441 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6442
6443         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6444
6445         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6446
6447         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6448
6449         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6450
6451 2005-08-03  Ankit Jain  <jankit@novell.com>
6452
6453         Fix #75683.
6454         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6455           PInvoke calling convention is 0.
6456
6457 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6458
6459         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6460         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6461
6462 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6463
6464         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6465         to handle threads not started by the GC (patch by Michael Meeks
6466         <michael.meeks@novell.com>).
6467
6468 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6469
6470         * reflection.c: Make buffer used in emitting types larger for some
6471         big generic types (patch by Michal Moskal).
6472
6473 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6474
6475         * mono-debug.c: Fix some (not all) alignment problems.
6476
6477 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6478
6479         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6480         Invoke mono_image_load_from_data_full passing the refonly
6481         parameter.
6482
6483         * assembly.c
6484         (mono_assembly_open_from_bundle): Add the refonly argument, 
6485         in order to pass it to other methods it calls to.
6486         (do_mono_assembly_open): Add the refonly argument, in order 
6487         to pass it to other methods it calls to.
6488         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6489         the refonly parameter to it.
6490
6491         * image.c: Add loaded_images_refonly_hash and
6492         loaded_images_refonly_guid_hash to cache the reflection
6493         only loaded images.
6494         (mono_images_init): Initialize the hash tables used for
6495         caching the reflection only images.
6496         (load_modules): Invoke mono_image_open_full passing the refonly
6497         parameter to load the modules the correct way.
6498         (build_guid_table): Add the refonly argument, to re-build the 
6499         correct hash table.
6500         (do_mono_image_open): Added the refonly argument, in order to
6501         define it for the loaded image.
6502         (mono_image_loaded_full): New function, which receives an
6503         additional parameter to look for the image in the refonly or
6504         non-refonly section.
6505         (mono_image_loaded): Updated, using mono_image_loaded_full.
6506         (mono_image_loaded_by_guid_full): The same case that happens
6507         with mono_image_loaded_full.
6508         (mono_image_loaded_by_guid): Likewise.
6509         (register_image): Use the ref_only variable inside MonoImage
6510         to decide in which hash table store the current image.
6511         (mono_image_open_from_data_full): Rename
6512         mono_image_open_from_data to mono_image_open_from_data_full,
6513         adding the refonly argument, to define the ref_only variable 
6514         inside MonoImage.
6515         (mono_image_open_from_data): Return 
6516         mono_image_open_from_data_full.
6517         (mono_image_open_full): Rename mono_image_open to
6518         mono_image_open_full, receiving the new refonly argument,
6519         to pass it to inner methods.
6520         (mono_pe_file_open): Update this function, to open
6521         a MonoImage as a non-refonly image.
6522         (mono_image_close): Use the refonly variable inside
6523         MonoImage to remove the image from the correct caches.
6524
6525         * image.h: Add the signatures of mono_image_open_full,
6526         mono_image_open_from_data_full, mono_image_loaded_full,
6527         mono_image_loaded_by_guid_full.
6528
6529         * metadata-internals.h: Add the ref_only field to 
6530         MonoImage.
6531         
6532 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6533
6534         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
6535         Fix the last behavior, which used to load the assemblies and
6536         extract MonoReflectionAssemblyName information, instead of
6537         extract it from the metadata tables. Needed for Reflection
6538         Only assemblies.
6539         
6540 2005-07-29  Martin Baulig  <martin@ximian.com>
6541
6542         * mono-debug-debugger.c
6543         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
6544         not initialized.
6545
6546         * mono-debug.c
6547         (mono_debug_address_from_il_offset): Check whether we have
6548         debugging support before attempting to take the lock.
6549         (mono_debug_source_location_from_address): Likewise.
6550         (mono_debug_source_location_from_il_offset): Likewise.
6551         (mono_debug_il_offset_from_address): Likewise.
6552         (mono_debug_address_from_il_offset): Likewise.
6553
6554 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
6555
6556         * class.c (mono_class_from_name_case): Add support for dynamic images.
6557         Fixes #75650.
6558
6559         * object.c (mono_class_compute_gc_descriptor): Add a workaround
6560         for #75479.
6561
6562 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6563         
6564         * reflection.c (mono_method_get_object): Fix warning.
6565
6566 2005-07-28  Martin Baulig  <martin@ximian.com>
6567
6568         * mono-debug.c
6569         (mono_debug_add_wrapper): Also write the wrapper type.
6570
6571 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6572
6573         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
6574         
6575         * class.c (mono_class_init): Avoid reading nested classes if the AOT
6576         data indicates the class has none.
6577
6578 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
6579
6580         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
6581         loader lock with the debugger lock. Prevents deadlocks for beagle.
6582
6583         Beagle can now run on an smp box for a weekend without any
6584         issues. Woohoo!
6585
6586 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
6587
6588         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
6589         in a module. Fixes #75629.
6590
6591 2005-07-26  Martin Baulig  <martin@ximian.com>
6592
6593         * mono-debug.c (mono_debug_add_wrapper): New static method.
6594         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
6595         interncall or a wrapper.
6596
6597         * mono-debug.h (MonoDebugWrapperData): New public typedef.
6598         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
6599         (MONO_DEBUGGER_VERSION): Bump to 51.
6600
6601         * mono-debug-debugger.c
6602         (mono_debugger_add_type): Removed this empty function.
6603         (mono_debugger_add_method): Likewise.
6604
6605 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
6606
6607         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
6608         before accessing method->slot.
6609
6610 2005-07-21  Jb Evain  <jbevain@gmail.com>
6611
6612         * reflection.c (method_encode_clauses/class): Handle filters clauses.
6613         Fixes #75010.
6614
6615 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
6616
6617         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
6618         #75587.
6619
6620 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
6621
6622         * image.h image.c: Add mono_image_get_guid () API function.
6623
6624 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
6625
6626         There were issues when multiple threads tried to load
6627         assemblies. A deadlock was created between assemblies_mutex and
6628         mono_domain_assemblies_lock. This fixes the issue by making the
6629         assembly ref counting be lock free. See bug 75586.
6630         
6631         * image.c (mono_image_close): The add ref function here was using
6632         Interlocked operations while the unref was using a mutex and a
6633         --. I don't think this was ever a bug that would be exposed in a
6634         non-pendantic way (ie, by an embedder doing a ref on one thread
6635         and an unref on another), but for the sake of correctness, this is
6636         now Interlocked.
6637
6638         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
6639         (mono_assembly_load_reference): Call mono_assembly_addref rather
6640         than touching the refcount ourselves.
6641         (mono_assembly_close): Use InterlockedDecrement to unref the
6642         assembly. Don't acquire the lock unless it is actually needed.
6643
6644 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6645
6646         * class.c (mono_class_layout_fields): Fix calculation of has_references
6647         for generic types.
6648
6649 2005-07-12  Martin Baulig  <martin@ximian.com>
6650
6651         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6652
6653         * metadata.c
6654         (mono_type_hash): Provide better hashing for generic instances.
6655         (mono_generic_inst_hash): Improve hashing.
6656         (mono_generic_class_hash): Likewise.
6657
6658         * reflection.c (mymono_metadata_type_hash): Improve hashing for
6659         generic instances.
6660
6661 2005-07-12  Martin Baulig  <martin@ximian.com>
6662
6663         * reflection.c (mono_reflection_create_runtime_class): Remove the
6664         hack for generic type definitions and non-`Run' assemblies.
6665         (mono_reflection_bind_generic_parameters): Also use
6666         `klass->wastypebuilder' to check for TypeBuilders.
6667
6668 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6669
6670         * class.c (mono_class_layout_fields): Fix calculation of has_references
6671         for generic types.
6672
6673         * class.c (inflate_generic_class): Fix a leak.
6674         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
6675         for generic types.
6676
6677 2005-07-11  Martin Baulig  <martin@ximian.com>
6678
6679         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
6680         on error.
6681
6682 2005-07-11  Martin Baulig  <martin@ximian.com>
6683
6684         * loader.c (find_method): Also lookup in
6685         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
6686
6687 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6688
6689         * appdomain.c (mono_domain_unload): Don't free the error message
6690         before passing it to mono_get_exception_...
6691
6692         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
6693         
6694 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
6695
6696         * threads.c: try to better guess an available RT signal (bug #75387).
6697
6698 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6699
6700         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
6701         and CACHE_OBJECT.
6702
6703 2005-07-07  Martin Baulig  <martin@ximian.com>
6704
6705         * class.c (mono_type_get_name_full): Return NULL for
6706         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
6707         fixes #75408.
6708
6709 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6710
6711         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
6712         exit the appdomain as well being aborted.
6713
6714         * threadpool.c: Create all threadpool threads inside the root appdomain, and
6715         change back to the root domain after calling managed code. This enables
6716         appdomains using threadpools to be unloaded.
6717
6718 2005-07-07  Martin Baulig  <martin@ximian.com>
6719
6720         * class-internals.h
6721         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
6722         into `MonoDynamicGenericClass' since we only need it for dynamic
6723         types.
6724
6725         * reflection.c (mono_class_bind_generic_parameters): We don't need
6726         to compute the `parent' here.
6727
6728 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
6729
6730         * culture-info-table.h : regenerated.
6731
6732 2005-07-06  Martin Baulig  <martin@ximian.com>
6733
6734         * icall.c
6735         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
6736
6737         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
6738
6739 2005-07-06  Martin Baulig  <martin@ximian.com>
6740
6741         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
6742         we're doing a signature-only comparision; fixes #74945.
6743
6744 2005-07-06  Martin Baulig  <martin@ximian.com>
6745
6746         * class-internals.h (MonoGenericClass): Moved some things out into
6747         a new `MonoInflatedGenericClass' type.  
6748         (MonoInflatedGenericClass): New type; the `klass' of a
6749         `MonoGenericClass' is now computed lazyly in
6750         mono_get_inflated_generic_class().      
6751
6752         * class.c (mono_get_inflated_generic_class): New public function.
6753         (mono_class_inflate_generic_method): Removed the unused
6754         `MonoClass *' argument.
6755         (setup_generic_vtable): Don't call mono_get_inflated_method() on
6756         all the methods.
6757         (mono_class_create_generic): Make this static and merge it with
6758         mono_class_create_generic_2(); we're now called automatically from
6759         mono_get_inflated_generic_class().
6760
6761         * loader.c (mono_method_signature): Call
6762         mono_get_inflated_method() here.
6763
6764 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
6765
6766         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
6767         type of fields with RVA.
6768
6769         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
6770         for this pseudo class.
6771         (my_mono_class_from_generic_parameter): Likewise.
6772         (mono_class_init): Allow interfaces to have cctors.
6773
6774 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6775
6776         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
6777         lazily for AOT methods.
6778
6779 2005-07-05  Martin Baulig  <martin@ximian.com>
6780
6781         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
6782         returns FALSE for a successful match, not TRUE.
6783
6784 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6785
6786         * loader.c (mono_method_get_index): Optimize this a bit.
6787
6788 2005-07-04  Martin Baulig  <martin@ximian.com>
6789
6790         * class.c
6791         (class_compute_field_layout): Move the check for generic type
6792         definitions into mono_class_layout_fields().  Fixes #74684.
6793         (mono_class_from_generic_parameter): Correctly compute
6794         `klass->parent'; fixes #75457.
6795
6796         * reflection.c (register_assembly, register_module): Make sure
6797         `domain->rejobject_hash' is already created.
6798
6799 2005-07-02  Martin Baulig  <martin@ximian.com>
6800
6801         * class-internals.h
6802         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
6803         `MonoDynamicGenericClass'.      
6804
6805 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
6806
6807         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
6808         returned by a field getter is null, since null is a valid value.
6809
6810 2005-07-01  Martin Baulig  <martin@ximian.com>
6811
6812         * reflection.c (mono_reflection_generic_class_initialize): Update
6813         the `dgclass->fields [i].parent' to the correct class.
6814         (mono_image_get_fieldref_token): Use the declaring type, not the
6815         reflected type.
6816
6817 2005-07-01  Martin Baulig  <martin@ximian.com>
6818
6819         * loader.c (find_method): Also look in the interfaces; fixes #75429.
6820
6821 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
6822
6823         * threads.c (thread_cleanup): assert that thread != NULL
6824         (wait_for_tids_or_state_change): We were using the wrong variable
6825         when accessing wait->threads. `i' was always out of the bounds of
6826         the array.
6827
6828 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6829
6830         * loader.c: map user32 and kernel32 to libMonoSupportW
6831
6832 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
6833
6834         * appdomain.c (unload_thread_main): Mark this as WINAPI.
6835
6836 2005-06-28  Martin Baulig  <martin@ximian.com>
6837
6838         * loader.c (method_from_methodspec): Fix #75334.
6839
6840 2005-06-28  Martin Baulig  <martin@ximian.com>
6841
6842         Fix #74953 - Arrays now implement the generic IList<T> interface
6843         on the 2.0 platform.
6844
6845         * class-internals.h (MonoDefaults): Added `generic_array_class'.
6846
6847         * reflection.c (mono_class_bind_generic_parameters): New public
6848         function; similar to mono_reflection_bind_generic_parameters(),
6849         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
6850
6851         * domain.c (mono_init_internal): Try to initialize.
6852         `mono_defaults.generic_array_class' here; this'll only succeed if
6853         we're using the 2.0 corlib.
6854
6855         * icall.c
6856         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
6857         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
6858         (mono_lookup_internal_call): Added support for nested classes.
6859
6860         * loader.c
6861         (mono_get_method_from_token): Set `result->signature->pinvoke' if
6862         we're an interncall and have generic arguments.
6863
6864         * class.c
6865         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
6866         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
6867         instance of System.Array.InternalArray<T> for arrays, so they
6868         implement the generic IList<T> interface.
6869
6870 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
6871
6872         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
6873         (chastamar@yahoo.com). Fixes #75374.    
6874
6875 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
6876
6877         * culture-info-table.h: regenerated.
6878
6879 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6880
6881         * icall.c: handle spaces correctly for base64 strings.
6882
6883 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
6884
6885         * *.c: Kill some warnings.
6886
6887 2005-06-23  Duncan Mak  <duncan@novell.com>
6888
6889         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
6890         that this builds on Solaris 10 (x86).
6891
6892 2005-06-23  Martin Baulig  <martin@ximian.com>
6893
6894         * class.c
6895         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
6896         generic type definitions.
6897
6898 2005-06-23  Martin Baulig  <martin@ximian.com>
6899
6900         Fix #75331.
6901
6902         * metadata.c (mono_class_get_overrides): Renamed to
6903         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
6904         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
6905         pass it to mono_get_method_full().
6906
6907 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
6908
6909         * reflection.c (mono_reflection_create_runtime_class): take the
6910         mono_domain_lock in this method. Prevents deadlocks
6911
6912 2005-06-22  Martin Baulig  <martin@ximian.com>
6913
6914         * loader.c (method_from_methodspec): Fix #75330.
6915
6916 2005-06-22  Martin Baulig  <martin@ximian.com>
6917
6918         * reflection.c (type_get_qualified_name): Use
6919         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
6920         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
6921         argument; use it if we don't have an assembly name.
6922
6923 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
6924
6925         * object.c: In mono_message_init, set "copy out" flag for in
6926         parameters with the [Out] flag.
6927
6928 2005-06-21  Martin Baulig  <martin@ximian.com>
6929
6930         * class.c
6931         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
6932         and MONO_TYPE_PTR.
6933
6934 2005-06-21  Martin Baulig  <martin@ximian.com>
6935
6936         * class.c (mono_class_init): Don't initialize `class->fields' for
6937         generic instances since they're initialized again in
6938         compute_field_layout(). 
6939         (compute_field_layout): Set the field's `generic_info' here; fix
6940         #75320. 
6941
6942 2005-06-21  Martin Baulig  <martin@ximian.com>
6943
6944         * class-internals.h
6945         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
6946
6947         * metadata.c (mono_metadata_generic_method_equal): Also
6948         distinguish the `generic_class'; fixes #75334.
6949
6950 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6951
6952         * domain.c:
6953         * appdomain.c:
6954         * domain-internals.h:
6955         * reflection.c: 'domain_assemblies' field is now protected by its own
6956         lock. Don't call into managed code to run the AssemblyLoad event if we
6957         now there are no registered delegates for it.
6958
6959 2005-06-20  Martin Baulig  <martin@ximian.com>
6960
6961         * class.c (mono_class_is_assignable_from): Use a custom version of
6962         mono_class_has_parent() to make things work for generic instances;
6963         fix #75300.
6964
6965 2005-06-20  Martin Baulig  <martin@ximian.com>
6966
6967         * loader.c (method_from_methodspec): Apply a patch from
6968         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
6969
6970 2005-06-20  Martin Baulig  <martin@ximian.com>
6971
6972         * class.c (mono_class_init): Reverted Zoltan's last change; it
6973         breaks generics.
6974
6975 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
6976
6977         * threads.c (wait_for_tids_or_state_change): Add missing locking.
6978
6979 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6980
6981         * socket-io.c: fix the index in the socket array for writable/error
6982         sockets. Fixes bug #75306.
6983
6984 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
6985
6986         * class.c (mono_class_init): Allow interfaces to have static ctors.
6987
6988 2005-06-17  Martin Baulig  <martin@ximian.com>
6989
6990         * loader.c (method_from_methodspec): Use `context->container' when
6991         parsing the `gmethod->inst'.
6992
6993 2005-06-17  Martin Baulig  <martin@ximian.com>
6994
6995         * class.c (mono_type_get_name_recurse): Don't add the assembly
6996         name for type arguments.
6997
6998 2005-06-15  Martin Baulig  <martin@ximian.com>
6999
7000         * reflection.c (mono_image_get_inflated_method_token): Encode
7001         correct klass; fixes #75260.
7002
7003 2005-06-13 Michal Moskal <malekith@nemerle.org>
7004
7005         * icall.c: Make GetCorrespondingMethod/Constructor take
7006         MonoReflectionMethod method not MonoMethod. Removed
7007         MonoType.GetCorrespondingField, and make
7008         MonoGenericType.GetCorrespondingField take name not
7009         MonoClassField.
7010
7011 2005-06-13  Michal Moskal <malekith@nemerle.org>
7012
7013         * reflection.c (field_encode_signature, encode_locals):
7014          Make sizes of buffers for types larger (for big generic types).
7015          (create_generic_typespec,
7016          mono_reflection_sighelper_get_signature_local,
7017          mono_reflection_sighelper_get_signature_field):
7018          Add asserts for too small buffers.
7019
7020 2005-06-15  Martin Baulig  <martin@ximian.com>
7021
7022         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
7023         if our parent is not a dynamic type.
7024
7025 2005-06-15  Martin Baulig  <martin@ximian.com>
7026
7027         * class-internals.h (MonoTypeNameFormat): New enum.
7028
7029         * class.c
7030         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
7031         (mono_type_get_full_name): Removed.
7032         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
7033         argument instead of the boolean's.
7034
7035         * icall.c (ves_icall_System_MonoType_getFullName):
7036         Added `gboolean assembly_qualified'.    
7037
7038         * reflection.h
7039         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
7040
7041         * reflection.c (mono_reflection_parse_type): Parse the new type
7042         name format.
7043
7044 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7045
7046         * icall.c: no need to convert from utf16 to utf8 and then back again
7047         after the call to GetLogicalDrives.
7048
7049 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7050
7051         * icall.c: frombase64. Fix problems exposed by new tests.
7052
7053 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7054
7055         * icall.c: added internal calls for converting char [] and strings in
7056         base64 into byte [].
7057
7058 2005-06-10  Martin Baulig  <martin@ximian.com>
7059
7060         * class.c (mono_class_create_generic_2): Read the nested classes
7061         from the metadata rather than from `gklass->nested_classes' since
7062         `gklass' might not be initialized yet.
7063
7064 2005-06-09  Duncan Mak  <duncan@novell.com>
7065
7066         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
7067         all public headers. Fixes #74919.
7068
7069 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
7070
7071         * domain.c: The key for proxy_vtable_hash is now a pointer
7072         array. Added new GHashFunc and GCompareFunc functions for this.
7073
7074         * class.h: The list of interfaces in MonoRemoteClass is known in
7075         advance and can't grow (we create a new MonoRemoteClass if needed),
7076         so now the interface array can be allocated together with
7077         MonoRemoteClass.
7078         
7079         * object.c: Added a new method create_remote_class_key.
7080         Fixed mono_remote_class so it does not depend on
7081         mono_upgrade_remote_class.
7082         Removed extend_interface_array.
7083         Added new method clone_remote_class(), which makes a copy of a remote
7084         class and adds a new interface or class to it.
7085         mono_upgrade_remote_class() now creates a new remote class (or gets
7086         it from the cache) if an vtable upgrade is needed. In this way
7087         we make sure that other objects sharing the same remote class
7088         don't get the new vtable with unwanted interfaces.
7089         
7090         * object-internals.h:
7091         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
7092         
7093         * marshal.c: Track changes in mono_upgrade_remote_class().
7094
7095 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
7096         * icall.c: Add runtime methods for obtaining members of inflated
7097         class, which were created from supplied non-inflated members. It
7098         is used in internal Get{Method,Constructor,Field} methods in
7099         System.Type
7100
7101 2005-06-09  Martin Baulig  <martin@ximian.com>
7102
7103         * reflection.c
7104         (mono_reflection_bind_generic_method_parameters): Fix #75169.
7105
7106 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7107         * reflection.c (mono_image_basic_init): Define
7108         Version in MonoDynamicAssembly. 
7109         
7110 2005-06-08  Martin Baulig  <martin@ximian.com>
7111
7112         Fix #75136.
7113
7114         * loader.c
7115         (mono_method_signature_full): New public method; takes a
7116         `MonoGenericContext *'.
7117         (find_method): Use mono_method_signature_full() and pass the
7118         klass'es context to it.
7119
7120         * class.c (mono_class_is_inflated_method): Use
7121         mono_method_signature_full() and pass the context to it.
7122
7123 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
7124
7125         * object.c: add proper locking in mono_remote_class_vtable(),
7126         fixes possible memory corruption.
7127
7128 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
7129
7130         * marshal.c (mono_remoting_marshal_init): set
7131         initialized after initialization.
7132
7133 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
7134
7135         * locales.c : hush.
7136
7137 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
7138
7139         * object.c (extend_interface_array): fix really silly
7140         memory corrupting / comparison bug.
7141
7142 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7143
7144         * reflection.c: Functions added to support the creation
7145         of CustomAttributeData, which includes Attribute data
7146         used by ReflectionOnly methods.
7147
7148         * reflection.h:  mono_reflection_get_custom_attrs_data and
7149          mono_custom_attrs_data_construct added (functions exposed).
7150
7151          * icall.c: Added mono_reflection_get_custom_attrs_data
7152          as icall.
7153         
7154 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
7155
7156         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
7157         lupus's request.
7158
7159 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
7160
7161         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
7162
7163         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
7164         dynamic DllImportAttribute.
7165
7166         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
7167         dynamic DllImportAttribute.
7168
7169         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
7170         Fixes #75162.
7171
7172 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7173
7174         * threads.c: avoid segfault when an unstarted thread is aborted.
7175
7176 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
7177
7178         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
7179         Returns the name and version of the runtime for reporting.
7180
7181 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7182
7183         * appdomain.c: bump corlib version.
7184         * object-internals.h: new field in MonoReflectionAssembly.
7185
7186 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7187
7188         * object-internals.h: Carlos forgot to add this field.
7189
7190 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7191
7192         * icall.c: Added create_version to create instances
7193         of Version of MonoReflectionAssemblyName. This change helps
7194         the AssemblyName tests to keep running fine.
7195         
7196 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
7197   
7198         * object.c (mono_method_return_message_restore): A somehow less
7199         intrusive fix for #75138.
7200
7201 2005-06-03  Raja R Harinath  <rharinath@novell.com>
7202
7203         * object.c (mono_method_return_message_restore): Fix computation
7204         of expected number of out args.
7205
7206 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7207
7208         * reflection.c (mono_image_get_method_info): Fix the case when the
7209         charset is empty.
7210
7211 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
7212
7213         * object.c: Added missing null check in
7214           mono_method_return_message_restore.
7215
7216 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7217
7218         * reflection.c (mono_image_get_method_info): Handle the case when
7219         dllentry is empty.
7220
7221 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
7222
7223         * object.c: When creating the vtable for a proxy, take into account
7224         all inherited interfaces, not only the ones registered in
7225         iclass->interfaces. This fixs bug #74996.
7226         Also, in mono_method_return_message_restore, verify that the array
7227         of out args has the expected lengh.
7228
7229 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7230
7231         * socket-io.c: update the timeout in Poll when the call is interrupte.
7232
7233 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7234
7235         * socket-io.c: support abort/suspend in Select_internal after last
7236         change.
7237
7238 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7239
7240         * threadpool.c: remove warning.
7241
7242 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7243
7244         * icall.c:
7245         * socket-io.[ch]: Select_internal uses poll() now when available, thus
7246         removing the 1024 limit from select(). Runtime part of the fix for
7247         bug #71203.
7248
7249 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7250
7251         * socket-io.c: when resolving the addresses for the same
7252         host returned by gethostname(), get the local IPs from the interface
7253         list. Loopback addresses are discarded if the are interfaces up with
7254         non-loopback ones. Fixes bug #63265.
7255
7256 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7257
7258         * appdomain.c, verify.c, object-internals.h, reflection.c:
7259         bumped corlib number to 36, and added new extra_flags field
7260         to ReflectionMethodBuilder and friends.  Fixes #75060.
7261
7262 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7263
7264         * gc.c: register a new weak link only if the object is non-null
7265         (fixes bug#75047).
7266
7267 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7268
7269         * culture-info.h : short time pattern too.
7270
7271 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7272
7273         * culture-info.h : expand long time pattern string length.
7274
7275 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7276
7277         * culture-info-table.h : update (more French date format; #72788).
7278
7279 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7280
7281         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7282         the method is static. Fixes #75029.
7283
7284 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7285
7286         * reflection.c: Update the table_idx field of method builders after
7287         saving the module, since it can change. This is a workaround for
7288         bug #74914. 
7289
7290 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7291
7292         * culture-info-table.h : update (additional French date format).
7293
7294 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7295
7296         * icall.c (ves_icall_type_Equals): Revert last change.
7297         
7298         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7299
7300         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7301
7302 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7303
7304         * class-internals.h: Added executioncontext_class field to 
7305         MonoDefaults structure.
7306         * domain.c: Cache System.Threading.ExecutionContext class in 
7307         mono_defaults.
7308         * object.c: Capture the ExecutionContext for asynchroneous calls in
7309          mono_async_result_new.
7310         * object-internals.h: Added execution_context and original_context 
7311         fields to MonoAsyncResult. Added execution_context to MonoThread.
7312         * security-manager.c|.h: Added mono_get_context_capture_method to 
7313         return the capture method (if required by the security manager or by
7314         the framework version used).
7315         * threadpool.c: Apply capture (if present) ExecutionContext in 
7316         mono_async_invoke and revert to original context after it completes.
7317
7318 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7319
7320         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7321
7322 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7323
7324         * culture-info-table.h : zh-CHT related workaround.
7325
7326 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7327
7328         * marshal.c (emit_marshal_custom): Add some error checking and call the
7329         methods in the ICustomMarshaler interface. Fixes #74875.
7330         
7331         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7332         native->managed wrappers.
7333
7334 2005-05-12  Martin Baulig  <martin@ximian.com>
7335
7336         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7337         here and use the loader lock.
7338
7339         * mono-debug.c: Properly lock when the debugger is not attached.
7340         (mono_debug_init): Release the initial lock if we're not running
7341         in the debugger.
7342
7343 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7344
7345         * marshal.c (emit_marshal_custom): Pass through NULL values without
7346         calling the custom marshalling routines.
7347
7348         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7349         conversion in structures. Fixes #74882.
7350
7351 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7352
7353         * culture-info-table.h : zh-* cultures were missing.
7354
7355 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7356
7357         * threads.c: Added a new event background_change_event which is signaled
7358         when a thread changes its background mode.
7359         Moved here several checks previously done in managed code. The checks
7360         require the thread lock, and using the thread lock in managed code
7361         can result in deadlocks.
7362         Merged Start_internal and Thread_internal into a single method. Now 
7363         Thread_internal does all work of creating and starting a thread.
7364         Added icalls for setting and getting the state of the object. Moved from
7365         managed code to avoid locking there.
7366         Added wait_for_tids_or_state_change() which is called instad of
7367         wait_for_tids when waiting for non-backround threads to end. This method
7368         will return if one of the threads ends or the background_change_event
7369         is signaled.
7370         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7371         the background mode. This method signals the background_change_event
7372         event.
7373         * icall.c:
7374         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7375         removed Start_internal.
7376         
7377 2005-05-11  Martin Baulig  <martin@ximian.com>
7378
7379         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7380         to order of some fields to get proper alignment on 64-bit machines.
7381
7382 2005-05-11  Martin Baulig  <martin@ximian.com>
7383
7384         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
7385         changes as they're broken and completely fuck up the debugger.
7386
7387         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
7388
7389 2005-05-10  Martin Baulig  <martin@ximian.com>
7390
7391         * reflection.c (mono_reflection_generic_class_initialize): Don't
7392         call mono_class_setup_parent() here.
7393
7394 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7395
7396         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7397         send/receive timeout use an integer in milliseconds. We were using a
7398         struct timeval.
7399
7400 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7401
7402         * locales.c:
7403         (internal_get_cultures): reserve the first slot of the array for the
7404         InvariantCulture, which will be filled in managed code.
7405
7406 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7407
7408         * reflection.c (mono_image_fill_module_table): Initialize the
7409         GENERATION field as well.
7410
7411 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7412
7413         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7414         Monitor.Enter on the object.
7415
7416 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7417
7418         * threads.c: Enable the wait for running threads when exiting.
7419         * icall.c: Suspend all threads before exiting.
7420
7421 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7422
7423         * assembly.c (mono_assembly_load_reference): Fix warning.
7424
7425 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7426
7427         * threadpool.c: changed the default number of threads per cpu. From now
7428         on, the default will be 20 + (5 * number of cpus) instead of 50.
7429
7430 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7431
7432         * loader.c (mono_method_get_signature_full): Add locking here.
7433
7434 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7435
7436         * appdomain.c: Moved methods for parsing and freeing assembly
7437         names to assembly.c.
7438         * assembly.c, domain-internals.h: Created public methods for parsing
7439         assembly names. Fixed mono_assembly_load_with_partial_name:
7440         it now finds the best match, taking into account the version,
7441         token and culture specified in the partial name. Also return
7442         the latest version if no version information is specified.
7443
7444 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7445
7446         * threadpool.c: replace check for SocketAsyncCall class.
7447
7448 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7449
7450         * threadpool-internals.h:
7451         * Makefile.am: added threadpool-internals.h
7452
7453         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7454         that happen in threadpool threads (tested on MS).
7455         (mono_thread_pool_remove_socket): new function that dispatch any pending
7456         AIO call on a socket that is closing. By now only epoll really needs it,
7457         as select/poll wake up when the socket closes.
7458
7459
7460         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7461
7462 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7463
7464         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7465
7466 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7467
7468         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7469
7470 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7471
7472         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7473         has an abort request, convert it into a suspend request.
7474
7475 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7476
7477         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7478         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7479         is not supported yet.
7480
7481 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7482
7483         * image.c: register assemblies loaded from data (bundles) in the loaded
7484         assemblies hash. Fixes bug #74772.
7485
7486 2005-04-29  Martin Baulig  <martin@ximian.com>
7487
7488         * class.c (mono_type_get_name_recurse): Update to the new naming
7489         schema from the latest .NET 2.x beta2.
7490         (mono_class_setup_vtable_general): If we're a generic instance,
7491         copy the vtable from our generic type definition and inflate all
7492         the methods in it.
7493
7494         * loader.c (find_method): Update to the new naming schema from the
7495         latest .NET 2.x beta2.
7496
7497 2005-04-29  Raja R Harinath  <harinath@gmail.com>
7498
7499         * class.c (mono_class_init): Add a mono_loader_unlock to the
7500         #74734 fix.
7501
7502 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
7503
7504         * icall.c (ves_icall_System_Environment_Exit): Remove the 
7505         suspend_all_other_threads () call for the time being, since it can hang.
7506
7507         * threads.c (mono_thread_manage): Similarly, disable the waiting for
7508         the background threads to exit, since it can also hang.
7509
7510         * class.c (mono_class_init): Applied patch from Ankit Jain 
7511         (radical@gmail.com). Avoid pending init errors when a field refers
7512         to a nested class using a typeref. Fixes #74734.
7513
7514         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
7515         this for dynamic modules.
7516
7517 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7518
7519         * threads.c: don't wait for threads that are in the process of aborting
7520         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
7521         and waiting for background threads to finish. This makes xsp and
7522         mod-mono-server exit without random length delays and/or hangs.
7523
7524 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7525
7526         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
7527
7528 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
7529
7530         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
7531         dynamic types to prevent infinite loops. Fixes #74727.
7532
7533         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
7534         ..._is_assignable_to.
7535
7536 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
7537
7538         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
7539
7540 2005-04-25  Martin Baulig  <martin@ximian.com>
7541
7542         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
7543
7544         * domain.c
7545         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
7546
7547         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
7548
7549         * reflection.c (build_compressed_metadata): Set metadata header
7550         version to 2.0.
7551
7552 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
7553
7554         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
7555         number into an integral and a decimal part. Fixes #70473.
7556
7557         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
7558
7559 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
7560
7561         * culture-info-table.h : reflected the latest locale-builder output.
7562
7563 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7564
7565         * threadpool.c: check for SuspendRequested too when deciding if
7566         mono_thread_interruption_checkpoint should be called.
7567
7568 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7569
7570         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
7571         * threads.c: remove interruption_mutex and use Interlocked instead. When
7572         suspending all the threads, wait for all the suspended events at once.
7573         If we're shutting down and get an APC that is going to be queued,
7574         call mono_thread_execute_interruption immediately, as the thread might
7575         be sleeping on a pthread condition or mutex.
7576
7577         * icall.c: call mono_runtime_set_shutting_down before suspending the
7578         threads.
7579
7580         Fixes bug #74693. And now xsp is happier when exiting.
7581
7582 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
7583
7584         * loader.c (mono_stack_walk): Fix #74690.
7585
7586 2005-04-22  Martin Baulig  <martin@ximian.com>
7587
7588         * mono-debug.h (MonoDebugMethodJitInfo): Added
7589         `MonoDebugMethodJitInfo *jit'.
7590
7591         * mono-debug.c (mono_debug_read_method): Cache the
7592         MonoDebugMethodJitInfo in `address->jit'.
7593         (mono_debug_free_method_jit_info): New public method.
7594
7595 2005-04-22  Martin Baulig  <martin@ximian.com>
7596
7597         * class.c (mono_class_is_assignable_from): Disallow
7598         type parameter -> interface.
7599
7600 2005-04-21  Dick Porter  <dick@ximian.com>
7601
7602         * threads.c (mono_thread_create): Turn an assertion into an error.
7603
7604 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
7605
7606         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
7607         
7608         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
7609         Fix some gcc 4.0 warnings.
7610
7611 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
7612
7613         * file-io.c: fix alt dir separator char on unix systems
7614         and cleanup (fixes bug #71214).
7615
7616 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
7617
7618         * marshal.c: Use CALLVIRT instead of CALL when dispatching
7619         a call to a remote domain, since the method may be an
7620         interface method in the client domain. This fixes bug #74192.
7621
7622 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7623
7624         * threadpool.c: recv/send are now performed before going back to managed
7625         code to save one transition.
7626
7627 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7628
7629         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
7630
7631         * metadata/threadpool.c: removed hack to workaround the bug above.
7632
7633         Fixes bug #74618.
7634
7635 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
7636
7637         * reflection.c reflection.h: Fix handling of parameter defaults in
7638         dynamic methods. Also fixes handling of parameter attributes.
7639         Fixes #74609.
7640
7641         * mono-debug.c (mono_debug_close_image): Fix warning.
7642
7643 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7644
7645         * socket-io.h: replaced old unused field with new 'blocking'.
7646         * threadpool.c: restore socket blocking state on windows(tm).
7647
7648 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
7649
7650         * icall.c: don't return the codebase in the AssemblyName[] returned by
7651         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
7652         * object-internals.h: Removed FIXME (fields were presents) and fixed
7653         versioncompat declaration.
7654
7655 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7656
7657         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
7658         not closed, so don't cleanup when it happens.
7659
7660 2005-04-13  Chris Toshok  <toshok@ximian.com>
7661
7662         * mono-debug-debugger.h: change prototype for
7663         mono_debugger_lookup_type.
7664
7665         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
7666         this function, although it should probably be named
7667         mono_debugger_init_type.
7668
7669 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7670
7671         * threadpool.c: fix non-AIO case.
7672
7673 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
7674
7675         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
7676         the built-in profiler to measure just JIT compilation times.
7677
7678 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7679
7680         * threadpool.c: the epollfd might be closed by another thread at
7681         any time, so ignore EBADF at treat it as a "we're closing" sign.
7682
7683 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7684
7685         * threadpool.c: release the semaphores with a count equals to the number
7686         of working threads in both IO and regular pools. Fixed typo that messed
7687         up the count of IO pool threads. Don't initialize the pipe handles if
7688         we're using epoll.
7689
7690 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7691
7692         * threadpool.c: some systems don't like a NULL when deleting the socket
7693         from epoll.
7694
7695 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7696
7697         * threadpool.c: fix semaphore allocation.
7698
7699 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7700
7701         * threadpool.c: added epoll() based implementation for asynchronous IO
7702         that is used instead of the default poll() when available.
7703         It can be disabled by setting MONO_DISABLE_AIO.
7704
7705 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7706
7707         * threadpool.c: windows needs 'closesocket' and instead of returning
7708         0 when the stream is closed while in select, it returns -1. Fixes bug
7709         #74573.
7710
7711 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
7712
7713         * class.c (class_compute_field_layout): Fix the regression caused by
7714         the previous try.
7715
7716 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7717
7718         * threadpool.c: separate pool for socket async. IO.
7719         * threadpool.h: mono_max_worker_threads is not a global any more.
7720
7721 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
7722
7723         * class.c (class_compute_field_layout): Fix #74549.
7724
7725 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7726
7727         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
7728         use 2 connected sockets instead.
7729
7730 2005-04-08  Miguel de Icaza  <miguel@novell.com>
7731
7732         * mono-config.c: Add new entry point for mkbundle
7733         mono_config_parse_memory. 
7734
7735 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7736
7737         * threadpool.c: removed another unused function.
7738
7739 2005-04-08  Ankit Jain  <radical@corewars.org>
7740
7741         * reflection.c (get_default_param_value_blobs): Add 'types'
7742         parameter to get the types encoded in the constant table.
7743         (mono_param_get_objects): Use the type from the constant table,
7744         not the type of the parameter, when creating default values.
7745         Handle null default values correctly.
7746
7747 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7748
7749         * file-io.c:
7750         * file-io.h:
7751         * threadpool.c:
7752         * threadpool.h:
7753         * icall.c:
7754         * socket-io.c: removed dead code for async IO.
7755
7756 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7757
7758         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
7759
7760         * threadpool.c: intercept socket async. calls and pass them to a thread
7761         that is polling and dispatching the job items to the threadpool as
7762         socket become ready. Fixes bugs #71217, #71933.
7763
7764         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
7765         between char and short/ushort arrays.
7766
7767         * socket-io.c: remove dead code.
7768
7769 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7770
7771         * locales.c,
7772           icall.c : removed InternalToUpper_Comp() and
7773           InternalToLower_Comp().
7774
7775 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7776
7777         * char-conversions.h : The tables were incorrectly generated. Should
7778           be generated against invariant culture.
7779
7780 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
7781
7782         * object.c (mono_runtime_invoke_array): Fix return value when 
7783         passing pre-created valuetype objects to ctors.
7784
7785         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
7786         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
7787         Fixes #74338.
7788
7789 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
7790
7791         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
7792         only used with --security and hides the wrong corlib version error.
7793
7794 2005-03-30  Joshua Tauberer  <tauberer@for.net>
7795
7796         * class.c: Changed mono_class_name_from_token so that types
7797         outside of a namespace don't have an initial period.  Improved
7798         the g_warning message used in _mono_class_get when loading
7799         fails.
7800         * assembly.c: In mono_assembly_load_reference, when an assembly
7801         can't be found, "No such file or directory" is misleading and
7802         unhelpful because a few paths were checked for the presence of
7803         the assembly.  When that happens (ENOENT), display a nicer
7804         message indicating the directories that were searched.  In all
7805         cases, the warning is made easier to read for non-hackers.
7806
7807 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
7808
7809         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
7810         project/solution.
7811         * appdomain.h|domain.c: Removed inline from functions.
7812         * appdomain.c: Reduced warnings when compiling on windows.
7813         * icall.c: Fixed output_debug declaration to gunichar2*.
7814         * mono-config.c: Reduced warnings when compiling on windows.
7815         * rand.c: Added missing "windows.h". Added missing return value.
7816         * rawbuffer.c: Added missing winsock2.h for windows.
7817         * sysmath.h: Added mono-compiler.h header to allow/ease 
7818         compilation with non-GCC compilers.
7819         * threads.c: Fixed declarations to compile with VS.NET C compiler.
7820         Removed cast warnings.
7821
7822         Adapted from the work of J Lothian (for VC6).
7823
7824 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
7825
7826         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
7827         from default_path.
7828
7829 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
7830
7831         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
7832         the 2.0 profile.
7833
7834 2005-03-27  Raja R Harinath  <harinath@gmail.com>
7835
7836         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
7837         has to be in $(exec_prefix).  $(prefix) is for arch-independent
7838         stuff, and it would probably use $(prefix)/share rather than
7839         $(prefix)/lib.
7840
7841 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7842
7843         * console-io.c: added 2 includes that might be missing.
7844
7845 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
7846
7847         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
7848         profile.
7849
7850         * reflection.c (create_custom_attr): Allocate the params array using
7851         alloca so it gets GC tracking.
7852
7853 2005-03-23  Chris Toshok  <toshok@ximian.com>
7854
7855         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
7856         out some spew.
7857
7858 2005-03-24  Raja R Harinath  <rharinath@novell.com>
7859
7860         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
7861         changes to pick up any changes in prefix, etc.
7862
7863 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7864
7865         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
7866         
7867         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
7868         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
7869
7870 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7871
7872         * class-internals.h object-internals.h class.c reflection.c: Extend the
7873         mono_lookup_dynamic_token () function to return the class of the
7874         token as well. 
7875
7876         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
7877         well. Fixes #73848.
7878
7879 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
7880
7881         * security-manager.c: Skip inheritance checks for intra-corlib
7882         class inheritance and method overrides. This skips a lot of checks
7883         and (anyway) permissions cannot work until corlib is loaded.
7884
7885 2005-03-23  Martin Baulig  <martin@ximian.com>
7886
7887         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
7888         MONO_TYPE_GENERICINST.  
7889
7890 2005-03-23  Martin Baulig  <martin@ximian.com>
7891
7892         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
7893
7894 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7895
7896         * class.c: added locking comments to some functions.
7897         Cache the interface offsets arrays (saves about 20 KB
7898         of runtime memory in a typical app).
7899         Reduce the time overhead in mono_class_setup_supertypes ().
7900
7901 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
7902
7903         * icall.c: speedup and fix leaks in GetMethodsByName and
7904         GetPropertiesByName.
7905
7906 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7907
7908         * reflection.c: some locking fixes.
7909
7910 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7911
7912         * metadata.c: added missing break in case statement.
7913
7914 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
7915
7916         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
7917         typedbyref return values. Fixes #73941.
7918
7919 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
7920
7921         * security-manager.c|h: Added demandunmanaged method and 
7922         suppressunmanagedcodesecurity class to MonoSecurityManager.
7923         Renamed aptc class to allowpartiallytrustedcallers.
7924
7925 2005-03-17  Martin Baulig  <martin@ximian.com>
7926
7927         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
7928
7929 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7930
7931         * file-io.c: disabled file async. IO using aio_*. It uses the
7932         threadpool now. Workaround for bug #73718.
7933
7934 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7935
7936         * assembly.h, mono-config.c: added code to deal with bundled configs
7937         for bundled assemblies.
7938
7939 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
7940
7941         * *.c, private.h: cleanup, removing old private.h header file.
7942
7943 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
7944
7945         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
7946         and throw_on_unmappable_char attributes.
7947
7948 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
7949
7950         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
7951         _ProcessName_internal.
7952
7953 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
7954
7955         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
7956         #73631.
7957
7958         * icall.c threads.c threads-types.h: Remove slothash icalls as they
7959         are no longer used.
7960
7961 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
7962
7963         * object.c (compute_class_bitmap): Add support for generics. Fixes
7964         #73527.
7965
7966 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
7967
7968         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
7969
7970 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7971
7972         * filewatcher.c: commented out the code for windows watcher, as we don't
7973         use it (we use the managed implementation instead).
7974
7975 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
7976
7977         * object-internals.h (MonoThread): Remove 'unused1' field.
7978
7979         * appdomain.c: Bump corlib version.
7980
7981         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
7982
7983         * reflection.c (mono_reflection_create_runtime_class): Remove the
7984         AssemblyBuilder.Save optimization since it causes too many problems.
7985
7986 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
7987
7988         * exception.c|h: Added mono_get_exception_reflection_type_load to
7989         create a ReflectionTypeLoadException object.
7990         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
7991         to return NULL is a InheritanceDemand fails during reflection. Updated
7992         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
7993         ReflectionTypeLoadException if an InheritanceDemand fails during 
7994         reflection. Added icall mapping for GetLinkDemandSecurity.
7995         * security-manager.c|h: Added ves_icall_System_Security_
7996         SecurityManager_GetLinkDemandSecurity internal call to return the
7997         class and methods permissions set for a LinkDemand. Removed unused
7998         fields in MonoSecurityManager.
7999
8000 2005-03-10  Martin Baulig  <martin@ximian.com>
8001
8002         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
8003         it's a generic instance.
8004
8005 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
8006
8007         * reflection.c (mono_get_object_from_blob): Applied patch from
8008         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
8009
8010         * class.c (mono_class_is_assignable_from): Another try at fixing 
8011         #73469 without breaking anything.
8012
8013 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
8014
8015         * class.c: (mono_class_is_assignable_from): Revert the last changes
8016         since they don't work with generics.
8017         
8018         * class.c (mono_class_is_assignable_from): Fix build bustage.
8019
8020         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
8021         the managed IsAssignableFrom method. Fixes #73469.
8022
8023         * reflection.c (mono_reflection_call_is_assignable_from): New helper
8024         function.
8025
8026 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
8027
8028         * object.c (mono_load_remote_field_new): Fix returning uninitialized
8029         memory when the remoting callback does not sets the out arguments.
8030         Fixes #73007.
8031
8032         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
8033         by mistake.
8034
8035         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
8036
8037         * object-internals.h (MonoStackFrame): Sync with managed object layout.
8038
8039         * appdomain.c: Bump corlib version.
8040
8041 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
8042
8043         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
8044         function.
8045
8046         * threads.c (mono_thread_attach): Detect threads which are not started
8047         by the GC pthread wrappers.
8048
8049 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
8050
8051         * icall.c: Added new icall for RNG.
8052         * rand.c|h: Added new icall to open the RNG. This allows to share a 
8053         single handle on Linux to access /dev/urandom and fix #73183.
8054
8055 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
8056
8057         * object.c: setting the new vtable in a transparent proxy object must
8058         not change the GC descriptor.
8059
8060 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8061
8062         * object.c: fixed compilation without GCJ support.
8063         * reflection.c: for runtime-created types ensure klass->has_references
8064         is correct (bug #73215).
8065
8066 2005-03-02  Martin Baulig  <martin@ximian.com>
8067
8068         * class.c (mono_class_is_assignable_from): Make this work if
8069         `oklass' is a generic instance; fixes #72831.
8070
8071 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8072
8073         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
8074         with hasthis set.
8075         
8076         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
8077
8078         * marshal.c: Reorganize native->managed marshalling code to also use
8079         the emit_marshal_... functions.
8080
8081 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8082
8083         * object.c: typed allocs have issues with bitmap sizes > 30,
8084         so check for max_set >= 30.
8085
8086 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8087
8088         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
8089         managed code. Fixes #73012.
8090
8091         * metadata.h (MonoMarshalSpec): Add elem_mult field.
8092
8093         * metadata.c reflection.c: Load/Emit elem_mult as well.
8094         
8095         * metadata.h (MonoMarshalSpec): Add comment.
8096
8097         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
8098
8099         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
8100         num_elem to -1 if not given.
8101
8102         * object-internals.h (MonoReflectionMarshal): Add has_size field.
8103
8104         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
8105         given values.
8106
8107 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
8108
8109         * null-gc.c (mono_gc_free_fixed): Was not compilable.
8110
8111 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
8112
8113         * reflection.c (encode_marshal_blob): Encode param_num field as well.
8114
8115         * object-internals.h (MonoReflectionMarshal): Add param_num field.
8116
8117 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8118
8119         * object.c: generalized the reference bitmap creation
8120         and added hooks for the new GC.
8121         * class-internals.c: removed the gc_bitmap field from MonoClass.
8122
8123 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8124
8125         * domain.c: help the compiler to produce better code
8126         in mono_jit_info_table_find ().
8127
8128 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8129
8130         * object.c: make all allocations look typed.
8131
8132 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8133
8134         * socket-io.c: load Mono.Posix if it's not loaded already
8135         (fixes bug#73033).
8136
8137 2005-02-24  Martin Baulig  <martin@ximian.com>
8138
8139         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
8140         * reflection.c (dup_type): Likewise.
8141
8142 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
8143
8144         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
8145         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
8146
8147 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8148
8149         * domain.c, threads.c, object-internals.h: make the critical thread
8150         local vars use the fast access mode (even when we're compiled in
8151         a lib). Provide accessors to be used by the jit during codegen.
8152
8153 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8154
8155         * appdomain.c: Changed hook functios behavior to include
8156         support for the reflection only assemblies. Some icalls were changed
8157         to support the mentioned assemblies too. Signatures of static methods
8158         try_assembly_resolve and real_load now have an additional parameter:
8159         refonly.
8160
8161         * assembly.c: General changes to mono_assembly_ methods to support
8162         reflection only api. Functions mono_assembly_open, mono_assembly_load,
8163         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
8164         suffix, to support an additional gbool parameter to specify whether
8165         the assembli is reflection only or not. Created some new hook functions 
8166         to add support for reflection only assemblies. Signatures of static 
8167         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
8168         have now an additional parameter: refonly.
8169
8170         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
8171         indicating whether the assembly is reflection only or not.
8172
8173         * exception.c: Add mono_get_exception_invalid_operation.
8174
8175         * icall.c: Throw an InvalidOperationException when trying to invoke
8176         a property/method/event, or trying to set/get the value of a field.
8177         Also add an icall to retrieve the ref_only flag to the
8178         MonoReflectionAssembly.
8179
8180 2005-02-23  Chris Toshok  <toshok@ximian.com>
8181
8182         Part of fix for #72827.
8183         * mono-debug.c (mono_debug_add_method): add lexical block data to
8184         the info we write.  Kind of a hack at the moment - we copy the
8185         lexical block info from the MonoDebugMethodInfo to the
8186         MonoDebugMethodJitInfo here, before writing it.
8187         (mono_debug_read_method): read the lexical block info.
8188
8189         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
8190
8191         * debug-mono-symfile.h: add lexical block support.
8192
8193         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
8194         support.
8195
8196 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8197
8198         * loader.c (mono_lookup_pinvoke_call): Fix warning.
8199
8200         * object.c (mono_runtime_free_method): Call mono_free_method () and
8201         put the TODOs there.
8202
8203         * loader.c (mono_free_method): Free up most memory allocated for 
8204         dynamic methods.
8205
8206 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8207
8208         * reflection.c: properly flag a Type argument to a
8209         named custom attr value (bug #72248).
8210
8211 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8212
8213         * reflection.c: reduce code duplication in named custom
8214         attribute encoding.
8215
8216 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
8217
8218         * reflection.c: properly encode custom attrs of type object
8219         (bug #72649).
8220
8221 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8222
8223         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
8224
8225 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
8226
8227         * socket-io.c: load System.dll if it's not loaded already
8228         (bug #72850 and #70477).
8229
8230 2005-02-21  Martin Baulig  <martin@ximian.com>
8231
8232         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8233         generic instances.
8234
8235 2005-02-21  Martin Baulig  <martin@ximian.com>
8236
8237         * reflection.c (mono_image_build_metadata): We also need to
8238         "fixup" the MethodImpl table after we computed the final method
8239         indices.  Call fixup_methodimpl() to do that.
8240         (fixup_methodimpl): New private method.
8241
8242 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8243
8244         * assembly.c: special case mscorlib.dll (bug#72536),
8245         patch from Carlos Alberto Cortez.
8246
8247 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
8248
8249         * threads-types.h threads.c: Fix build bustage.
8250
8251         * threads.c: Use a union for long<->double conversions.
8252
8253         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8254         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8255
8256         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8257         containing the checkpoint call with NOT_TAKEN.
8258         
8259         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8260         checkpoint before pushing the arguments, so they won't have to be
8261         spilled to stack.
8262
8263 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8264
8265         * domain.c, assembly.c, domain-internals.h: make some data
8266         const and relocation-free.
8267
8268 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8269
8270         * object.c, appdomain.c, class-internals.h: introduce the
8271         MonoClassRuntimeInfo structure to hold the info needed to
8272         use a class at runtime. Made mono_class_vtable() lock-free
8273         for all the appdomains.
8274
8275 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8276
8277         * metadata-internals.h, image.c: introduce a per-image mempool to
8278         be used for memory that has the same lifetime as the image.
8279
8280 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8281
8282         * domain.c: In mono_init_internal(), instead of selecting the first
8283         runtime version supported by an executable, get a list of all
8284         supported versions and select the one for which an mscorlib exists
8285         (since even if the runtime supports a given version, it doesn't mean
8286         that the framework for that version is installed).
8287         Modified get_runtimes_from_exe to support this behavior.
8288         In supported_runtimes, added information about additional system
8289         assembly versions.
8290         
8291         * assembly.c: Added support for more than one system assembly version
8292         per runtime version. Updated the assembly list.
8293         In mono_assembly_remap_version, removed the initial version check,
8294         since we don't know to which version we need to compare until we
8295         get the version set on which the assembly is based.
8296         Moved the code for loading corlib into the new method
8297         mono_assembly_load_corlib(), so it can be used by the initialization
8298         code.
8299         
8300         * domain-internals.h: Updated data structures and added declaration
8301         for mono_assembly_load_corlib.
8302
8303 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8304
8305         * reflection.c (resolve_object): Fix the creation of the signature in 
8306         the SignatureHelper case.
8307
8308         * assembly.c (mono_assembly_remap_version): Fix binary search.
8309         
8310 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8311  
8312         * class.c: Added inheritance check when a method is overloaded (from a
8313         virtual method or when implementing an interface) and when a class is
8314         inherited. Added functions to set a failure for a class and to 
8315         retreive the exception from a failure.
8316         * class-internals.h: Added fields to MonoClass to keep the exception
8317         information status for inheritance (or other exceptions) to be thrown
8318         later (i.e. not at load time).
8319         * object.c: Throw the inheritance SecurityException when a type is to 
8320         be created with either class or method inheritance violations.
8321         * reflection.c|h: Fix when getting declsec from a class. Removed 
8322         unrequired code for class. Improved sanity in parameter naming.
8323         * security-manager.c|h: Added functions to check for class and method
8324         inheritance.
8325
8326 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8327
8328         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8329         and has_finalize in dynamic types as well.
8330
8331 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8332
8333         * culture-info-table.h : fixed currency format for en-GB (and so on).
8334
8335 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8336
8337         * gc.c: ensure the GC handles never have 0 as a value.
8338
8339 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8340
8341         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8342         a pointer to a struct to unmanaged code. Fixes #72625.
8343
8344 2005-02-16  Martin Baulig  <martin@ximian.com>
8345
8346         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8347
8348 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8349
8350         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8351
8352 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8353
8354         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8355
8356         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8357         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8358         etc. Fixes #71471.
8359
8360         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8361
8362         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8363
8364 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8365
8366         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8367         changes to make the current context a field in MonoThread.
8368
8369 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8370
8371         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8372         the last change.
8373         
8374         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8375         extracted from mono_marshal_get_native_wrapper.
8376
8377         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8378         to create wrappers around native functions.
8379
8380         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8381         delegates for arbitrary function pointers. Fixes #71472.
8382
8383 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8384
8385         * threads.c: cleaned up the code a little.
8386
8387 2005-02-15  Martin Baulig  <martin@ximian.com>
8388
8389         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
8390         the data table.
8391
8392         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
8393         allocate larger chunks if needed.
8394
8395 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8396
8397         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8398         in by mistake.
8399
8400 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8401
8402         * domain.c: keep the domains in an array and ensure the domain ids
8403         are kept small, so they can be used as indexes to domain-specific data
8404         with a small memory overhead.
8405
8406 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8407
8408         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8409
8410 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8411
8412         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8413
8414 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8415
8416         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8417
8418         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8419         values.
8420
8421         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8422         
8423 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8424
8425         * domain-internals.h: add the hashtable here.
8426
8427         * class-internals.h: Remove `info' from MonoMethod
8428
8429         * domain.c: Add a new hashtable, jit_trampoline_hash
8430
8431 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8432
8433         * object.c: don't set the value of static fields
8434         (fixes bug#72494).
8435
8436 2005-02-11  Martin Baulig  <martin@ximian.com>
8437
8438         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8439         (mono_debug_add_method): Silently ignore the method if it's too big.
8440         (mono_debug_add_type): Likewise.
8441
8442 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8443
8444         * threads.c, appdomain.c: remove #ifdefs from the code.
8445
8446 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8447
8448         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8449         common security informations. This allows us to stay in unmanaged code
8450         when doing LinkDemand and it's special cases (except for the first 
8451         time for initialization). The flags a very much used with --security.
8452         * reflection.c|h: Added code to get declarative security attributes 
8453         for LinkDemand and InheritanceDemand. This required to refactor the
8454         existing code for Demand.
8455         * security-manager.c|h: Added new method fields for the special cases
8456         of LinkDemand.
8457
8458 2005-02-10  Martin Baulig  <martin@ximian.com>
8459
8460         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8461         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8462
8463 2005-02-10  Martin Baulig  <martin@ximian.com>
8464
8465         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8466         debugging code; this is almost a complete rewrite.
8467
8468         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8469
8470 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8471
8472         * domain.c, object.h: expose mono_string_equal () and 
8473         mono_string_hash ().
8474         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8475         it's implemented in managed code.
8476
8477 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8478
8479         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8480         lo leak objects between appdomains.
8481
8482 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8483
8484         * assembly.c: old compilers compilation fix from 
8485         robertj@gmx.net (Robert Jordan).
8486
8487 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8488
8489         * class-internals.h: Little reminder for the future.
8490
8491         * debug-helpers.c: Fix up wrapper_type_names
8492
8493 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8494
8495         * image.c, metadata-internals.h: when loading an image from a file,
8496         mmap all of it and use the same codepaths as when using a
8497         in-memory image: the code is simpler and we use less memory
8498         (both writable and readonly).
8499
8500 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8501
8502         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
8503         API to alloc runtime data structures that need to be tracked by the
8504         GC and contain pointers.
8505         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
8506         make the code more readable and eventually use a different GC.
8507
8508 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
8509
8510         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
8511         for out arguments.
8512         
8513 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
8514
8515         * object.c: In release_type_locks(), don't release the cctor lock
8516         if it has already been released. This fixes a crash in the
8517         thread5 test.
8518
8519 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8520
8521         * gc.c, marshal.c, icall.c: register a delegate for finalization
8522         only when the native function pointer has been allocated for it.
8523
8524 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8525
8526         * object.c: cleaned up some code, allocate objects that are
8527         pointer free with the atomic malloc variant. Allocate memory
8528         for static data from the mempool if it's pointer-free.
8529         Allocate the bounds array at the end of the array data, when needed.
8530         * object-internals.h, object.h: move a private function in a private
8531         header.
8532         * class.c: handle missing case in tracking references in fields.
8533
8534 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8535
8536         * class.c, class-internals.h: keep track if a type has
8537         reference fields in either the instance or static fields.
8538
8539 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
8540
8541         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
8542         and renamed to MonoRuntimeInfo. Added fields to store the expected
8543         framework assembly version. Changed mono_get_framework_version and
8544         mono_get_runtime_version for a single mono_get_runtime_info method.
8545         
8546         * assembly.c: Added method to remap system assembly versions to the
8547         current executing runtime version. Removed old mapping code.
8548         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
8549         
8550         * icall.c, reflection.c: Track api changes.
8551
8552 2005-02-06  Miguel de Icaza  <miguel@novell.com>
8553
8554         * loader.c (method_from_memberref): Improve error reporting,
8555         produce the class name instead of the typeref/typedef index. 
8556
8557 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
8558
8559         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
8560
8561 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8562
8563         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
8564         stdcall and charset name mangling.  Reorganize the code and add
8565         some tracing stuff.
8566
8567 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8568
8569         * monodiet.c: More iters!
8570
8571         * marshal.c: Iter usage.
8572
8573         * icall.c: Iter usage.
8574
8575         * object.c: Use iters.
8576
8577         * debug-helpers.c: More iters
8578
8579 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8580
8581         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
8582         under win32.
8583
8584 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8585
8586         * mono-debug-debugger.c: use iters
8587
8588         * class.c, class-internals.h: mono_class_setup_events is static
8589         now
8590
8591         * All callers: use iters
8592
8593 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8594
8595         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
8596         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
8597
8598 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8599
8600         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
8601
8602         * marshal.h: Add prototypes for ldfld/stfld_remote.
8603
8604         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
8605         this is called during startup.
8606         
8607 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
8608
8609         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
8610         MonoThreadsSync struct private in monitor.c. Changed the way
8611         MonoThreadsSync is allocated so it's faster and there is no
8612         need to keep track of it with a finalizer and it uses less memory.
8613         This also finally allows us to allocate mono objects as ptrfree when
8614         there are no reference fields.
8615
8616 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
8617
8618         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
8619         disappearing link to the GC interface and use them to simplify
8620         the gchandles code.
8621
8622 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8623
8624         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
8625         stfld_remote which call mono_load/store_field_new. This allows methods
8626         calling ldfld/stfld wrappers to be AOTed.
8627
8628         * console-io.c: Include sys/filio.h under solaris.
8629         
8630         * console-io.c: Include curses.h if needed correctly.
8631
8632 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8633         
8634         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
8635         method->klass as well.
8636
8637         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
8638
8639         * class.c (mono_class_init): Switch on lazy initialization of 
8640         methods.
8641
8642         * class.c (mono_class_get_finalizer): Handle the case when the 
8643         finalizer is inherited.
8644
8645 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8646
8647         * console-io.c: <curses.h> is needed by term.h on solaris.
8648
8649 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
8650
8651         * icall.c, class-internals.h, monodiet.c, class.c: Remove
8652         mono_class_setup_properties where possible. Remove this ftn from
8653         the header file, and make it static.
8654
8655 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8656
8657         * loader.c: Add missing setup_... call.
8658
8659         * class.c: Add missing setup_... calls.
8660
8661         * class.c (mono_class_init): Switch on lazy initialization of 
8662         the generic vtable.
8663         
8664         * class.c (mono_class_init): Fix generics broken by the recent changes.
8665
8666         * monodiet.c (handle_type): Add missing setup_... calls.
8667
8668         * class.c: Back out garbage in previous patch.
8669         
8670         * class.c: Add missing setup_... calls.
8671
8672         * class.c (mono_class_get_method_from_name_flags): Avoid calling
8673         mono_class_setup_methods () if possible.
8674
8675         * class-internals.h (MonoClass): Add 'has_cctor' flag.
8676
8677         * class-internals.h (MonoCachedClassInfo): New structure.
8678
8679         * class.c: Initialize properties and events fields of MonoClass lazily.
8680
8681         * class.c: Add infrastructure for lazily initializing the methods and
8682         vtable fields of MonoClass. Not yet used.
8683
8684         * class.c (mono_class_get_finalizer): New helper function.
8685
8686         * class.c: Add infrastructure for loading some class related data from
8687         an AOT file.
8688
8689         * object.c: Add infrastructure for initializing the vtable from data
8690         in the AOT file.
8691
8692         * gc.c (run_finalize): Use mono_class_get_finalizer ().
8693
8694         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
8695         appropriate initialization function before accessing parts of the
8696         MonoClass structure.
8697
8698         * marshal.c: Fix warnings.
8699         
8700         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
8701
8702         * mono-debug-debugger.c (get_exception_message): Use 
8703         mono_class_get_method_from_name_flags ().
8704
8705 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
8706
8707         * reflection.c, appdomain.c: Replace a few manual searches that
8708         Zoltan missed. (Paolo approved this part of my initial patch).
8709
8710 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
8711
8712         * profiler.c: disable recording statistical events at report time.
8713
8714 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8715
8716         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
8717         to byteswap arrays of enum values, too (bug #72080).
8718
8719 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
8720
8721         * appdomain.c (set_domain_search_path): Allow this to be called if
8722         domain->setup is not yet set.
8723
8724         * loader.c (mono_method_get_index): New helper function.
8725
8726         * loader.c reflection.c: Use mono_method_get_index ().
8727
8728         * class.c (mono_class_get_method_from_name_flags): New helper method.
8729
8730         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
8731         this.
8732
8733         * class.c (mono_class_get_cctor): New helper method.
8734
8735         * string-icalls.c object.c class.c marshal.c reflection.c: Use
8736         mono_class_get_method () to look up methods.
8737
8738 2005-02-01  Miguel de Icaza  <miguel@novell.com>
8739
8740         * console-io.c: Fix the build, this should work on Windows.
8741
8742 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
8743
8744         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
8745         be set to null to keep things valid
8746
8747 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8748
8749         * icall.c: added Console 2.0 icalls.
8750         * Makefile.am: added console-io.[ch]
8751         * console-io.[ch]: internal calls for Console 2.0 API.
8752
8753 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8754
8755         * class.c: make sure we consider all the interfaces
8756         when calculating max_interface_id (bug found by
8757         Jeroen Frijters running ikvm).
8758
8759 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
8760
8761         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
8762         valuetype fields to null.
8763
8764         * object.c (set_value): Ditto. Fixes #71669.    
8765
8766 2005-01-31  Martin Baulig  <martin@ximian.com>
8767
8768         * metadata.c (mono_metadata_has_generic_params): New public
8769         function; checks whether something is a generic method.
8770
8771 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
8772
8773         * appdomain.c: fix infinite recursion when adding assemblies.
8774
8775 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
8776
8777         * object.c: Fix small typo to return all items for Environment.
8778         GetCommandLineArgs.
8779
8780 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8781
8782         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
8783         reflection.c: more domain and assembly-unload related fixes
8784         and memory leaks plugs.
8785
8786 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
8787
8788         * 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.
8789
8790 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
8791
8792         * loader.c (mono_method_signature): Make this method lazy
8793         (mono_get_method_from_token): Don't computate the signature here.
8794
8795         Doing this saves quite a bit of memory. I got 90 kb on starting up
8796         monodoc. It should also save some disk reads on startup.
8797
8798         * *: MonoMethod->signature might be NULL now. You *MUST* use
8799         mono_method_signature.
8800
8801 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
8802
8803         * object.c (mono_runtime_get_main_args): Return an array from the
8804         current domain here. Fixes #71938.
8805
8806 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
8807
8808         * monitor.c: formatting changes to comply with the
8809         mono coding style and remove #ifdefs from the code.
8810
8811 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8812
8813         * metadata.c, private.h: remove some unneeded data
8814         and use a more compact representation for table schemas.
8815
8816 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
8817
8818         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
8819         to get a better distribution in hash tables.
8820         * *.c: use mono_aligned_addr_hash() where appropriate.
8821         * assembly.c: make var static.
8822
8823 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
8824
8825         * domain-internals.h: Put MonoJitInfo on a diet.
8826
8827         * domain.c: Fix a warning.
8828
8829 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8830
8831         * gc.c: rework the gc handles code to reuse handles
8832         when freed.
8833
8834 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8835
8836         * domain.c: fixed long standing bug in mono_string_equal() which
8837         was brought to light with the ldstr changes.
8838
8839 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
8840
8841         * reflection.c: Remove warning by adding missing include for marshal.h
8842
8843 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8844
8845         * domain.c, object.c: change the ldstr_table to hold
8846         MonoString* as keys: makes the runtime isinterned lookup
8847         faster and simplifies memory management.
8848
8849 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
8850  
8851         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
8852         possible to add imperative security checks before calling the icall.
8853         * reflection.c: Return security attributes on the original MonoMethod
8854         (and not the wrapped one). This fix permissions on icalls.
8855
8856 2005-01-25  Dick Porter  <dick@ximian.com>
8857
8858         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
8859         the check for mktime() support actually test the mktime() return
8860         value.  "Fixes" bug 71682, though the output is still different to
8861         MS.
8862
8863 2005-01-25  Martin Baulig  <martin@ximian.com>
8864
8865         * class.c (mono_class_is_assignable_from): Make this work for
8866         generic instances.
8867
8868 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
8869
8870         * marshal.c (mono_string_utf8_to_builder)
8871         (mono_string_builder_to_utf16): We might not have ownership of the
8872         string. In thise case, we need to create a new buffer.
8873
8874         * object-internals.h (mono_stringbuilder_capacity): sb->str might
8875         be null, in which case, use the default capacity.
8876
8877 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8878
8879         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
8880         GC events to the profiler.
8881
8882 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8883
8884         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
8885         if you don't want the GC to run.
8886
8887 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
8888
8889         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
8890         start providing a GC API and keeping different implementations in
8891         their own file.
8892         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
8893
8894 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
8895
8896         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
8897         mmap rather than allocating a huge buffer.
8898         (mono_debug_close_mono_symbol_file): Free the buffer allocated
8899         above.
8900
8901 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
8902
8903         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
8904         and CheckExecutionRights.
8905         * reflection.c|h: Keep the index of the declarative security to be 
8906         used, instead of the pointer, when AOT compiler is used. Also add 
8907         class initialization when requesting demands.
8908         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
8909         CheckExecutionRights. Both properties are now FALSE by default, and
8910         unmodifiable, unless the --security option is used.
8911
8912 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8913
8914         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
8915         reflection.c: properly refcount images and assemblies, many leaks fixed.
8916
8917 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8918
8919         * threadpool.c: increase the timeout for threads in the thread pool to
8920         10s.  Fixes bug #67159.
8921
8922 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
8923
8924         * class-internals.h: Sun's compiler insists on explicit
8925         signed on bit fields to handle then correctly.
8926
8927 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
8928
8929         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
8930         Make the size of the array fit only the number of invalid path
8931         chars that we have.
8932
8933         * class.c (_mono_class_get): Improve the error reporting when a
8934         class referenced is not found, to assist debugging. 
8935
8936 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
8937
8938         * threads.c: fix off-by-one error.
8939         * domain.c: free data allocated in the domain.
8940
8941 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
8942
8943         * reflection.c (mono_method_body_get_object): Fill out exception info
8944         as well.
8945
8946         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
8947         structure.
8948         
8949 2005-01-19  Martin Baulig  <martin@ximian.com>
8950
8951         * loader.c (mono_get_method_constrained): Make this work again.
8952
8953 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
8954
8955         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
8956         guint16 to match the managed side.
8957
8958         * reflection.c (mono_reflection_body_get_object): Fill out local
8959         variables array.
8960
8961         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
8962         as well.
8963
8964         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
8965         'local_var_sig_token'.
8966
8967 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
8968
8969         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
8970         System.Drawing.
8971
8972         * reflection.c (mono_method_body_get_object): Handle abstract and
8973         runtime methods.
8974
8975 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
8976
8977         * marshal.c, loader.c, class-internals.h, reflection.c:
8978         store the emthod data for a wrapper in an array instead of a list.
8979
8980 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
8981
8982         * marshal.c: change the code to allocate memory more
8983         conservatively for method wrappers.
8984
8985 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
8986
8987         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
8988         fields from MonoClass to the marshal info structure where they belong.
8989
8990 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8991
8992         * class.c, object.c, class-internals.h, marshal.c: rearrange
8993         some fields and tweak some types to lower memory usage.
8994
8995 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
8996
8997         * threads.c (signal_thread_state_change): Handle the case when the
8998         target thread is the current thread.
8999
9000         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
9001
9002         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
9003         emit_ptr_to_object_conv. 
9004
9005         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
9006         marshalling. Fixes #71352.
9007
9008 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9009
9010         * metadata.h, blob.h: move table enum to blob.h so it can be included
9011         in any header.
9012         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
9013         cut the size of MonoImage/MonoDynamicImage.
9014
9015 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
9016
9017         * profiler.c (mono_profiler_install_simple): Fix default arguments.
9018
9019 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9020
9021         * reflection.c, reflection.h, icall.c: add a function to check
9022         if an attribute type is defined for a metadata object.
9023
9024 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
9025
9026         * object-internals.h: Added some needed fields from StringBuilder class.
9027         * marshal.c: Set the maxCapacity when creating a StringBuilder.
9028
9029 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
9030
9031         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
9032         threads before shutting down the runtime.
9033
9034         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
9035
9036 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9037
9038         * object-internal.h, threads.c: implement stacksize and 
9039         parameterized thread start functionality (requires
9040         matching corlib). Marked broken code for later removal.
9041
9042 2005-01-12  Martin Baulig  <martin@ximian.com>
9043
9044         * class-internals.h (MonoGenericClass): Moved the `initialized'
9045         flag to MonoDynamicGenericClass, removed `init_pending'.
9046         (MonoGenericInst): Added `is_reference' flag.
9047
9048 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
9049
9050         * reflection.c (mono_image_create_pefile): Only set the pe_offset
9051         inside the MSDOS header. Fixes #71201.
9052
9053         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
9054         gc thread.
9055         (mono_domain_finalize): Ditto.
9056
9057 2005-01-12  Martin Baulig  <martin@ximian.com>
9058
9059         * class.c (mono_get_shared_generic_class): Use the cache for
9060         non-dynamic generic classes.
9061
9062         * class-internals.h (mono_class_create_generic_2): Removed
9063         function prototype, this function is now static inside class.c.
9064
9065         * class.c (mono_class_create_generic_2): Made this static, only
9066         call it from mono_class_init() and mono_class_setup_parent().
9067         (collect_implemented_interfaces_aux): Call mono_class_init() on
9068         the interfaces we collect.
9069         (mono_class_setup_vtable): Call mono_class_init (class->parent).
9070
9071 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9072
9073         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
9074         it a real thread handle.
9075
9076         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
9077         MonoJitExceptionInfo, since each catch clause needs its own variable.
9078         
9079 2005-01-11  Dick Porter  <dick@ximian.com>
9080
9081         * image.c (mono_pe_file_open): New variant on mono_image_open()
9082         that does not set up the CLI metadata; used for FileVersionInfo so
9083         it can get the data for windows binaries too.
9084         
9085         * process.c (process_read_string_block): Don't read off the end of
9086         the StringTable block.
9087
9088         These both fix bug 70766.
9089
9090 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
9091
9092         * gc.c: set some fields to NULL at GC cleanup time.
9093         * threads.c: if we quit the main thread, call exit ().
9094
9095 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9096
9097         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
9098
9099 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
9100
9101         * threads.h, threads.c, object.c: added accessor and settor for
9102         main_thread. Handle it specially when exiting from it: wait
9103         for other foreground threads to exit.
9104
9105 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
9106
9107         * process.c, verify.c: remove some bloat.
9108
9109 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
9110
9111         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
9112         the calling convention to cdecl under win32.
9113
9114 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
9115
9116         * object.c (mono_object_get_size): New function to get the size of
9117         an object instance.
9118
9119         * profiler.c (simple_allocation): Use above.
9120
9121 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9122
9123         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
9124         ves_icall_System_AppDomain_getRootDomain (as it's not required to
9125         get an appdomain by it's id and we can't assume the root's id is 0).
9126         * domain-internals.h: Change the function prototype to match.
9127         * icall.c: Change the icall table for AppDomain.
9128
9129 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
9130
9131         * locales.c (string_invariant_compare_char): Only compute
9132         GUnicodeTypes in the case where we need them.  Test for ordinality
9133         first and return if so.
9134
9135         From the commit:
9136
9137                 /*
9138                  * FIXME: here we must use the information from c1type and c2type
9139                  * to find out the proper collation, even on the InvariantCulture, the
9140                  * sorting is not done by computing the unicode values, but their
9141                  * actual sort order.
9142                  */
9143
9144 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9145
9146         * loader.c: for P/Invoke methods, allow the "Internal" shared
9147         library name to refer to the calling process symbol namespace.
9148
9149 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
9150
9151         * Makefile.am: Add the security manager to the build.
9152         * security-manager.c|h: New. Initialization of the security manager.
9153
9154 2005-01-07  Dick Porter  <dick@ximian.com>
9155
9156         * threads.c: 
9157         * monitor.c: Update thread state during Monitor and WaitHandle
9158         waits.  Fixes bug 71031.
9159
9160 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
9161
9162         * reflection.c (property_encode_signature): Correctly handle when the
9163         property has no methods.
9164
9165 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
9166
9167         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
9168         
9169         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
9170         fields from mb, not rmb. Fixes #71017.
9171
9172         * marshal.c (emit_ptr_to_str_conv): Add support for 
9173         ByValTStr -> string conversion. Fixes #71015.
9174
9175         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
9176
9177         * mempool.c (mono_mempool_contains_addr): New helper function.
9178
9179 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9180
9181         * metadata.c (mono_metadata_compute_size): Fix size calculation of
9182         HasSematics encoded fields.
9183         
9184         * metadata.c (mono_type_to_unmanaged): Improve error message for 
9185         invalid string marshalling.
9186
9187         * metadata.c: Fix warnings.
9188         
9189 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9190
9191         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
9192         profiler support.
9193
9194 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9195
9196         * domain.c object.c domain-internals.h: Revert part of r38077 since the
9197         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
9198         tests.
9199
9200 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
9201
9202         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
9203         so methods containing these can be AOTed.
9204
9205 2005-01-03  Martin Baulig  <martin@ximian.com>
9206
9207         * loader.c (find_method): Removed the hack for generic instances.
9208         (method_from_memberref): If our parent is a generic instance, pass
9209         its generic type definition to find_method() and then inflate the
9210         method.
9211         (mono_get_method_constrained): Pass the generic type definition to
9212         find_method() and inflate the method later.
9213
9214         * class-internals.h (MonoStats): Added `generic_class_count'.
9215
9216         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
9217         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
9218
9219         * reflection.c (mono_custom_attrs_from_params): Don't ignore
9220         generic type definitions.
9221
9222 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
9223
9224         * loader.c icall.c: Fix warnings.
9225
9226 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
9227
9228         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
9229         blittable types. Fixes #70864.
9230
9231 2004-12-29  Martin Baulig  <martin@ximian.com>
9232
9233         * icall.c
9234         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
9235
9236         * reflection.c (mono_method_get_object): Create a
9237         "System.Reflection.MonoGenericMethod" for inflated methods; don't
9238         call mono_get_inflated_method().
9239
9240         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
9241
9242 2004-12-27  Martin Baulig  <martin@ximian.com>
9243
9244         * class-internals.h (MonoMethod): Added `is_inflated' flag.
9245         (MonoMethodInflated): Added `inflated' field.
9246
9247         * class.c (mono_class_inflate_generic_method): Don't really
9248         inflate the method here; just set the `is_inflated' flag in the
9249         MonoMethod.
9250         (mono_class_get_inflated_method): Actually inflate the method here
9251         if it's not already inflated; we use the MonoMethodInflated's new
9252         `inflated' field as a cache.
9253
9254 2004-12-26  Martin Baulig  <martin@ximian.com>
9255
9256         * class.c
9257         (inflate_generic_class): Moved some code out of inflate_generic_type().
9258         (mono_class_inflate_generic_method): If we're already inflated,
9259         inflate the context and use the declaring method; ie. make sure
9260         the declaring method of an inflated method is always the generic
9261         method definition.
9262         (mono_class_create_from_typedef): Create
9263         `class->generic_container->context->gclass'.
9264
9265 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9266
9267         * metadata-internals.h, marshal.c, reflection.c: More
9268         MonoGHashTable->GHashTable.
9269
9270         * domain-internals.h, class.c: Change MonoGHashTable's into
9271         GHashTables for some cases where no gc stuff is used
9272
9273         All users: update apis
9274
9275 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9276
9277         * metadata.c (builtin_types): Make this `const'. Makes this get
9278         put into the shareable section.
9279         (mono_metadata_init): Casts to make gcc happy.
9280
9281 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9282
9283         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9284
9285 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9286
9287         * icall.c: Added an internal call to retrieve the position and length
9288         of assembly-level declarative security attributes (RequestMinimum, 
9289         RequestOptional and RequestRefuse). This is used by the Assembly class
9290         to re-create the corresponding permission sets.
9291
9292 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9293
9294         * marshal.c: fix the stelemref wrapper to be type correct
9295         (and faster).
9296
9297 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9298
9299         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9300         to do key & 0x7fffffff. Hashtable already does this. It just
9301         results in longer code.
9302
9303 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9304
9305         * appdomain.c: Bump corlib version.
9306         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9307         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9308         * reflection.c|h: Add functions to get declarative security infos
9309         (blob position and length) for assemblies, classes and methods.
9310
9311 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9312
9313         * reflection.c: sort the constant table (bug #70693).
9314
9315 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9316
9317         * object-internals.h, threads.c, domain.c: add accessors for
9318         the MonoThread and MonoDomain tls keys.
9319
9320 2004-12-18  Martin Baulig  <martin@ximian.com>
9321
9322         * class.c (inflate_generic_type): If we're inflating a generic
9323         instance, set `ngclass->context->container = context->container';
9324         ie. the container we inflated into.
9325
9326         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9327         inflate_generic_type() changes.
9328
9329 2004-12-17  Martin Baulig  <martin@ximian.com>
9330
9331         * class-internals.h
9332         (MonoGenericClass): Replaced `MonoType *generic_type' with
9333         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9334         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9335         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9336
9337 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9338
9339         * exception.c (mono_exception_from_token): New helper function.
9340
9341 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9342
9343         * assembly.c (mono_assembly_load_with_partial_name): Call 
9344         mono_assembly_loaded before invoking the preload hooks. Fixes
9345         #70564.
9346
9347         * object-internals.h (MonoThread): Change culture_info and 
9348         ui_culture_info into an array.
9349
9350         * threads.c: Cache culture info objects from more than one appdomain.
9351
9352         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9353         current UI culture.
9354
9355 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9356
9357         * threads.h threads.c appdomain.c: Clear the culture_info field of
9358         all threads during unloading if they point to an object in the dying
9359         appdomain.
9360
9361 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9362
9363         * culture-info.h (TextInfoEntry): New struct
9364         * object-internals.h: sync with managed
9365         * locales.c: fill the `text_info_data' field
9366         * culture-info-tables.h: update
9367
9368 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9369
9370         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9371         collector.
9372
9373 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9374
9375         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9376         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9377
9378 2004-12-12  Martin Baulig  <martin@ximian.com>
9379
9380         * mono-debug-debugger.c (write_type): If we're an enum and the
9381         builtin types have already been initialized, call mono_class_init().
9382
9383 2004-12-11  Martin Baulig  <martin@ximian.com>
9384
9385         * metadata.c (mono_metadata_load_generic_params): Added
9386         `MonoGenericContainer *parent_container' argument; automatically
9387         compute `container->is_method'; pass the correct owner to
9388         get_constraints().      
9389
9390         * reflection.c (compare_genericparam): Sort the GenericParam table
9391         according to increasing owners. 
9392
9393 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
9394
9395         * profiler.c: allow disabling the default profiler.
9396
9397 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9398
9399         * decimal.c, icall.c: allow disabling System.Decimal support.
9400
9401 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9402
9403         * reflection.c: Add support for null attribute arguments.
9404
9405 2004-12-09  Martin Baulig  <martin@ximian.com>
9406
9407         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9408         names to get rid of compiler warnings.
9409
9410 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9411
9412         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9413         mono_marshal_load_type_info (). Fixes #69625.
9414         (mono_marshal_get_ptr_to_struct): Likewise.
9415
9416 2004-12-08  Martin Baulig  <martin@ximian.com>
9417
9418         * mono-debug.h: Bumped version number to 47.
9419
9420         * mono-debug-debugger.c
9421         (mono_debugger_event_handler, mono_debugger_event): Take two
9422         guint64 arguments insteed of a gpointer and a guint32.  
9423
9424 2004-12-08  Martin Baulig  <martin@ximian.com>
9425
9426         * debug-mono-symfile.h
9427         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9428         `address' to `native_offset'.
9429
9430 2004-12-08  Martin Baulig  <martin@ximian.com>
9431
9432         * class.c (mono_class_create_from_typespec): Only inflate if we
9433         either have `context->gclass' or `context->gmethod'.
9434
9435 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9436
9437         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9438
9439         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9440
9441         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9442
9443         * reflection.c (mono_assembly_get_object): Remove the workaround put
9444         in for the release.
9445         
9446         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9447
9448         * appdomain.c: Bump corlib version.
9449
9450         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9451         be visible in other appdomains.
9452
9453 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9454
9455         * threads.c: Interlocked inc and dec for longs were messed up,
9456         use a KISS based impl for this. Fixes 70234
9457
9458 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9459
9460         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9461
9462 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9463
9464         * icall.c: fix to follow policy not to allow struct
9465         arguments in icalls.
9466
9467 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9468
9469         * process.c: make the patch that handles spaces in file paths work
9470         on mono/windows too.
9471
9472 2004-12-06  Martin Baulig  <martin@ximian.com>
9473
9474         * class.c (mono_class_create_generic): Call
9475         mono_class_setup_supertypes() if we're dynamic.
9476         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9477
9478 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9479
9480         * object-internals.h: Add new fields to MonoThread.
9481
9482         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9483
9484         * icall.c threads-types.h threads.c: Add new icalls.
9485
9486         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9487
9488         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9489         managed side.
9490
9491         * appdomain.c: Bump corlib version.
9492
9493         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
9494         internal assemblies. Fixes #69181.
9495
9496 2004-12-05  Martin Baulig  <martin@ximian.com>
9497
9498         * class.c (mono_class_inflate_generic_signature): Make this a
9499         no-op if `context' is NULL or we don't have any type parameters;
9500         also copy `sentinelpos'.        
9501
9502 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
9503
9504         * image.c: Add unbox_wrapper_cache.
9505
9506         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
9507
9508         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
9509         function generator.
9510         
9511         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
9512         Fixes #70173.
9513
9514         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
9515         
9516 2004-12-04  Martin Baulig  <martin@ximian.com>
9517
9518         * loader.c (mono_method_get_signature_full): New public function;
9519         like mono_method_get_signature(), but with an additional
9520         `MonoGenericContext *' argument.
9521
9522         * class.c (mono_class_inflate_generic_signature): Formerly known
9523         as inflate_generic_signature(); make this public.
9524
9525 2004-12-04  Martin Baulig  <martin@ximian.com>
9526
9527         * metadata.c
9528         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
9529         instead of a `MonoGenericContainer *'.  
9530         (mono_metadata_parse_array_full): Likewise.
9531         (mono_metadata_parse_signature_full): Likewise.
9532         (mono_metadata_parse_method_signature_full): Likewise.
9533         (mono_metadata_parse_generic_inst): Likewise.
9534         (mono_metadata_parse_generic_param): Likewise.
9535         (mono_metadata_parse_mh_full): Likewise.
9536         (mono_type_create_from_typespec_full): Likewise.
9537
9538 2004-12-03  Martin Baulig  <martin@ximian.com>
9539
9540         * class-internals.h (MonoGenericContainer): Replaced the
9541         `MonoGenericContext * pointer with a `MonoGenericContext'
9542         structure and made it the first element.
9543
9544 2004-12-03  Martin Baulig  <martin@ximian.com>
9545
9546         * class.c
9547         (inflate_generic_type): Set the `context->container' when creating
9548         a new MonoGenericContext.
9549         (mono_class_inflate_generic_method): Likewise.
9550         (mono_class_create_from_typespec): Just use `context->container'
9551         to get the container.
9552
9553         * loader.c (method_from_methodspec): Set `context->parent' from
9554         `context->container' - and if that's a method container, use its
9555         parent.  Also set the `context->container' when creating a new
9556         MonoGenericContext.
9557         (mono_get_method_from_token): Use just `context->container' to get
9558         the container.
9559
9560         * metadata.c (do_mono_metadata_parse_generic_class): Also set
9561         `gclass->context->container'.
9562
9563         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
9564         the `context->container' when creating a new MonoGenericContext.
9565
9566 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
9567
9568         * reflection.c (compare_genericparam): Sort params with identical
9569         owner by their number. Fixes gen-111 on sparc.
9570
9571 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9572
9573         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
9574         around the domain changes.
9575
9576         * appdomain.c (mono_domain_unload): Handle the case when the thread
9577         calling Unload is itself being aborted during unloading. Fixes #70022.
9578
9579         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
9580
9581         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
9582         checkpoint_func as an icall so it gets a wrapper.
9583         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
9584         in the cross-appdomain wrappers too.
9585
9586         * threads.c (mono_thread_has_appdomain_ref): Make this public.
9587
9588         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
9589
9590         * reflection.c: Fix some memory leaks.
9591         
9592 2004-12-02  Martin Baulig  <martin@ximian.com>
9593
9594         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
9595
9596         * metadata.c (generic_class_cache): New static hashtable.
9597         (mono_metadata_lookup_generic_class): New public method.
9598
9599 2004-12-02  Martin Baulig  <martin@ximian.com>
9600
9601         * class.c (mono_class_create_from_typedef): Call
9602         mono_class_setup_parent() and mono_class_create_mono_type() before
9603         parsing the interfaces.
9604
9605 2004-12-02  Martin Baulig  <martin@ximian.com>
9606
9607         * metadata.c (generic_inst_cache): New static hashtable.
9608         (mono_metadata_lookup_generic_inst): New public function.
9609         (mono_metadata_inflate_generic_inst): New public function.
9610         (mono_metadata_parse_generic_inst): New public function.
9611         (do_mono_metadata_parse_generic_class): Use the new
9612         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
9613         since this'll also use the cache.
9614
9615         * reflection.c (mono_reflection_bind_generic_method_parameters):
9616         Use mono_metadata_lookup_generic_inst() to use the new cache.
9617
9618         * class.c (inflate_mono_type): Use
9619         mono_metadata_inflate_generic_inst() to inflate a generic
9620         instance; this'll also use the new cache.
9621
9622         * loader.c (method_from_methodspec): Use
9623         mono_metadata_parse_generic_inst() and
9624         mono_metadata_inflate_generic_inst() rather than parsing it
9625         manually, so we can use the new cache.
9626
9627 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9628
9629         * threads.c (wait_for_tids): Do not incorrectly free threads when 
9630         the wait times out.
9631
9632 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
9633
9634         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
9635         iter->args based on whether parameters are passed in registers (i.e.
9636         MONO_ARCH_REGPARMS is defined)
9637
9638 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
9639
9640         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
9641         the exception message. Fixes #70070.
9642         (method_from_methodspec): Fix warnings.
9643
9644 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9645
9646         * process.c: (complete_path) return the path quoted
9647
9648 2004-12-01  Martin Baulig  <martin@ximian.com>
9649
9650         * class-internals.h (MonoGenericInst): New structure.
9651         (MonoGenericClass): Replaced `type_argc', `type_argv' and
9652         `is_open' with `MonoGenericInst *inst'.
9653         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
9654         `is_open' with `MonoGenericInst *inst'.
9655
9656 2004-11-30  Martin Baulig  <martin@ximian.com>
9657
9658         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
9659
9660         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
9661         to `generic_class_cache'.
9662
9663         * metadata.c
9664         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
9665         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
9666         (mono_generic_inst_is_valuetype): Renamed to
9667         mono_generic_class_is_valuetype().
9668
9669         * class-internals.h
9670         (MonoGenericInst): Renamed to MonoGenericClass.
9671         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
9672         (MonoClass): Renamed `generic_inst' to `generic_class'.
9673         (MonoGenericContext): Renamed `ginst' to `gclass'.
9674
9675         * object-internals.h
9676         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
9677
9678         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
9679         mono_reflection_generic_class_initialize().
9680
9681         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
9682         now known as "System.Reflection.MonoGenericClass".
9683         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
9684
9685 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
9686
9687         * class-internals.h: Added a flag field to MonoClass to cache the
9688         declarative security attributes actions associated with the class.
9689         * domain-internals.h: Added booleans to MonoJitInfo to cache the
9690         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
9691         applicable to the JITted method.
9692         * reflection.c|h: Added functions to extract (as flags) which security
9693         actions are available (declaratively) for a method, class or assembly.
9694         * metadata.c|h: Added functions to search the declarative security
9695         table in the metadata.
9696         
9697 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
9698
9699         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
9700         EXPORTEDTYPES are already in the class name cache, so there is no
9701         need to add extra code here to look at them. Just removes a bit of
9702         cruft.
9703
9704         (ves_icall_System_Environment_get_TickCount): No need for #if
9705         WINDOWS. We already have the code in io-layer.
9706
9707 2004-11-28  Martin Baulig  <martin@ximian.com>
9708
9709         * loader.c
9710         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
9711         Fixes gen-112.cs.
9712
9713 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
9714
9715         * assembly.c (do_mono_assembly_open): Instead of having a
9716         conditional WITH_BUNDLE, incorporate support for bundles here, by
9717         having a global `bundles' variable holding a pointer to the actual
9718         bundles. 
9719
9720         (mono_register_bundled_assemblies): New API call used by the
9721         bundle code. 
9722
9723         See mkbundle.1 for details.
9724         
9725 2004-11-27  Martin Baulig  <martin@ximian.com>
9726
9727         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
9728         the vtable for generic methods.
9729
9730 2004-11-26  Martin Baulig  <martin@ximian.com>
9731
9732         * metadata.c
9733         (mono_metadata_generic_method_hash): New public function.
9734         (mono_metadata_generic_method_equal): Likewise.
9735
9736         * class-internals.h
9737         (MonoGenericContainer): Added `GHashTable *method_hash'.
9738
9739         * reflection.c (ReflectionMethodBuilder): Added
9740         `MonoGenericContainer *generic_container'.
9741         (reflection_methodbuilder_to_mono_method): Don't create a new
9742         MonoGenericContainer each time we're called.
9743         (mono_reflection_bind_generic_method_parameters): Use
9744         `container->method_hash' to cache the results so we don't create a
9745         different method if we're called several times with the same
9746         arguments.
9747
9748         * loader.c (method_from_methodspec): Use the new
9749         `container->method_hash' here, too.
9750
9751 2004-11-26  Martin Baulig  <martin@ximian.com>
9752
9753         * class.c (inflate_generic_signature): Correctly compute
9754         `res->has_type_parameters'.
9755         (mono_class_vtable): Use the `has_type_parameters' flag to
9756         determine whether we're a generic method.
9757
9758         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
9759
9760 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
9761
9762         * object.c (mono_runtime_run_main): Fix a small memory leak.
9763
9764 2004-11-25  Martin Baulig  <martin@ximian.com>
9765
9766         * class.c (set_generic_param_owner): Fixed the loop.
9767
9768 2004-11-25  Martin Baulig  <martin@ximian.com>
9769
9770         * object.c (mono_class_vtable): Don't create any JIT wrappers for
9771         generic methods.
9772
9773 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
9774
9775         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
9776         names. Fixes #69787.
9777
9778 2004-11-24  Martin Baulig  <martin@ximian.com>
9779
9780         * class.c (mono_class_create_generic_2): If we don't have a
9781         `ginst->parent', inflate `gklass->parent' to get our parent.
9782
9783 2004-11-24  Martin Baulig  <martin@ximian.com>
9784
9785         * reflection.c (compare_genericparam): Correctly sort the
9786         GenericParam table; fixes #69779.
9787
9788 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
9789
9790         * reflection.c: When writing a PE file, don't create a huge
9791         buffer in memory. Just write the arrays we have to the file.
9792         This reduces memory usage.
9793
9794         * metadata-internals.h: MonoDynamicStream pefile is no longer used
9795         globally.
9796
9797 2004-11-17  Martin Baulig  <martin@ximian.com>
9798
9799         * class.c (mono_class_init): Don't setup `class->parent' for
9800         dynamic instances; moved this to mono_class_generic_2().
9801         (mono_class_create_generic): Also set `klass->inited' for dynamic
9802         generic instances.
9803         (mono_class_create_generic_2): Don't do anything for dynamic
9804         generic instances.  Set `klass->parent' here and also call
9805         mono_class_setup_parent() here. 
9806
9807         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
9808         `MonoType *parent' argument; set `ginst->parent' before calling
9809         mono_class_create_generic_2(), so we set the correct parent.
9810
9811 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
9812
9813         * reflection.c: allow getting attributes from ModuleBuilder
9814         (used by ikvm).
9815
9816 2004-11-17  Martin Baulig  <martin@ximian.com>
9817
9818         * class.c (mono_class_create_from_typedef): If a type parameter is
9819         inherited from an outer class, set its owner to that class.
9820
9821 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
9822
9823         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
9824           for (int*) written size. This fixes bug #69592.
9825
9826 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
9827
9828         * icall.c: Added IsAuthenticodePresnet internal call.
9829         * image.c|h: New function that check a MonoImage for an Authenticode
9830         signature in the certificate PE data directory.
9831         * security.c|h: New internal call to ask the runtime if an 
9832         Authenticode signature seems referenced in the PE header.
9833
9834 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
9835
9836         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
9837
9838         * reflection.c (mono_image_create_pefile): Free the assembly streams
9839         after writing out the assembly file.
9840
9841         * object.c (mono_runtime_run_main): Fix small memory leak.
9842
9843         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
9844         property access modifiers. Fixes #69389.
9845
9846 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
9847
9848         * domain.c, object.c, object-internals.h, domain-internals.h,
9849         object.h, marshal.c: keep dynamic code info per domain.
9850
9851 2004-11-15  Martin Baulig  <martin@ximian.com>
9852
9853         * class.c (mono_type_get_name_recurse): Put type arguments in
9854         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
9855         see bug #68387.
9856
9857 2004-11-15  Martin Baulig  <martin@ximian.com>
9858
9859         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
9860         (mono_class_setup_vtable): When computing `the_cname' for a
9861         generic instance, don't include the namespace since we'd otherwise
9862         add it twice.
9863
9864 2004-11-15  Martin Baulig  <martin@ximian.com>
9865
9866         * class.c (mono_class_create_generic): Changed return type to void.
9867         (mono_class_create_generic_2): New public function; setup
9868         `class->method', `class->field' and `class->interfaces' here
9869         instead of in mono_class_init().
9870
9871         * class.h (mono_class_create_generic): Moved to class-internals.h.
9872
9873 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
9874
9875         * reflection.c (mono_image_create_pefile): take a file HANDLE.
9876         rather than writing to memory, write to this file. Right now,
9877         we are just writting into a buffer, and copying that. However
9878         we can avoid the buffer later.
9879
9880         (mono_dynamic_stream_reset): new function
9881
9882         * icall.c, object-internals.h: update for the above.
9883
9884 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
9885
9886         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
9887         have been using gc'd memory. First it is slower, unlikely
9888         the comment in the source code said, secondly, it increases
9889         our footprint to do it in the gc.
9890
9891         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
9892         the method so that it does not have to copy to managed code.
9893
9894 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
9895
9896         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
9897
9898 2004-11-12  Martin Baulig  <martin@localhost>
9899
9900         * reflection.c (mono_image_create_token): Allow generic method
9901         definitions here, since they may appear in an `.override'; see
9902         gen-98/gen-99 for an example.
9903
9904 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
9905
9906         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
9907         #69365.
9908
9909         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
9910         descriptive.
9911
9912 2004-11-11  Martin Baulig  <martin@ximian.com>
9913
9914         * class.c (mono_class_setup_vtable): In an explicit interface
9915         implementation, the method name now includes the arity.
9916
9917 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
9918
9919         * object.c (mono_array_full_copy): Fix warning.
9920
9921 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
9922
9923         * appdomain.c: Removed look_for_method_by_name(). Use the new method
9924         mono_class_get_method_from_name() instead.
9925         
9926         * class-internals.h: Added two new types of wrappers. 
9927         Added MonoRemotingTarget enum. Added new trampoline function type, which
9928         takes an additional MonoRemotingTarget value as parameter, so it is
9929         possible to request a trampoline for a specific target.
9930         
9931         * class.c: Added new mono_class_get_method_from_name() method.
9932         
9933         * class.h: In MonoRemoteClass, we can have now to vtables, one for
9934         general remoting sinks and one specific for cross domain calls.
9935         
9936         * debug-helpers.c: Added new wrapper names.
9937         
9938         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
9939         of a remote class.
9940         
9941         * image.c: Porperly delete value objects form the remoting invoke hashtable.
9942         
9943         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
9944         with several other methods (mono_marshal_get_xappdomain_dispatch,
9945         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
9946         and others) can generate a fast remoting wrapper for cross domain calls.
9947         More information can be found in docs/remoting.
9948         Other changes: Removed mono_find_method_by_name, and used
9949         mono_class_get_method_from_name instead.
9950         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
9951         is stored in the remoting invoke hashtable.
9952         
9953         * marshal.h: published the new method for getting the xdomain wrapper,
9954         and also added a method for getting the adequate wrapper for a given
9955         method and target.
9956         
9957         * object-internals.h, object.c: Added a couple of methods for capying and
9958         cloning arrays.
9959         Modified mono_install_remoting_trampoline, which takes the new remoting
9960         trampoline that has a remoting target as parameter.
9961         mono_class_proxy_vtable now also takes a remoting target as parameter, and
9962         will return the most suitable vtable for the target.
9963         Added mono_remote_class_vtable, which returns the vtable of a remote class
9964         (which can be the normal remoting vtable or the xdomain vtable).
9965         
9966         * threads.c: the xdomain invoke and dispatch wrappers must also be
9967         protected against interruptions.
9968
9969 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9970
9971         * icall.c: use memmove in BlockCopyInternal when the source and
9972         destination arrays are the same.
9973
9974 2004-11-09  Martin Baulig  <martin@ximian.com>
9975
9976         * class-internals.h (MonoGenericContainer): Removed `method' and
9977         `signature', replaced them with `is_method' and `is_signature'
9978         flags.  Added `context'.
9979
9980         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
9981         instead of a `MonoGenericContainer *'.
9982
9983         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
9984         for dynamic type parameters.
9985         (mono_metadata_load_generic_params): Setup `container->context'.
9986
9987         * reflection.c (mono_reflection_setup_generic_class): Setup
9988         `tb->generic_container->context'.
9989         (do_mono_reflection_bind_generic_parameters): Use
9990         mono_class_inflate_generic_type() to correctly inflate types,
9991         rather than using our own hack just for MONO_TYPE_VAR.
9992
9993 2004-11-09  Martin Baulig  <martin@ximian.com>
9994
9995         * class.c (mono_class_inflate_generic_method): Small fix; don't
9996         crash here.
9997
9998         * icall.c
9999         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
10000         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
10001         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
10002         (ves_icall_Type_BindGenericParameters): Likewise.
10003         (ves_icall_Type_get_IsGenericInstance): Likewise.
10004         (ves_icall_Type_GetGenericParameterPosition): Likewise.
10005         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
10006         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
10007         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10008
10009 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
10010
10011         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
10012         assembly versions and public key tokens. Fixes #69113.
10013
10014 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
10015
10016         * metadata.c: fix bug introduced with the type cache changes
10017         on 2004-11-06.
10018
10019 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
10020
10021         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
10022         the MonoClass pointer instead of the token in exception clauses.
10023         * reflection.c: updates for the above and make the code not depend
10024         on the structure of MonoExceptionClause.
10025
10026 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
10027
10028         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10029         Add support for dynamic assemblies. Fixes #69114.
10030
10031         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
10032
10033 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
10034
10035         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
10036         since most only those methods use it. the code member of
10037         MonoMethodPInvoke was dead, so that can be removed too. Also,
10038         remove inline_count (again, not used), and move slot so that it
10039         can share bits with some other flags. This saves 8 bytes in the
10040         structure and gives us about 50 kb back for mcs helloworld.cs
10041
10042         * *.[ch]: Do naming changes for the above.
10043
10044         * loader.c (mono_method_get_header): Lazily init the header
10045         on first access.
10046         (mono_get_method_from_token): don't init the header here
10047         (mono_free_method): the header may never be allocated
10048
10049         Overall, this saves 150 kb of unmanaged allocations
10050         for mcs helloworld.cs. That accounts for 10% of the unmanaged
10051         memory at runtime.
10052         
10053         * loader.c, loader.h (mono_method_get_header): new accessor.
10054
10055         * *.[ch]: use the above method. Prepares us to lazily load
10056         the header.
10057
10058         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
10059         three warnings, which are actual bugs (see 69206).
10060
10061         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
10062         unused. Saves a cool 4 bytes / method.
10063
10064 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
10065
10066         * metadata.c (builtin_types): Add types for System.Object here.
10067         (mono_metadata_parse_type_full): Cache MonoType*'s that are
10068         for a class or valuetype from klass->this_arg or klass->byval_arg.
10069
10070         On mcs for a hello world, this gets us down from 21836 MonoType's
10071         to 14560.
10072
10073         (mono_metadata_free_type): Account for the above change.
10074
10075 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
10076
10077         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
10078         exception instead of asserting if name is null.
10079         (ves_icall_System_AppDomain_GetData): Ditto.
10080
10081 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
10082
10083         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
10084         EnumBuilder.
10085
10086         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
10087         Return NULL when the domain does not have entry_assembly set.
10088
10089         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
10090         Add a 'resource_modules' argument.
10091         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
10092
10093         * reflection.c (mono_reflection_create_runtime_class): Move setting
10094         of wastypebuilder here, so mono_get_type_object () returns a MonoType
10095         for enums too.
10096
10097         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
10098         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
10099         Throw an ArgumentNullException if 'ptr' is null.
10100
10101         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
10102         assemblies here. Fixes #69020.
10103
10104 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
10105
10106         * reflection.c (build_compressed_metadata): Fix the previous patch for
10107         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
10108         the stack.
10109
10110 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
10111
10112         * assembly.c (mono_assembly_names_equal): Allow a match if one of
10113         the cultures is false. Fixes #69090.
10114
10115         * reflection.c (build_compressed_metadata): Fix invalid memory read 
10116         detected by valgrind.
10117         
10118         * reflection.c (mono_reflection_get_type): Avoid triggering a 
10119         TypeResolve multiple times for the same type. Fixes #65577.
10120
10121 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
10122
10123         * marshal.c: Avoid using ldftn to call managed functions. It is
10124         much slower than just a call.
10125
10126         * reflection.c (mono_module_get_object): free the basename we
10127         allocate here from glib.
10128         
10129         * reflection.c (ensure_runtime_vtable): make sure to free
10130         overrides.  Also, we were allocating an array of MonoMethod not an
10131         array of MonoMethod*.
10132
10133         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
10134
10135         * image.c (mono_image_close): free image->guid here.
10136
10137 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
10138
10139         * reflection.c: Fix some spec conformance issues with the PE file
10140         structures so mcs compiled apps run on the Net 2.0 beta.
10141
10142 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
10143
10144         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
10145         Implement this. Fixes #67264.
10146
10147         * debug-helpers.h debug-helpers.c marshal.c: Move 
10148         mono_find_method_by_name to debug-helpers.c.
10149
10150 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
10151
10152         * object.c (mono_release_type_locks): type_initialization_hash is
10153         a GHashTable.
10154
10155         * reflection.c object.c object-internals.h: Fix warnings.
10156
10157         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
10158         without accessors. Fixes #61561.
10159
10160         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
10161         application base from the root domain if not set. Fixes #65641.
10162         (mono_runtime_init): Fix warning.
10163
10164 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10165
10166         * appdomain.c: call mono_thread_pool_init.
10167         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
10168         of worker threads based on the number of CPUs and the environment
10169         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
10170         for non-windows (windows) systems.
10171
10172 2004-10-27  Chris Toshok  <toshok@ximian.com>
10173
10174         * mono-debug-debugger.c (write_class): don't call mono_class_init
10175         here, as even with the check for (!klass->init_pending), we get
10176         into a situation where we're hitting cycles in class
10177         initialization.  Fixes #68816.
10178
10179 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
10180
10181         * image.c: Avoid overwriting values in the loaded_images_hash when an
10182         assembly is loaded multiple times. Fixes #61152.
10183
10184         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
10185         so multiple satellite assemblies for the same name can be loaded.
10186         Fixes #68259.
10187
10188         * mono_domain_assembly_preload: Actually return the loaded assembly, 
10189         not NULL.
10190
10191         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
10192         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
10193
10194         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
10195         pending finalizers are not invoked after the appdomain has been 
10196         unloaded. Fixes #67862.
10197
10198 2004-10-22  Martin Baulig  <martin@ximian.com>
10199
10200         * mono-debug-debugger.c
10201         (mono_debugger_runtime_invoke): Don't box valuetypes.
10202
10203 2004-10-22  Chris Toshok  <toshok@ximian.com>
10204
10205         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
10206         don't hide private methods.
10207
10208 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
10209
10210         * icall.c: Allows the runtime to "share" (when known) the public key
10211         token of an assembly. This avoid the need to recalculate the token 
10212         (from the public key) in managed code.
10213
10214 2004-10-21  Chris Toshok  <toshok@ximian.com>
10215
10216         * debug-helpers.c (append_class_name): argh, revert last patch.
10217         
10218 2004-10-21  Chris Toshok  <toshok@ximian.com>
10219
10220         * debug-helpers.c (append_class_name): use '+' as the delimiter,
10221         not '/', so that it matches what the debugger uses to look up
10222         methods.
10223
10224 2004-10-21  Martin Baulig  <martin@ximian.com>
10225
10226         * mono-debug-debugger.c (mono_debugger_throw_exception): New
10227         public method; this is called each time an exception is thrown and
10228         allows the debugger to use exception catch points.
10229
10230 2004-10-21  Martin Baulig  <martin@ximian.com>
10231
10232         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
10233         the stack pointer and the exception object in some struct and pass
10234         that to the debugger.
10235
10236 2004-10-21  Chris Toshok  <toshok@ximian.com>
10237
10238         * mono-debug-debugger.c (do_write_class): add instance/static
10239         event support.  We don't expose "raise" or "other" yet.
10240         (event_is_static): new method.
10241
10242 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
10243
10244         * mono-debug-debugger.c
10245         (mono_debugger_handle_exception): Remove
10246         bogus return value for fussy compilers.
10247
10248 2004-10-20  Martin Baulig  <martin@ximian.com>
10249
10250         * mono-debug-debugger.c
10251         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
10252         (mono_debugger_handled_exception): Likewise.
10253
10254 2004-10-20  Martin Baulig  <martin@ximian.com>
10255
10256         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10257         MONO_DEBUGGER_EVENT_EXCEPTION.
10258
10259         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10260         public function to send the debugger a notification for an
10261         exception and inform it about a catch/finally clause.
10262
10263 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10264
10265         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10266         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10267         fix 2.95 build. 
10268
10269         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10270
10271 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10272
10273         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10274         marshalled as [In,Out]. Fixes #58325.
10275
10276 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10277
10278         * reflection.c (mono_method_body_get_object): Implement some fields.
10279
10280 2004-10-12  Martin Baulig  <martin@ximian.com>
10281
10282         * reflection.c (mono_reflection_bind_generic_parameters): Small
10283         fix, correctly retrieve our parent from a generic instance.
10284
10285 2004-10-12  Martin Baulig  <martin@ximian.com>
10286
10287         * metadata.c (mono_metadata_generic_param_equal): We always have
10288         an owner.
10289
10290         * class.c
10291         (mono_class_from_generic_parameter): We need to have an owner.
10292         (my_mono_class_from_generic_parameter): Likewise.
10293
10294         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10295         mono_reflection_create_generic_class() and added a new
10296         mono_reflection_setup_generic_class().  
10297         (mono_reflection_initialize_generic_param): If we're a nested
10298         generic type and inherited from the containing class, set our
10299         owner to the outer class.
10300
10301 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10302
10303         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10304
10305         * reflection.c (mono_method_body_get_object): New function to create
10306         a MethodBody object.
10307
10308         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10309
10310 2004-10-11  Martin Baulig  <martin@ximian.com>
10311
10312         * metadata.c (_mono_metadata_type_equal): Renamed to
10313         do_mono_metadata_type_equal() and made static.
10314
10315 2004-10-11  Martin Baulig  <martin@ximian.com>
10316
10317         * appdomain.c: Bump corlib version number to 28.
10318
10319 2004-10-10  Martin Baulig  <martin@ximian.com>
10320
10321         * class-internals.h
10322         (MonoGenericInst): Added `MonoGenericContainer *container'.
10323         (MonoGenericMethod): Likewise.
10324         (MonoGenericContext): Likewise.
10325         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10326
10327         * metadata.c
10328         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10329         (do_mono_metadata_parse_generic_inst): Likewise.
10330         (mono_metadata_parse_type_full): New public method.  This is the actual
10331         mono_metadata_parse_type() implementation - with an additional
10332         `MonoGenericContainer *' argument.
10333         (mono_metadata_parse_array_full): Likewise.
10334         (mono_metadata_parse_signature_full): Likewise.
10335         (mono_metadata_parse_method_signature_full): Likewise.
10336         (mono_metadata_parse_mh_full): Likewise.
10337         (mono_type_create_from_typespec): Likewise.
10338         (mono_metadata_interfaces_from_typedef_full): New public method;
10339         this is similar to the other _full() methods, but we take a
10340         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10341         (mono_metadata_parse_generic_param): Take an additional
10342         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10343         from that container.
10344         (mono_metadata_generic_param_equal): New static method to compare
10345         two type parameters.
10346         (_mono_metadata_type_equal): New static method; takes an
10347         additional `gboolean signature_only' argument - if true, we don't
10348         compare the owners of generic parameters.
10349         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10350         with a TRUE argument - do a signature-only comparision.
10351
10352         * loader.c: Use the new _full() methods and pass the
10353         MonoGenericContainer to them.
10354
10355         * object-internals.h (MonoReflectionTypeBuilder): Added
10356         `MonoGenericContainer *generic_container' field.
10357         (MonoReflectionMethodBuilder): Likewise.
10358
10359 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10360
10361         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10362         case initial images of dynamic assemblies.
10363
10364         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10365
10366         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10367
10368         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10369         length of event->other array.
10370         (typebuilder_setup_events): Ditto.
10371
10372         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10373         'assembly_by_name' and add an 'assemblies' list.
10374
10375         * assembly.h assembly.c: Add a new search hook for determining whenever
10376         an assembly is already loaded. Use this instead of searching in the
10377         loaded_assemblies list.
10378
10379         * domain.c appdomain.c: Implement the new search hook so loaded 
10380         assemblies are now scoped by appdomain. Fixes #67727.
10381
10382 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10383
10384         * threads.c (mono_thread_attach): Initialize synch_lock field so
10385         mono_thread_detach works again.
10386
10387         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
10388         'lib' too. Fixes #63130.
10389
10390 2004-10-06  Jackson Harper  <jackson@ximian.com>
10391
10392         * culture-info-tables.h: regenerated.
10393
10394 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
10395
10396         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10397         implemented by other interfaces in the result. Fixes #65764.
10398         
10399         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10400         Handle unloadable modules without crashing.
10401
10402         * image.c (load_modules): Revert the previous patch since modules must
10403         have a fixed index inside the array.
10404         
10405         * image.c (load_modules): Don't include native modules in the modules
10406         array.
10407
10408 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10409
10410         * reflection.h: Add param_defaults field.
10411
10412         * reflection.c: Add support for parameter defaults in dynamic methods.
10413         Fixes #64595.
10414
10415         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10416         an empty string when a type has no namespace. Fixes #64230.
10417
10418 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10419
10420         * tabledefs.h: Added "internal" security actions to support non-CAS
10421         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10422         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10423
10424 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10425
10426         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10427         constructor of abstract class. Fixes #61689.
10428
10429 2004-10-04  Martin Baulig  <martin@ximian.com>
10430
10431         * class-internals.h (MonoGenericContainer): New type.
10432         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10433         `MonoGenericContainer *generic_container'.
10434         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10435         `MonoGenericContainer *generic_container'.
10436
10437         * metadata.c (mono_metadata_load_generic_params): Return a
10438         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10439         removed the `num' argument.
10440
10441 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10442
10443         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10444         for dynamic images.
10445
10446         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10447         machine fields.
10448
10449         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10450
10451         * reflection.c: Save pe_kind and machine values into the generated
10452         image file.
10453
10454         * appdomain.c: Bump corlib version number.
10455
10456         * object-internals.h: Reorganize layout of LocalBuilder.
10457
10458         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10459         New helper function.
10460
10461         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10462         created MonoType for dynamic types. Fixes #66180.
10463
10464 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10465
10466         * threadpool.c: the ares hashtable needs a critical section around it.
10467         this prevents some nasty segfaults
10468
10469 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10470
10471         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10472         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10473         bug 67324).
10474         
10475 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10476
10477         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10478         
10479 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10480
10481         * image.c: Always canonicalize image file names, to avoid loading
10482         the same assembly twice when referenced using a relative path.
10483
10484 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10485
10486         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10487
10488         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10489
10490         * marshal.c: Fix warnings.
10491
10492 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
10493
10494         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
10495         attempting to marshal the delegate_trampoline as the method_addr.
10496         This patch has a static hashtable of marshalled delegates so that 
10497         we can map delegate_trampoline addresses back to delegates.  This
10498         allows a delegate passed to managed code to be passed back into native
10499         code.  Fixes #67039
10500
10501 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10502
10503         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
10504
10505         * reflection.c (method_encode_code): Align method headers properly.
10506         Fixes #66025.
10507
10508 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10509
10510         * marshal.c: In the runtime invoke wrapper, reset the abort
10511         exception if it is cached. This avoids the automatic rethrowal of 
10512         the exception after the catch of the wrapper. Also check for pending
10513         interruptions before calling the managed method. This is done using
10514         the new method emit_thread_force_interrupt_checkpoint, since the
10515         normal checkpoint method is ignored when running the invoke wrapper.
10516         * object.c: If the abort exception is rethrown, set the abort_exc
10517         field of the thread, so it will be rethrown aftere every catch.
10518         * threadpool.c: Only run an interruption checkpoint if what has been
10519         requested is a stop of the thread (aborts will be ignored).
10520         * threads.c: By default, a thread will now never be interrumped while
10521         running the runtime invoke wrapper (this ensures that runtime_invoke
10522         will always return to the caller if an exception pointer is provided).
10523         There is a new special method mono_thread_force_interruption_checkpoint()
10524         to force an interruption checkpoint even if running a protected
10525         wrapper, which is used by the same runtime invoke wrapper to do a check
10526         at a safe point.
10527
10528 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10529
10530         * object.c, object-internals.h: Implemented mono_release_type_locks,
10531         which releases the cctor locks held by a thread.
10532         * threads.c, threads.h: In thread_cleanup, release cctor locks held
10533         by a thread. Added mono_thread_exit() method to be used to safely stop
10534         a thread.
10535
10536 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10537
10538         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10539         Move null check before dereference.  Avoid indexing beyond the end
10540         of the 'modules' array.
10541
10542 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10543
10544         * metadata-internals.h (MonoImage): Add module_count field.
10545         * image.c (load_modules): Set image->module_count.
10546         (mono_image_load_file_for_image): Use image->module_count.
10547         * reflection.c (mono_image_load_module): Append to image->modules array 
10548         of dynamic assembly.
10549         (mono_module_get_object): Fix loop to actually increment index.
10550         Use image->module_count.
10551         * assembly.c (mono_assembly_load_references): Use image->module_count.
10552         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
10553         Likewise.
10554
10555 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10556
10557         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
10558         Avoid assert on generic types.
10559
10560 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
10561
10562         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
10563
10564         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
10565
10566         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
10567         function to convert a MarshalSpec structure to its managed counterpart.
10568
10569         * reflection.c: Fix warnings.
10570         
10571         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
10572         field.
10573
10574         * icall.c (mono_create_icall_signature): Fix build.
10575
10576 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
10577
10578         * icall.c: Add MakePointType icall.
10579
10580         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
10581         warnings.
10582
10583 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10584
10585         * threadpool.c: reuse allocated slots in the queue.
10586
10587 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
10588
10589         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
10590
10591         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
10592
10593         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
10594         previous change.
10595
10596         * tabledefs.h: Add constants for pinvoke attributes BestFit and
10597         ThrowOnUnmappableChar.
10598
10599         * icall.c (ves_icall_Type_GetPacking): New icall.
10600
10601 2004-09-24  Martin Baulig  <martin@ximian.com>
10602
10603         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
10604
10605 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10606
10607         * appdomain.c:
10608         (mono_domain_set): allow setting a domain that is being unloaded.
10609         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
10610         being unloaded.
10611
10612 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10613
10614         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
10615         the GetCustomAttributes icall.
10616
10617 2004-09-23  Martin Baulig  <martin@ximian.com>
10618
10619         * object-internals.h (MonoReflectionGenericParam): Replaced
10620         'has_ctor_constraint', `has_reference_type' and `has_value_type'
10621         with `guint32 attrs'.
10622
10623 2004-09-23  Martin Baulig  <martin@ximian.com>
10624
10625         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
10626
10627 2004-09-23  Martin Baulig  <martin@ximian.com>
10628
10629         * object-internals.h (GenericParameterAttributes): New enum.
10630
10631 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10632
10633         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
10634         
10635         * class.c (init_events): Fill out event->other field.
10636
10637         * class.c: Fix warnings.
10638
10639         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
10640
10641 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
10642
10643         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
10644         walk which doesn't supply the IL offset.
10645
10646 2004-09-22  Martin Baulig  <martin@ximian.com>
10647
10648         * reflection.c (mono_reflection_setup_internal_class): If we're
10649         System.ValueType, System.Object or System.Enum, set
10650         `klass->instance_size' and create the vtable.
10651         (mono_reflection_create_internal_class): If we're an enum type,
10652         get the base class from our current corlib.
10653
10654 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
10655
10656         * reflection.h (MonoResolveTokenError): New type.
10657
10658         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
10659         icall.
10660
10661         * icall.c: Add an 'error' argument to the ResolveToken icalls.
10662
10663 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
10664
10665         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
10666         Support also calling constructors, but only for already allocated objects.
10667
10668 2004-09-17  Geoff Norton <gnorton@customerdna.com>
10669
10670         * reflection.c (type_get_qualified_name): If the klass is null
10671         return the typename to avoid a NullRefEx.
10672         (encode_cattr_value): Get the qualified name of the boxed type,
10673         not the underlying enumtype.  Fixes #62984.
10674
10675 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
10676
10677         * marshal.c: Fix problems with previous checkin.
10678
10679 2004-09-21    <vargaz@freemail.hu>
10680
10681         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
10682         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
10683
10684         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
10685
10686 2004-09-21  Geoff Norton <gnorton@customerdna.com>
10687
10688         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
10689         should only return a type for pointers, arrays, and passbyref types.
10690         Fixes bug #63841.
10691
10692 2004-09-21  Martin Baulig  <martin@ximian.com>
10693
10694         * domain.c (mono_debugger_check_runtime_version): New public
10695         function.
10696
10697         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
10698
10699 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
10700
10701         * reflection.c: Added missing sort to the declarative security 
10702         attributes table. MS implementation stops seeing the attributes if the
10703         token number regress in the table (as shown by ildasm and permview).
10704
10705 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
10706
10707         * object-internals.h (MonoReflectionModule): Add 'token' field.
10708         
10709         * reflection.c (mono_reflection_get_token): Add support for Module
10710         and Assembly.
10711         (mono_module_get_object): Set 'token' field.
10712         (mono_module_file_get_object): Set 'token' field.
10713
10714         * icall.c: Add new Assembly and Module icalls.
10715
10716         * appdomain.c: Bump corlib version.
10717
10718 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
10719
10720         * loader.h loader.c class.h class.c: Add helper functions for obtaining
10721         tokens of metadata objects.
10722
10723         * reflection.h reflection.c (mono_reflection_get_token): New function
10724         to obtain the token of a metadata object.
10725
10726         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
10727
10728 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
10729
10730         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
10731         
10732         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
10733
10734 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
10735
10736         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
10737         * object-internals.h: Added 3 MonoArray* members to MonoReflection
10738         AssemblyBuilder to access the permissions set in the class lib.
10739         * reflection.c: Added security attributes encoding step in 
10740         mono_image_build_metadata.
10741         * tabledefs.h: Added new security actions defined in 2.0:
10742         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
10743
10744 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10745
10746         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
10747         macro parameter.
10748
10749 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10750  
10751         * locales.c: nullify the ICU_collator member of CompareInfo when it is
10752           finalized. There where random SIGSEVs at program termination, when
10753           an object being finalized was trying to do a string comparison and
10754           the current culture was already finalized.
10755  
10756 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10757
10758         * threads.c: call thread_cleanup before finishing the thread if we get
10759         there.
10760
10761 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
10762
10763         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
10764         assemblies from the parent. Fixes #65665.
10765
10766 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
10767
10768         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
10769         modifiers.
10770
10771 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
10772
10773         * reflection.h: add prototype for mono_get_dbnull_object
10774         * reflection.c: add prototypes for get_default_param_value_blobs 
10775         and mono_get_object_from_blob for fussier compilers
10776
10777 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
10778  
10779         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
10780         false deadlock checks in class initialization.
10781  
10782 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
10783
10784         * image.c (mono_image_addref): Fix comment.
10785
10786         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
10787         possible.
10788
10789 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
10790
10791         * reflection.c (mono_param_get_objects): Modified to return
10792         ParameterInfo.DefaultValue object.
10793
10794         (get_default_param_value_blobs):
10795         (mono_get_object_from_blob):
10796         (mono_get_dbnull_object): New helper routines. 
10797
10798         * object.c (mono_get_constant_value_from_blob): New helper routine
10799         carved out from get_default_field_value ()
10800
10801         * object-internals.h (mono_get_constant_value_from_blob): Added
10802         function declaration.
10803
10804 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
10805
10806         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
10807         referenced assemblies. Fixes #62135.
10808
10809         * exception.h exception.c (mono_get_exception_file_not_found2): New
10810         helper function.
10811
10812 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
10813
10814         * class.h class.c: Add mono_type_get_underlying_type ().
10815
10816 2004-09-09  Geoff Norton <gnorton@customerndna.com>
10817
10818         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
10819         Fix GetTypes() to support dynamically created assemblies.
10820
10821 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
10822
10823         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
10824         
10825         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
10826         previous patch.
10827
10828         * reflection.h reflection.c loader.c: Allow dynamic construction of
10829         pinvoke methods. Fixes #65571.
10830         
10831         * reflection.c (mono_reflection_get_type): Revert previous change since
10832         it causes regressions.
10833
10834 2004-09-08  Martin Baulig  <martin@ximian.com>
10835
10836         * class.c (class_compute_field_layout): Don't call
10837         mono_class_layout_fields() for open generic instances.
10838
10839 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
10840         * threads.c appdomain.c: fix typo in GC macro
10841
10842 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10843
10844         * threads.c: don't call mono_thread_detach() in start_wrapper(),
10845         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
10846
10847 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
10848
10849         * image.c (mono_image_close): Applied patch from 
10850         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
10851         assembly is loaded multiple times from data.
10852         
10853         * image.c (mono_image_open): Fix warning.
10854
10855 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10856
10857         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
10858         once. Fixes #58334.
10859         
10860         * reflection.c (mono_reflection_create_runtime_class): Initialize
10861         klass->nested_classes. Fixes #61224.
10862
10863 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
10864
10865         * threads.c: sched_yield() on exit, to allow threads to quit.
10866
10867 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10868
10869         * object.c (mono_unhandled_exception): Remove leftover debug code.
10870
10871 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
10872
10873         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
10874
10875 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10876
10877         * marshal.c (emit_marshal_array): Really null terminate string arrays.
10878         
10879         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
10880
10881 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10882
10883         * marshal.c (emit_marshal_array): Null terminate string arrays.
10884         
10885         * marshal.c (raise_auto_layout_exception): Fix warning.
10886
10887         * reflection.c (mono_param_get_objects): Initialize the default value
10888         with DBNull.Value, not null. Fixes #62123.
10889
10890 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
10891
10892         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
10893         throw an exception with a cute explanation.
10894
10895 2004-09-06  Dick Porter  <dick@ximian.com>
10896
10897         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
10898         Close the new process's thread handle, as we don't use it.  The
10899         handle stays around forever otherwise.
10900
10901 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10902
10903         * object.c (arith_overflow): Fix warning.
10904
10905         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
10906         calling conventions in method refs. Fixes #65352.
10907
10908         * reflection.c: Fix warnings.
10909
10910 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
10911
10912         * icall.c: Add a new icall for Array.Clear
10913
10914 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
10915
10916         * object.c: When allocating an array, we have to throw
10917         an overflow exception if any of the lengths are < 0.
10918
10919 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10920
10921         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
10922         properly. Also move implementation of string array marshalling to 
10923         managed code. Fixes #42316.
10924
10925 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10926
10927         * assembly.c: provide more information when loading an assembly fails.
10928
10929 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10930
10931         * filewatcher.c: don't expect the development fam package to be
10932         installed.
10933
10934 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
10935
10936         * marshal.c: Make a copy of the signature cookie since it will be
10937         freed by the caller.
10938         
10939         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
10940
10941         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
10942
10943         * metadata.c (mono_metadata_free_marshal_spec): New function to free
10944         marshal specs.
10945
10946         * marshal.c: More refactoring.
10947         
10948         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
10949         smaller functions.
10950
10951 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
10952
10953         * object.c: In mono_message_invoke, fill the output parameter array after
10954           calling the managed method (it was done before the call). This fixes
10955           bug #59299.
10956
10957 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
10958
10959         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
10960         as well.
10961
10962 2004-09-02  Martin Baulig  <martin@ximian.com>
10963
10964         * class.c (mono_class_instance_size): Don't allow generic type
10965         definitions or open generic instances.
10966         (mono_class_array_element_size): If we're a value type, call
10967         mono_class_instance_size() on the original class.
10968
10969         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
10970         handle generic instances.
10971
10972         * mono-debug-debugger.c (write_type): Handle generic instances
10973         like classes.
10974
10975 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
10976
10977         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
10978         the allocation request fails. Fixes #65089.
10979
10980         * object.c (mono_runtime_free_method): Do not call mono_free_method.
10981         
10982         * object.c (mono_runtime_free_method): New function to free a dynamic
10983         method.
10984
10985         * marshal.c (mono_delegate_free_ftnptr): New function to free the
10986         delegate trampoline.
10987
10988         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
10989         with hasthis as dynamic,
10990
10991         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
10992
10993         * domain.c (mono_jit_info_table_remove): New function to remove an
10994         entry from the jit info table.
10995
10996         * class-internals.h (MonoMethod): Add 'dynamic' field.
10997
10998         * loader.c: Fix warnings.
10999
11000 2004-09-01  Martin Baulig  <martin@ximian.com>
11001
11002         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
11003         instead of mono_debugger_lock() because the latter one is a no-op
11004         unless running in the debugger.
11005
11006 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11007
11008         * class.c (class_compute_field_layout): Classes with auto-layout or
11009         reference fields are not blittable.
11010         
11011 2004-09-01  Dick Porter  <dick@ximian.com>
11012
11013         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
11014         mono_image_get_filename() to get the assembly location.
11015
11016         * icall.c:
11017         * metadata.h: Fix compile warnings
11018
11019 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11020
11021         * class.c (class_compute_field_layout): System.Object is blittable.
11022
11023         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
11024         as in/out. Fixes #59909.
11025
11026 2004-09-01  Martin Baulig  <martin@ximian.com>
11027
11028         * metadata.h (MONO_TYPE_ISREFERENCE): Call
11029         mono_metadata_generic_inst_is_valuetype() if we're a generic
11030         instance to check whether our underlying type is a reference type.
11031
11032 2004-09-01  Martin Baulig  <martin@ximian.com>
11033
11034         * metadata.c (mono_type_size): If we're a generic instance, call
11035         mono_class_value_size() for value types.
11036
11037 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
11038
11039         * marshal.c: Implement more custom marshalling functionality. Fixes
11040         #64915.
11041
11042 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11043
11044         * mono-debug.c, debug-mono-symfile.c: add some locking love.
11045
11046 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
11047
11048         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
11049
11050         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
11051
11052         * icall.c: Fix some warnings.
11053
11054         * threads.c (abort_appdomain_thread): Fix unref errors.
11055         (mono_thread_current): Fix THREAD_DEBUG define.
11056
11057 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
11058
11059         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
11060
11061         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
11062
11063 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
11064
11065         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
11066         string arrays.
11067
11068 2004-08-28  Martin Baulig  <martin@ximian.com>
11069
11070         * metadata.c
11071         (mono_metadata_generic_inst_is_valuetype): New public function.
11072
11073         * metadata.h (MONO_TYPE_ISSTRUCT): Call
11074         mono_metadata_generic_inst_is_valuetype() if we're a generic
11075         instance to check whether our underlying type is a valuetype.
11076
11077 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
11078
11079         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
11080         #63768.
11081
11082 2004-08-25  Martin Baulig  <martin@ximian.com>
11083
11084         * loader.c (mono_get_method_from_token): Abstract methods can also
11085         be generic and thus have type parameters.
11086
11087         * metadata-internals.h
11088         (MonoDynamicImage): Added `GPtrArray *gen_params'.
11089
11090         * reflection.c (mono_image_get_generic_param_info): Don't create a
11091         metadata row, just add an entry to the `gen_params' array.
11092         (build_compressed_metadata): Sort the `gen_params' array and then
11093         actually create the metadata.
11094
11095 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11096
11097         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
11098
11099 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
11100
11101         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
11102
11103 2004-08-24  Martin Baulig  <martin@ximian.com>
11104
11105         * class.cs (mono_class_is_subclass_of): Like an interface, a
11106         generic instance also derives from System.Object.
11107
11108 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
11109
11110         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
11111         custom modifiers to be in any order. Fixes #61990.
11112
11113 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
11114
11115         * object.c: Register mono_object_new_fast icall.
11116         
11117         * object.c (mono_class_get_allocation_ftn): Return to calling
11118         mono_object_new_fast, since it seems faster to compute the object 
11119         size in unmanaged code than passing it as a parameter.
11120
11121         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
11122
11123         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
11124         this function with Boehm as the oom handler, so we don't have to check
11125         the result of GC_malloc.
11126
11127         * object.c: Remove checks for oom.
11128
11129         * object.h object.c (mono_class_get_allocation_ftn): New function to
11130         return the icall which can be used to allocate an instance of a given
11131         class. 
11132
11133         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
11134
11135         * class-internals.h: Add 'enabled' field.
11136
11137 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
11138
11139         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
11140
11141 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
11142         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
11143         value 0x0010.
11144
11145 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
11146
11147         * appdomain.c: use the Tls function for appdomain too,
11148         at Zoltan's request. Actually return in mono_context_get
11149
11150         * appdomain.c, profiler.c, threads.c: use __thread
11151
11152 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
11153
11154         * appdomain.c threads.c: Call GC_CreateThread on windows.
11155
11156         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
11157         multiple libraries since this don't work on windows.
11158
11159 2004-08-18  Martin Baulig  <martin@ximian.com>
11160
11161         * class-internals.h
11162         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
11163         MonoMethodHeader.
11164
11165         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
11166         MonoMethodNormal since we also need it for abstract and interface
11167         methods.
11168
11169         * reflection.c
11170         (build_compressed_metadata): Sort the GenericParam table.
11171         (mono_image_create_token): Added `gboolean create_methodspec'
11172         argument; this is false when generating a MethodImpl token.
11173         (reflection_methodbuilder_to_mono_method): Abstract and interface
11174         methods may also have generic parameters.
11175
11176 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
11177
11178         * appdomain.c: thread local alloc
11179
11180 2004-08-17  Martin Baulig  <martin@ximian.com>
11181
11182         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
11183
11184         * icall.c
11185         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
11186         argument.
11187
11188         * class.c (mono_type_get_full_name): New public function.
11189         (mono_type_get_name): Don't include the type arguments.
11190
11191 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
11192
11193         * Makefile.am: Build static versions of libmetadata and libmonoruntime
11194         for inclusion into the mono executable.
11195
11196 2004-08-16  Martin Baulig  <martin@ximian.com>
11197
11198         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
11199         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
11200
11201 2004-08-14  Martin Baulig  <martin@ximian.com>
11202
11203         * class.c (dup_type): Also copy the `byref' field.
11204
11205 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
11206
11207         * reflection.c (create_dynamic_mono_image): Revert the last change 
11208         since it breaks bootstrap.
11209
11210 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
11211
11212         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
11213
11214         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
11215         not free them with g_free.
11216
11217 2004-08-11  Martin Baulig  <martin@ximian.com>
11218
11219         * reflection.c (mono_reflection_setup_internal_class): Also call
11220         mono_class_setup_mono_type() if we already have a `tb->type.type'.
11221
11222 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
11223
11224         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
11225         called during default (first) AppDomain creation. Keep track of
11226         Evidence when loading assemblies.
11227
11228 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11229
11230         * opcodes.c, opcodes.h: reduce runtime relocations.
11231
11232 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
11233
11234         * culture-info.h, locales.c: fixes and chages to sue the new
11235         optimized format of the locale data.
11236         * culture-info-tables.h: regenerated.
11237
11238 2004-08-06  Geoff Norton <gnorton@customerdna.com>
11239         
11240         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
11241
11242 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
11243
11244         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
11245         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
11246         * domain-internals.h: icall declaration.
11247         * icall.c: icall registration.
11248         * object-internals.h: New fields in MonoAssembly for CAS.
11249
11250 2004-08-05  Duncan Mak  <duncan@ximian.com>
11251
11252         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
11253         CEE_LDELEM_ANY.
11254
11255 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11256
11257         * reflection.c: fix to deal with object[] arrays in custom ctors
11258         (bug #62550).
11259
11260 2004-08-05  Martin Baulig  <martin@ximian.com>
11261
11262         * class.c (mono_class_array_element_size): Added support for
11263         generic instances and correctly handle "recursive" types.
11264
11265 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11266
11267         * assembly.c: Fix warnings.
11268
11269 2004-08-04  Martin Baulig  <martin@ximian.com>
11270
11271         * class.c
11272         (mono_type_get_name_recurse): Added `gboolean include_arity'
11273         argument specifying whether or not we should include the generic
11274         arity in the type name.
11275         (_mono_type_get_name): New static function.
11276         (mono_class_setup_vtable): If we're a generic instance, don't
11277         include the generic arity in the names of explicit method
11278         implementations.        
11279
11280 2004-08-03  Martin Baulig  <martin@ximian.com>
11281
11282         * class.c (mono_type_get_name_recurse): Enclose the generic type
11283         arguments in `<', '>'.
11284
11285 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11286
11287         * gc.c: make GC warning messages use the trace API, they are just
11288         noise to most of the users.
11289
11290 2004-08-03  Martin Baulig  <martin@ximian.com>
11291
11292         * debug-mono-symfile.c (read_string): Correctly read the string.
11293
11294 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11295
11296         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11297         
11298         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11299         icalls.
11300         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11301
11302 2004-07-30  Martin Baulig  <martin@ximian.com>
11303
11304         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11305         Reflect latest symbol writer changes.   
11306
11307 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11308
11309         * object.c: always create an object if null is passed
11310         to Invoke() where a valuetype is expected.
11311
11312 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11313
11314         * marshal.c (mono_marshal_init): make managed
11315         signatures match native ones better for 64bits.
11316
11317 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11318
11319         * appdomain.c: hack to build correctly the private bin path on windows.
11320         Fixes bug #61991.
11321
11322 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11323
11324         * assembly.c: Load mscorlib from the correct framework directory
11325           (mono/<version>/mscorlib.dll).
11326         * appdomain.h: Added prototypes for new functions.
11327         * internals.h: Added some prototypes.
11328         * domain.c: When initializing the runtime, get from the executable and
11329           the configuration files the runtime version that the app supports.
11330           Added support methods for reading app.exe.config. Added list of versions
11331           supported by the JIT. Added two new methods: mono_init_from_assembly,
11332           which initializes the runtime and determines the required version from
11333           the provided exe file, and mono_init_version, which initializes
11334           the runtime using the provided version.
11335         * icall.c: Get machine.config from version-specific directory.
11336         * reflection.c: When generating an image, embed the version number
11337           of the current runtime.
11338
11339 2004-07-28  Dick Porter  <dick@ximian.com>
11340
11341         * socket-io.c
11342         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11343         returned sockaddr size before creating the remote address object.
11344         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11345         61608.
11346
11347 2004-07-28  Dick Porter  <dick@ximian.com>
11348
11349         * locales.c (string_invariant_compare_char): Fix invariant char
11350         compares between upper and lower cases.  Fixes bug 61458.
11351
11352 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11353         
11354         * marshal.c: actually cache stelem.ref wrappers.
11355         
11356 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11357
11358         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11359         sections and remove the mono_cli_rva_map () function.
11360
11361 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11362
11363         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11364         by Geoff Norton (<gnorton@customerdna.com>).
11365
11366 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11367
11368         * class.c: fix class loads for pointer types (typeof(int) !=
11369         typeof(int*)).
11370
11371 2004-07-27  Martin Baulig  <martin@ximian.com>
11372
11373         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11374         reading the debugging information from an external ".mdb" file.
11375
11376 2004-07-24  Martin Baulig  <martin@ximian.com>
11377
11378         * reflection.c (mono_image_get_type_info): Only write a class
11379         layout entry if we actually have a size or a packing size.
11380
11381 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11382
11383         * reflection.c (type_get_fully_qualified_name): 
11384         insert cast to get type checking of ?: with non-gcc compilers
11385
11386 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11387
11388         * rand.c: use g_getenv for both lookups of
11389         MONO_EGD_SOCKET
11390
11391 2004-07-17  Martin Baulig  <martin@ximian.com>
11392
11393         * reflection.c (mono_reflection_bind_generic_method_parameters):
11394         Set `gmethod->reflection_info'.
11395
11396 2004-07-17  Martin Baulig  <martin@ximian.com>
11397
11398         * class.c (mono_class_create_from_typedef): Insert the newly
11399         created class into the hash table before computing the interfaces
11400         since we could be called recursively.
11401
11402 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11403
11404         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11405         function to implement stelem.ref in managed code
11406         * class-internals.h, debug-helpers.c: a new wrapper type
11407         for the above.
11408
11409 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11410
11411         * gc.c: allow GC handles to work even when no GC is compiled in.
11412         Fix part of bug #61134 (GetAddrOfPinnedObject).
11413
11414 2004-07-13  Peter Williams  <peter@newton.cx>
11415  
11416         * process.c (complete_path): Make sure we don't attempt to execute
11417         directories.
11418  
11419 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11420
11421         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11422           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11423           and will add/subtract the hour if needed
11424
11425 2004-07-12  Martin Baulig  <martin@ximian.com>
11426
11427         * reflection.c (mono_field_get_object): If we have
11428         `field->generic_info', take the attributes from
11429         `field->generic_info->generic_type'.    
11430
11431 2004-07-12  Martin Baulig  <martin@ximian.com>
11432
11433         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11434         This function must be called before initializing the runtime.
11435         (mono_debug_init_1): New function; call this after initializing
11436         the runtime, but before loading the assembly.  It tells the
11437         debugger to load corlib and the builtin types.
11438
11439         * mono-debug-debugger.c: Did some larger changes in the debugging
11440         code; support recursive class declarations, make sure we actually
11441         add all classes.
11442
11443 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11444
11445         * debug-helpers.c: undo my previous patch and fixed the real issue in
11446         ../mini/exceptions-x86.c
11447
11448 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11449
11450         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11451         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11452         called from other .cctors.
11453
11454 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11455
11456         * loader.c: Removed the mono_loader_wine_init hack now that we are
11457         doing a managed version of Windows.Forms.
11458
11459 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11460
11461         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11462         threadpool.c, threads.c: remove static data from rootset.
11463
11464 2004-07-09  Dick Porter  <dick@ximian.com>
11465
11466         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11467         Don't do any more processing if the matched length was 0.  It was
11468         increasing the size of the string before.  Fixes bug 61167.
11469
11470 2004-07-09  Dick Porter  <dick@ximian.com>
11471
11472         * socket-io.h:
11473         * socket-io.c
11474         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11475         Add support for SO_PEERCRED if its available.
11476
11477 2004-07-09  Peter Bartok <pbartok@novell.com>
11478         * loader.c: winelib.exe.so error message is now only displayed if
11479         MONO_DEBUG is set. To help us avoid questions when people are trying
11480         out the new Managed.Windows.Forms.
11481
11482 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11483
11484         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11485         for isinst and castclass wrappers.
11486
11487         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11488         to libmetadata from the JIT, so they could be used by the marshalling
11489         code and the interpreter.
11490
11491         * marshal.c: Register marshalling related JIT icalls here instead of
11492         in mini.c. Use CEE_MONO_ICALL instead of the family of 
11493         CEE_MONO_PROC<x> opcodes to call marshalling functions.
11494
11495         * metadata.h: Remove unneeded marshalling conversions.
11496
11497         * opcodes.c: Update for new opcodes.
11498         
11499 2004-07-08  Martin Baulig  <martin@ximian.com>
11500
11501         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
11502         (mono_debug_get_domain_data): Make this function static.
11503
11504 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11505
11506         * gc.c, object.h: add nice GC handle API for embedders.
11507
11508 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
11509
11510         * reflection.c: more changes for the new api
11511
11512         * object.c: When we reflect on a field w/ a constant value, it
11513         will not have a memory location, so we must access metadata. Also,
11514         allow easier reading of strings so that we can read them from
11515         the constant data.
11516
11517         * class.c (mono_class_layout_fields): no need for literal fields here.
11518
11519         * class-internals.h: api changes for const fields
11520
11521         * icall.c (ves_icall_get_enum_info): use new apis for const fields
11522
11523 2004-07-06  Martin Baulig  <martin@ximian.com>
11524
11525         * mono-debug.h: Increment version number to 44.
11526
11527         * mono-debug.c (mono_debug_add_wrapper): The second argument is
11528         now a gpointer, rewrote this whole method.
11529
11530         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
11531         function.  Add information about the wrapper in a new "misc table".
11532
11533         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
11534         for the new misc table.
11535
11536 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
11537
11538         * metadata-internals.h image.c: Add a cache for helper signatures.
11539
11540         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
11541
11542 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
11543
11544         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
11545         delegates from a delegate. Fixes #61033.
11546         
11547         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
11548         marshalling of stringbuilder arrays. Fixes #59900.
11549
11550 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
11551
11552         * icall.c: Add EnumBuilder:setup_enum_type icall.
11553
11554 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
11555
11556         * icall.c: Added a new icall for the property version of
11557         OffsetOfStringData.
11558
11559 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
11560
11561         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
11562         it has a constant size across platforms.
11563
11564         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
11565         stack trace.
11566
11567 2004-06-29  Martin Baulig  <martin@ximian.com>
11568
11569         * mono-debug.c (mono_debug_add_method): Protect the whole function
11570         in mono_debugger_lock(), not just parts of it.
11571
11572 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11573
11574         * reflection.c: make sure padding bytes in heaps are zeroed.
11575
11576 2004-06-24  David Waite  <mass@akuma.org>
11577
11578         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
11579         image.c, loader.c, locales.c, marshal.c, metadata.c,
11580         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
11581         string-icalls.c, threads.c: change to C90-style comments from C99 /
11582         C++ -style
11583
11584 2004-06-24  Dick Porter  <dick@ximian.com>
11585
11586         * threads.c
11587         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
11588         return createdNew.  Fixes bug 60412.
11589
11590         * threads-types.h: 
11591         * icall.c: Add createdNew parameter to CreateMutex icall
11592
11593 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11594
11595         * reflection.c, object-internals.h: save default value in params.
11596
11597 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11598
11599         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
11600         no need to build a new path combining that with the application base.
11601         Fixes bug #60442.
11602
11603 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
11604
11605         * reflection.c: fixed minor standard compliance issues.
11606
11607 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11608
11609         * reflection.c: fixed issue with encoding some custom attributes
11610         (arrays in properties and fields, bug #60411).
11611
11612 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11613
11614         * reflection.c: fix start address when copying the public key token.
11615
11616 2004-06-23  Martin Baulig  <martin@ximian.com>
11617
11618         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
11619         the `exc' object in a static object to put it into the GC's root set.
11620
11621 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
11622
11623         * reflection.c: make mono_reflection_setup_internal_class ()
11624         callable a second time to setup a new parent class.
11625
11626 2004-06-23  Dick Porter  <dick@ximian.com>
11627
11628         * threads.c: Check for WAIT_IO_COMPLETION return values.
11629
11630 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
11631
11632         * appdomain.c: Removed the g_free on the public key token. Now copy 
11633         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
11634         * assembly.c: Added public key token string value when loading 
11635         assemblies. Fix bug #60439.
11636         * icall.c: Added missing informations (like public key) in 
11637         GetReferencedAssemblies. Fix #60519.
11638         * image.h: Changed definition for public key token from const char*
11639         public_tok_value to guchar public_key_token [17];
11640         * reflection.c: Updated for changes to public key token.
11641
11642 2004-06-22  Lluis Sanchez Gual
11643
11644         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
11645         for the field in base classes.
11646
11647 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11648
11649         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
11650         mark headers as not supported, they are installed only for use by the
11651         debugger.
11652
11653 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
11654
11655         * *.c, *.h: avoid namespace pollution in public headers.
11656
11657 2004-06-21  Martin Baulig  <martin@ximian.com>
11658
11659         * exception.c (mono_get_exception_security): It's in
11660         "System.Security", not in "System".
11661
11662         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
11663         the exception classes.
11664
11665 2004-06-21  Martin Baulig  <martin@ximian.com>
11666
11667         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
11668         Protect the exception object from being finalized.
11669
11670 2004-06-21  Martin Baulig  <martin@ximian.com>
11671
11672         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
11673         public function.
11674
11675 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
11676
11677         * reflection.c: Load the assembly in mono_reflection_type_from_name,
11678         if it was not loaded before. Fix parts of #60439.
11679
11680 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
11681
11682         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
11683         code that was broken since Ben's change: wrappers are now
11684         dependent on the method signature only again.
11685
11686 2004-06-21  Martin Baulig  <martin@ximian.com>
11687
11688         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
11689         added interface support.
11690
11691 2004-06-21  Martin Baulig  <martin@ximian.com>
11692
11693         * class.c (mono_vtable_get_static_field_data): New public method.
11694
11695 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
11696
11697         * filewatcher.c : Windows build fix to be compliant with API changes.
11698
11699 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11700
11701         * class.h, class.c: more accessors.
11702         * metadata.h, metadata.c: prepare for hiding MonoType and
11703         MonoMethodSignature: people should use the accessors from now on
11704         outside of the tree.
11705
11706 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11707
11708         * *.c, *.h: more API cleanups.
11709
11710 2004-06-18  Jackson Harper  <jackson@ximian.com>
11711
11712         * assembly.c: Trace loading assemblies.
11713         * loader.c: Trace loading native libraries.
11714         * mono-config.c: Trace loading config files.
11715         
11716 2004-06-18  Dick Porter  <dick@ximian.com>
11717
11718         * locales.c: Tell ICU the lengths of strings, it can cope with
11719         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
11720
11721 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
11722
11723         * image.c: swapped name/filename;
11724
11725 2004-06-18  Martin Baulig  <martin@ximian.com>
11726
11727         * mono-debug-debugger.c (write_class): Write the parent class at
11728         the end of the header.
11729
11730 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11731
11732         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
11733
11734 2004-06-17  Raja R Harinath  <rharinath@novell.com>
11735
11736         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
11737         (bundle_obj): New conditional define.
11738         (BUILT_SOURCES): Remove.
11739         ($(bundle_srcs)): Make parallel-make safe.
11740         (libmonoruntime_la_LIBADD): Make unconditional.
11741         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
11742         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
11743
11744 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
11745
11746         * culture-info-tables.h: It was inconsistent with the latest
11747           supp info files.
11748
11749 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
11750
11751         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
11752         be loaded.
11753
11754         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
11755         with gcc 2.95.
11756
11757 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11758
11759         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
11760         cleaned up public header threads.h.
11761
11762 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11763
11764         * Makefile.am, *.c, *.h: more API cleanups.
11765
11766 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
11767
11768         * Makefile.am: removed monosn from compilation.
11769         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
11770         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
11771         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
11772         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
11773         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
11774         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
11775
11776 2004-06-15  Jackson Harper  <jackson@ximian.com>
11777
11778         * assembly.c: Make locales lower case when searching the GAC for
11779         assemblies. gacutil will always make locales lowercase when
11780         installing so this effectively makes them case insensitive.
11781         
11782 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
11783
11784         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
11785         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
11786           parameter which allows to choose whether the wait can be interrupted or 
11787           not. Also added the method mono_monitor_enter(), which locks the monitor
11788           using an infinite wait and without allowing interruption.
11789           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
11790           interrupted.
11791         * object.h: Added new fields in MonoThread. suspend_event holds the event
11792           used to susped/resume the thread. synch_lock is the lock object to use for
11793           modifying the thread state.
11794         * threads.c: Use the new synch_lock object for locking, instead of "this",
11795           which can generate deadlocks.
11796           Moved thread state change in Thread.Sleep and Thread.Join from managed
11797           to unmanaged code. This avoids a deadlock when the thread was suspended
11798           just after acquiring the thread lock.
11799           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
11800           Implemented Thread.Suspend using an event instead of ThreadSuspend,
11801           which is not fully implemented in the io-layer.
11802         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
11803
11804 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
11805
11806         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
11807         threads-types.h: more API cleanups.
11808
11809 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11810
11811         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
11812         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
11813         threadpool.c, threads.c: first pass at the exported API cleanup.
11814
11815 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
11816
11817         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
11818
11819 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11820
11821         * icall.c: added internalGetHome.
11822
11823 2004-06-14  Dick Porter  <dick@ximian.com>
11824
11825         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
11826         possible to return successfully when '.' or '..' were the only
11827         entries in a directory, but were skipped.  The MonoIOStat was not
11828         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
11829         Fixes bug 59574.
11830
11831 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11832
11833         * reflection.c: make binaries run on .Net 1.1 by default.
11834
11835 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11836
11837         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
11838
11839 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
11840
11841         * marshal.c: keep track of struct size with explicit layout
11842         (bug #59979).
11843
11844 2004-06-12  Martin Baulig  <martin@ximian.com>
11845
11846         * mono-debug-debugger.c: Comment out a debugging g_message().
11847
11848 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11849
11850         * reflection.c, reflection.h: do not free custom attrs that are cached.
11851         * icall.c: use braces to make code clearer.
11852
11853 2004-06-11  Martin Baulig  <martin@ximian.com>
11854
11855         * class.h (MonoInflatedField): New type.
11856         (MonoClassField): Replaced `MonoType *generic_type' with
11857         `MonoInflatedField *generic_info'.
11858
11859         * icall.c
11860         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
11861
11862 2004-06-11  Martin Baulig  <martin@ximian.com>
11863
11864         * reflection.c (mono_image_create_method_token): Correctly encode
11865         varargs methods.
11866
11867 2004-06-11  Martin Baulig  <martin@ximian.com>
11868
11869         * metadata.c (mono_metadata_parse_method_signature): When parsing
11870         a MethodDef which has VarArgs, also set sentinelpos if we don't
11871         have any parameters.
11872
11873 2004-06-11  Martin Baulig  <martin@ximian.com>
11874
11875         * verify.c (mono_method_verify): In CEE_CALL, use
11876         mono_method_get_signature() to get the method's signature, unless
11877         we're a PInvoke method.
11878
11879 2004-06-10  Jackson Harper  <jackson@ximian.com>
11880
11881         * assembly.c: Use <path>/lib/mono/gac for the extra paths
11882         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
11883         logical name as the supplied path is just a prefix to the gac not
11884         the direct path to it.
11885         
11886 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
11887
11888         * reflection.c: make the token for a created method match
11889         the token of the MethodBuilder it was created from
11890         (IKVM requires this behaviour now).
11891
11892 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
11893
11894         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
11895         reflection.c, socket-io.c: leak fixes.
11896
11897 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
11898
11899         * icall.c: handle sentinel pos in vararg methods in position different
11900         from 0.
11901
11902 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11903
11904         * culture-info-tables.h: freshly generated.
11905
11906 2004-06-09  Martin Baulig  <martin@ximian.com>
11907
11908         * loader.c (mono_get_method_constrained): Call `mono_class_init
11909         (constrained_class)'.   
11910
11911 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
11912
11913         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
11914         any methods. Fixes #59629.
11915
11916 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11917
11918         * culture-info-tables.h: reflecting locale-builder updates.
11919
11920 2004-06-08  Dick Porter  <dick@ximian.com>
11921
11922         * object.h:
11923         * locales.c: Fixed compile warnings, including a real bug in
11924         CompareInfo_internal_compare.
11925         
11926 2004-06-08  Dick Porter  <dick@ximian.com>
11927
11928         * locales.c
11929         (ves_icall_System_Globalization_CompareInfo_internal_index):
11930         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
11931         Double-check the resuls of usearches, because ICU currently
11932         ignores most of the collator settings here.  Fixes bug 59720.
11933         
11934 2004-06-08  Dick Porter  <dick@ximian.com>
11935
11936         * locales.c
11937         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
11938         Fix memory leak and segfault-causing typo.  No idea how this one
11939         lasted so long without being noticed.
11940
11941 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
11942
11943         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
11944         any methods. Fixes #59629.
11945
11946 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11947
11948         * assembly.c:
11949         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
11950         own the critical section before). Removed dead code (that's done
11951         in the preload hook).
11952
11953         (mono_assembly_load_with_partial_name): call the preload hook.
11954
11955 2004-06-08  Martin Baulig  <martin@ximian.com>
11956
11957         * metadata.c (mono_metadata_signature_alloc): Default
11958         `sentinelpos' to -1.
11959
11960         * reflection.c (mono_image_get_array_token): Likewise.
11961
11962 2004-06-08  Martin Baulig  <martin@ximian.com>
11963
11964         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
11965
11966         * metadata.c (mono_metadata_parse_method_signature): When parsing
11967         a MethodDef which has VarArgs, set sentinelpos.
11968
11969         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
11970         `gint16' since we're using -1 for non-varargs methods.
11971
11972         * reflection.c
11973         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
11974         (method_encode_signature): Added varargs support.
11975         (method_builder_encode_signature): Likewise.
11976         (mono_image_get_varargs_method_token): New static method.
11977         (mono_image_create_method_token): New public method; this is
11978         called via an icall instead of mono_image_create_token() when
11979         calling a varargs method.       
11980
11981 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
11982
11983         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
11984
11985 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11986
11987         * culture-info-tables.h : Reflecting the latest locale-builder that
11988           fixed empty array representation ({} to {0}).
11989
11990 2004-06-07  Jackson Harper  <jackson@ximian.com>
11991
11992         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
11993         looking up extra gac paths. This allows MONO_GAC_PATH to act
11994         exactly like a prefix.
11995         
11996 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
11997
11998         * reflection.c (mono_reflection_type_from_name): Make a copy of the
11999         type name before modifying it. Fixes #59405.
12000
12001 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12002
12003         * culture-info.h: added fields for "all datetime patterns".
12004         * locales.c: (  ves_icall_System_Globalization_CultureInfo
12005           _construct_datetime_format ()): fill xxx_patterns fields.
12006         * object.h: added fields for "all datetime patterns" to
12007           MonoDateTimeFormatInfo.
12008         * culture-info-tables.h: reflecting locale-builder updates.
12009
12010 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12011
12012         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
12013         the event has no add and remove methods. Fixes #59629.
12014
12015 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
12016
12017         * object.c: Fixed possible integer overflow when allocating large
12018         strings.
12019
12020 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12021
12022         * culture-info-tables.h: reflecting locale-builder updates.
12023
12024 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12025
12026         * culture-info-tables.h: reflecting locale-builder updates.
12027
12028 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
12029
12030         * culture-info-tables.h: reflecting locale-builder updates.
12031
12032 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
12033
12034         * threads.c: Made Thread.Sleep abortable.
12035
12036 2004-06-02  Martin Baulig  <martin@ximian.com>
12037
12038         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
12039
12040         * debug-mono-symfile.h: Bumped symbol file version number to 37.
12041
12042 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
12043
12044         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
12045
12046 2004-05-30  Jackson Harper  <jackson@ximian.com>
12047
12048         * reflection.c: Do not hardcode assembly versions or public key
12049         tokens anymore. All of this except the corlib section was dead
12050         code anyways.
12051         
12052 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
12053
12054         * object.c (mono_runtime_invoke_array): Automatically create boxed
12055         objects for byref valuetypes if needed. Fixes #59300.
12056         
12057         * object.c (mono_method_return_message_restore): Handle 
12058         MONO_TYPE_OBJECT as well.
12059
12060 2004-05-28  Jackson Harper  <jackson@ximian.com>
12061
12062         * reflection.c: The modified type encoding was causing build
12063         problems. Reverted for now.
12064         
12065 2004-05-28  Jackson Harper  <jackson@ximian.com>
12066
12067         * reflection.c/h: Take an assembly ref so that we dont create
12068         fully qualified names when encoding types in the same assembly as
12069         the custom attribute being emitted.
12070         * appdomain.c: Increment version number.
12071         
12072 2004-05-26  Duncan Mak  <duncan@ximian.com>
12073
12074         * icall.c
12075         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
12076         Set the full version number (major, minor, build, revision).
12077
12078 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
12079
12080         * marshal.c (emit_struct_conv): increment src/dst after blit
12081         (mono_marshal_get_managed_wrapper,
12082         mono_marshal_get_native_wrapper): make sure we have marshalling
12083         info before marshalling params (info computation affects
12084         blittable)
12085
12086         * class.c (class_compute_field_layout): correctly deal with
12087         blittable
12088         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
12089         value types (as per what windows dows by default)
12090         (mono_class_setup_mono_type): System.ValueType is blittable
12091         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
12092         blittable
12093
12094         * marshal.c (mono_marshal_load_type_info): flag types  as
12095         non-blittable if the native layout doesn't match the managed
12096         layout
12097
12098 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12099
12100         * appdomain.c: don't add stuff in the private search path that is
12101         above the application base. If application base is not set, there's
12102         no private search path.
12103
12104 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
12105
12106         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
12107         byref struct arguments in native->managed marshalling.
12108
12109 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
12110
12111         * marshal.c (mono_marshal_get_runtime_invoke): correctly
12112         cache methods using signature (special case for methods
12113         that are value type or string class)
12114         
12115         * image.c (mono_image_close): clean up allocated GSList's
12116         in runtime_invoke_cache.
12117
12118 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12119
12120         * mono-config.c: set the correct path for mono_cfg_dir on windows when
12121         there's no MONO_CFG_DIR environment variable defined.
12122
12123 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12124
12125         * threads.c: windows version must be >= 0x0500 to include OpenThread.
12126
12127 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
12128
12129         * threadpool.c: Really wait for 500ms after the async call, even if the wait
12130           is interrumped.
12131         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
12132           before waiting for it, and call CloseHandle after the wait to unref it.
12133           This will make sure that handles are not disposed too early.
12134
12135 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12136
12137         * appdomain.c:
12138         * appdomain.h:
12139         * icall.c: removed
12140         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
12141         needed now.
12142
12143         * object.c: se the application_base only for the domain that runs
12144         Main. Fixes bug #59216,
12145
12146 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12147
12148         * appdomain.c:
12149         * object.c: only the domain in which Main is run have
12150         SetupInformation.ConfigurationFile set, so moved a few lines from
12151         appdomain.c to object.c.
12152
12153 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12154
12155         * appdomain.c: we tried to load [name].(dll|exe), but according
12156         to bug #57710, we must also try [culture]/[name].(dll|exe) and
12157         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
12158         There's a test case attached to bug #58922.
12159
12160 2004-05-27  Dick Porter  <dick@ximian.com>
12161
12162         * icall.c:
12163         * file-io.c: Implemented icalls for locking and unlocking regions
12164         in a file.
12165         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
12166         FALSE on error (fixes both compiler warning and real bug.)
12167
12168 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
12169
12170         * culture-info-tables.h: reflecting locale-builder updates.
12171
12172           (Added missing ChangeLog entry for 05/26)
12173
12174 2004-05-27  Jackson Harper  <jackson@ximian.com>
12175
12176         * locales.c: Fix some cut and paste errors.
12177         
12178 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12179
12180         * mono-config.c: set the correct path for config. directory on windows.
12181
12182 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12183
12184         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
12185           on win32.
12186
12187 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12188
12189         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
12190         from pinvoke functions.
12191         
12192         * marshal.c (mono_ftnptr_to_delegate): Implement this.
12193
12194 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12195
12196         * culture-info-tables.h: reflecting locale-builder updates.
12197
12198 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12199
12200         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
12201         #59086.
12202
12203 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
12204
12205         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
12206         * icall.c: Modified icalls for RNG.
12207         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
12208         Windows (CryptoAPI).
12209
12210 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12211
12212         * locales.c: Fix build.
12213
12214 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12215
12216         * culture-info-tables.h: reflecting locale-builder updates.
12217
12218 2004-05-25  Jackson Harper  <jackson@ximian.com>
12219
12220         * locales.c: When creating the current culture use the $LANGs
12221         specific culture. So DateTimeFormat and NumberFormat entries are created.
12222         
12223 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12224
12225         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
12226         a char array as parameter.
12227
12228 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
12229
12230         * image.c: In mono_image_open(), always use an absolute path name to
12231           look for already loaded images.
12232
12233 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
12234
12235         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
12236         missing in the windows build (like older cygwin include files).
12237
12238 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
12239
12240         * icall.c: Fixed check for possible integer overflow in Buffer_
12241         BlockCopy icall. Replaced comments style // by /* */.
12242
12243 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
12244
12245         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
12246         
12247         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
12248         check after MONO_VTADDR. Fixes pinvoke2.exe.
12249
12250         * marshal.h marshal.c metadata.h: Add beginnings of support for
12251         ftnptr -> delegate marshalling.
12252
12253 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12254
12255         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12256         * threads.c: Fix warnings.
12257
12258 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12259
12260         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12261         * icall.c: Registered icalls for Suspend and Resume.
12262         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12263           Thread.Abort.
12264         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12265         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12266         * process.c: Use WaitForSingleObjectEx.
12267         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12268           checkpoints.
12269         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12270           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12271           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12272           background threads. Added basic support for Abort in Windows.
12273           Start new threads using a managed delegate invoke wrapper. This wrapper
12274           has an interruption checkpoint that is needed since an interruption
12275           can be requested before the thread leaves the unmanaged code that starts 
12276           the thread.
12277         * marshal.c: Added interruption checkpoint after every native call, and
12278           also before managed calls for wrappers called from unmanaged code to
12279           go into managed code.
12280         * object.h: Added new field in MonoThread to keep track of interruption
12281           requests.
12282
12283 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12284
12285         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12286         calls.
12287
12288 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12289
12290         * appdomain.c:
12291         * assembly.c:
12292         * gc.c:
12293         * locales.c:
12294         * mono-config.c:
12295         * rand.c: getenv -> g_getenv (windows!)
12296
12297         * process.c: complete_path is also used on non-windows platforms.
12298
12299 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12300
12301         * icall.c: new signature for Process_Start.
12302
12303         * process.[ch]: new signature for Process_Start. If we're on windows
12304         and UseShellExecute is false, we have to search for the program by
12305         ourselves if we don't get a full path.
12306
12307 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12308
12309         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12310         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12311
12312 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12313
12314         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12315         Fixes bug #58373.
12316
12317 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12318
12319         * process.c: use double quotes to quote program name and arguments on
12320         windows. Fixes bug #58575.
12321
12322 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12323
12324         * file-io.c: don't return "." and ".." when using windows Find*File.
12325
12326 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12327
12328         * marshal.c: Don't pass wrappers to message init because method 
12329         addressed used to lookup metadata. part of remoting[2|3] fix.
12330
12331 2004-05-15  Jackson Harper  <jackson@ximian.com>
12332
12333         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12334         path is essentially the same as MONO_PATH except that it points to
12335         GACs instead of lib directories.
12336         * loader.h: The user gac is gone so we dont need function to
12337         enable/disable it.
12338         * mono-config.c: user gac option is now gone.
12339         
12340 2004-05-15  Jackson Harper  <jackson@ximian.com>
12341
12342         * culture-info.h: Make defines more consistent, add calendar data
12343         to the culture info table.
12344         * culture-info-tables.h: Add basic calendar data. Basically
12345         everyone gets default gregorian until all the data is
12346         updated.
12347         * locales.c: Use the new consistent defines. Set calendar data for
12348         culture info objects.
12349         * object.h: add a field for calendar data to CultureInfo
12350         
12351 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12352
12353         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12354         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12355         a signature.
12356         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12357         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12358         an extra param that is the pointer of the method to invoke. The IL for
12359         the invoke method is no longer specific to the method, but to the
12360         signature of the method. Thus, we can share the same code for multiple
12361         methods. This reduces the number of methods that have to be compiled.
12362
12363 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12364
12365         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12366
12367         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12368
12369         * icall.c: Optimize Buffer.BlockCopy.
12370
12371 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12372
12373         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12374         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12375         quote). Changed them to "MMMM yyyy".
12376
12377 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12378
12379         * rand.c
12380         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12381
12382 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12383
12384         * reflection.h: Updated after changes to managed structures.
12385
12386         * appdomain.c: Bump corlib version.
12387
12388 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12389
12390         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
12391         windows.
12392
12393 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12394
12395         * Makefile.am: link to ../os/libmonoos.la on windows.
12396
12397         * assembly.c:
12398                 -If MONO_DEBUG, warn about non-existing directories in
12399                 MONO_PATH.
12400                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12401                 compile time variable.
12402                 -Removed init_default_path and call mono_set_rootdir from
12403                 libmonoos.a instead (windows only).
12404
12405         * assembly.h: declare mono_assembly_getrootdir().
12406
12407         * domain.c:
12408         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12409
12410         * loader.c: s/getenv/g_getenv/
12411
12412 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12413
12414         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12415
12416         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12417
12418         * metadata.h: Add new marshalling conversions.
12419
12420         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12421         function.
12422
12423         * reflection.c (mono_reflection_get_type): Lookup the type in all
12424         modules of a multi-module assembly. Fixes #58291.
12425
12426 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12427
12428         * threads.c: Before aborting a background, set the StopRequested
12429         state.  This avoids throwing the Abort exception.
12430         In mono_thread_manage, don't continue with the shutdown until all
12431         aborted threads have actually stopped.
12432
12433 2004-05-10  Jackson Harper  <jackson@ximian.com>
12434
12435         * locales.c: Remove the modifier from culture names.
12436         
12437 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12438
12439         * Makefile.am: monosn is not installed any more. It has been deprecated
12440         in favor of sn.
12441
12442 2004-05-07  Jackson Harper  <jackson@ximian.com>
12443
12444         * locales.c
12445         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12446         Fix array construction, add bailout if the length is 0.
12447
12448 2004-05-07  Dick Porter  <dick@ximian.com>
12449
12450         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12451         machine doesn't have a DNS entry.  Patch by Urs Muff
12452         (umuff@quark.com), fixes bug 57928.
12453
12454 2004-05-06  Jackson Harper  <jackson@ximian.com>
12455
12456         * reflection.c: Handle null PublicTokens properly. alloc mem for
12457         assembly names culture so we dont crash when freeing it.
12458         
12459 2004-05-06  Jackson Harper  <jackson@ximian.com>
12460
12461         * assembly.c: Check the usergac when loading with partial names.
12462         
12463 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12464
12465         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12466         does nothing for now (not required for Linux/Windows) but the class
12467         library can call it (and a newer or modified runtime could need it).
12468         * icall.c: Registred icall.
12469
12470 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12471
12472         * loader.c: prints a message on module loading error we set MONO_DEBUG
12473         environment variable.
12474
12475 2004-05-05  Jackson Harper  <jackson@ximian.com>
12476
12477         * appdomain.c: Handle PublicKeyToken=null properly.
12478         
12479 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12480
12481         * environment.c|h: Added icall ves_icall_System_Environment_
12482         GetOSVersionString to get the current OS version as a string.
12483         * icall.c: Registred icall.
12484
12485 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12486
12487         * object.c: in mono_object_get_virtual_method(), take into account that
12488         non-virtual methods don't have a slot in the vtable. Check needed when
12489         the object is a proxy.
12490
12491 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12492
12493         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
12494         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
12495
12496         * object.c (mono_class_compute_gc_descriptor): Fix warning.
12497
12498         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
12499         passed when a valuetype is expected.
12500
12501         * object.c (mono_unhandled_exception): Only set the exit code if the
12502         exception happens in the main thread. Fixes thread5.exe.
12503
12504         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
12505         invalid names. Fixes #58047.
12506
12507 2004-05-03  Jackson Harper  <jackson@ximian.com>
12508
12509         * assembly.c: This line was committed accidently and is unneeded.
12510         
12511 2004-05-03  Jackson Harper  <jackson@ximian.com>
12512
12513         * icall.c: Add new icall for Assembly::LoadWithPartialName
12514         * assembly.c/.h: new function that probes the GAC to load partial
12515         assembly names by Paolo Molaro.
12516         
12517 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12518
12519         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
12520         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
12521         (type_get_fully_qualified_name): Added PublicKeyToken when building a
12522         full type name.
12523
12524 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12525
12526         * appdomain.c: fixed check for 'neutral' culture and removed warning.
12527         * reflection.c: fix bug when parsing a full type name and Version is not
12528         the last thing in the string.
12529
12530 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
12531
12532         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
12533         crashes when it is freed.
12534
12535 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12536
12537         * assembly.c: print the compat warning to stderr.
12538
12539 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
12540
12541         * assembly.c (mono_assembly_load_references): Add a compatibility
12542         hack to run old applications that might be still referencing the
12543         3300-based assemblies, only do this for System.xxx.
12544
12545 2004-05-01  Jackson Harper  <jackson@ximian.com>
12546
12547         * appdomain.c: If the culture is neutral we set it to "".
12548         
12549 2004-04-29  Jackson Harper  <jackson@ximian.com>
12550
12551         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
12552
12553 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
12554  
12555         * string-icalls.c: added low overhead function for copying chars
12556         * icall.c: added needed icall for the above function
12557  
12558 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12559
12560         * icall.c: fix return value of get_global_assembly_cache.  Implemented
12561         Environment.GetLogicalDrives.
12562
12563 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
12564
12565         * rand.c: try and talk to egd or prngd
12566         for random bytes if opening devices fail.
12567
12568 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
12569
12570         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
12571         alignment for the type using the native alignment of its members 
12572         instead of using klass->min_align.
12573
12574         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
12575
12576 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12577
12578         * file-io.c:
12579         * socket-io.c: added check for sys/aio.h.
12580
12581 2004-04-28  Dick Porter  <dick@ximian.com>
12582
12583         * threads.c: Don't abort a thread thats already aborting, when
12584         terminating everything.
12585
12586 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12587
12588         * icall.c: added 2 new async calls for Socket.
12589
12590         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
12591         IO on *nix systems.
12592
12593         * threadpool.c: removed unused variable.
12594
12595 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
12596
12597         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
12598
12599 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12600
12601         * locales.c: put back string_invariant_tolower () and
12602         string_invariant_toupper ().
12603
12604 2004-04-26 David Waite <mass@akuma.org>
12605
12606         * file-io.h:
12607         * socket-io.h:
12608         * threads.h:
12609         * unicode.h: remove comma from end of enumeration declarations
12610
12611 2004-04-26 David Waite <mass@akuma.org>
12612
12613         * debug-mono-symfile.h:
12614         * decimal.c:
12615         * mono_debug.h:
12616         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
12617
12618
12619 2004-04-26  Jackson Harper  <jackson@ximian.com>
12620
12621         * appdomain.c: Increment version number.
12622         
12623 2004-04-26  Jackson Harper  <jackson@ximian.com>
12624
12625         * appdomain.c: Set assembly references public token value when
12626         PublicKeyToken is specified, not the hash_value. Free public token
12627         values when free assembly name data. Previously the public key
12628         token was hex decoded, however we are using hex encoded public key
12629         tokens, so this is not neccasary.
12630         * assembly.c: Lookup assemblies in the gac if their public token
12631         value is set. Add function to allow enabling user gac
12632         lookups. Specify whether or not the assembly was loaded from the
12633         GAC. Compare full assembly names when checking the cache for
12634         assemblies (Temporarily disabled see comment in code). Remove
12635         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
12636         specifies trace-loader they get extra info to stdout on the
12637         loading of assemblies.
12638         * image.h: Add a field for an assembly references public token
12639         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
12640         whether an assembly has been loaded from the GAC.
12641         * image.c: Remove a corlib -> mscorlib name mapping.
12642         * loader.h: Add function to enable/disable the user gac.
12643         * mono-config.c: Check if the usergac is enabled in the config
12644         file.
12645         * icall.c: New icall to determine whether or not an assembly has
12646         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
12647         * tabldefs.h: Add constant for assemblyref flag that specifies a
12648         full public key is used instead of a public token.
12649         * reflection.c: Remove mscorlib -> corlib mappings. Set
12650         PublicTokenValue instead of hash value. This value is a hex
12651         string so it does not need to be expanded.
12652
12653 2004-04-26  Martin Baulig  <martin@ximian.com>
12654
12655         * mono-debug-debugger.c (mono_debugger_initialize): Set
12656         `mono_debugger_initialized' before calling mono_debug_lock().
12657
12658 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
12659
12660         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
12661           InternalToUpper/InternalToLower.
12662         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
12663           removed invariant culture shortcut.  This is now done in managed code.
12664         * locales.c: (string_invariant_toupper/tolower) removed.
12665
12666 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12667
12668         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
12669         Added Poll internal call.
12670
12671         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
12672         call for Poll. Select was too heavy for polling a single socket.
12673
12674         * threadpool.[ch]: added mono_threadpool_cleanup.
12675         * threads.c: use it. Don't use Thread_Abort on windows.
12676
12677 2004-04-23  Martin Baulig  <martin@ximian.com>
12678
12679         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
12680
12681 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
12682
12683         * icall.c: Registred new icalls for key pair protection and added an
12684         icall for Environment.GetFolderPath on Windows.
12685         * security.c|h: Added new icalls for key pair protection.
12686
12687 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12688
12689         * socket-io.c: don't display the non-supported family warning for known
12690         families. Now this is not displayed on windows when checking support
12691         for IPv4/IPv6.
12692
12693 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12694
12695         * class.c: don't display the layout warning for static fields.
12696
12697 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
12698
12699         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
12700         * locales.c, locales.h: Added new icalls for culture-specific
12701         Char.ToLower and Char.ToUpper.
12702
12703 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12704
12705         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
12706         by David Waite.
12707
12708 2004-04-20  Martin Baulig  <martin@ximian.com>
12709
12710         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
12711         of the type name before passing it to mono_reflection_type_from_name().
12712
12713 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
12714
12715         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
12716         encodings here. Fixes #56965.
12717
12718 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
12719
12720         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12721         fix test on strstr result not that I can see anything that
12722         relies on the result.
12723
12724 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
12725
12726         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
12727         Fixes #57081.
12728
12729         * marshal.c (mono_marshal_get_string_encoding): New helper function.
12730
12731         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
12732         function to determine which marshalling to use for strings. Fixes
12733         #56965.
12734
12735         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
12736
12737         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
12738
12739 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
12740
12741         * icall.c: #include mono-config.h
12742
12743 2004-04-15  Jackson Harper  <jackson@ximian.com>
12744
12745         * culture-info-tables.h: Fix date formats for en-US culture.
12746         
12747 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
12748
12749         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
12750         ThreadPool.SetMinThreads.
12751         * threadpool.c: Implemented ThreadPool.GetMinThreads and
12752         ThreadPool.SetMinThreads.
12753
12754 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12755
12756         * mono-config.c: also load the .config file in the directory
12757         where the assembly was found.
12758
12759 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
12760
12761         * assembly.c: load per-assembly config files.
12762         * icall.c: decrapified code to get the config dir and moved to
12763         mono-config.c.
12764         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
12765         per-assembly config files. When doing a dll map lookup give precedence
12766         to the per-assembly data.
12767
12768 2004-04-14  Martin Baulig  <martin@ximian.com>
12769
12770         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
12771         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
12772         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
12773
12774         * mono-debugger-debugger.c: While the debugger is locked, remember
12775         whether the symbol tables have changes and send one single
12776         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
12777
12778 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
12779
12780         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
12781
12782         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
12783         function.
12784
12785         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
12786         account when marshalling string arrays. Fixes #56965.
12787
12788 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
12789
12790         * icall.c: Add new icalls mapping for security.
12791         * security.c|h: Add internal calls for WindowsIdentity,
12792         WindowsImpersonationContext and WindowsPrincipal.
12793
12794 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
12795
12796         * class.c: Added comment to ensure the System.MonoDummy class
12797         is removed when no longer necessary
12798
12799 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
12800
12801         * appdomain.c: Pass arguments to the bootstraping exceptions to
12802         minimize JITed methods at boot
12803
12804         * metadata.c (mono_exception_from_name_two_strings): Allow for the
12805         second string to be null.
12806
12807         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12808         Change the protocol to minimize the JIT methods at startup.  Now
12809         it Returns the internal codepage, if the value of "int_code_page"
12810         is 1 at entry, and we can not compute a suitable code page
12811         number, returns the code page as a string.
12812
12813 2004-04-13  Jackson Harper  <jackson@ximian.com>
12814
12815         * culture-info-tables.h: Fix number of decimal digits for all
12816         english locales.
12817
12818 2004-04-13  Jackson Harper  <jackson@ximian.com>
12819
12820         * icall.c: Clairfy out of sync error message. It is not always
12821         your corlib that is out of sync.
12822
12823 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
12824
12825         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
12826         properties when only the set accessor is overriden. Fixes #55874.
12827
12828 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
12829
12830         * assembly.c (mono_assembly_load_references): Make this thread safe.
12831         Fixes #56327.
12832
12833 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
12834
12835         * monosn.c: Add missing initialization calls.
12836
12837 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
12838
12839         * locales.c:
12840         ves_icall_System_Globalization_CultureInfo_construct_number_format
12841         Fix g_assert so it compiles on fussier compilers re int/ptr
12842         mismatch
12843
12844 2004-04-08  Dick Porter  <dick@ximian.com>
12845
12846         * socket-io.h:
12847         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
12848         53992.  Also rearrange the code so that the internal calls return
12849         an error value and exceptions are thrown from managed code.
12850
12851         * icall.c: Add type info to the socket icalls.
12852
12853 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12854
12855         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
12856         owes me a beer.
12857
12858 2004-04-07  Martin Baulig  <martin@ximian.com>
12859
12860         * class.c (mono_class_from_generic_parameter): Don't default
12861         `klass->parent' to `mono_defaults.object_type'.
12862
12863 2004-04-07  Martin Baulig  <martin@ximian.com>
12864
12865         * reflection.c (mono_reflection_initialize_generic_parameter): Set
12866         `param->pklass->reflection_info'.       
12867
12868 2004-04-07  Jackson Harper  <jackson@ximian.com>
12869
12870         * culture-info-tables.h: Fix date separator symbol.
12871         
12872 2004-04-07  Martin Baulig  <martin@ximian.com>
12873
12874         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
12875         from System.Type to System.MonoType.
12876
12877 2004-04-07  Martin Baulig  <martin@ximian.com>
12878
12879         * reflection.h
12880         (MonoReflectionGenericParam): Added `has_reference_type' and
12881         `has_value_type' fields.
12882
12883         * reflection.c (mono_image_get_generic_param_info): Encode the
12884         correct flags if we have the `class' or `struct' constraint.
12885
12886 2004-04-07  Martin Baulig  <martin@ximian.com>
12887
12888         * reflection.h
12889         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
12890
12891 2004-04-07  Jackson Harper  <jackson@ximian.com>
12892
12893         * appdomain.c: Revert extra patches, just wanted to bump the
12894         version number.
12895         
12896 2004-04-07  Jackson Harper  <jackson@ximian.com>
12897
12898         * Makefile.am: Add culture-info private headers.
12899         * icall.c: Add new icalls for contructing locales.
12900         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
12901         * locales.h: Declare new culture info construction methods.
12902         * object.h: Add new fields used to avoid the CultureMap to
12903         MonoCultureInfo.
12904         * culture-info.h: Definition of structs used in the culture info
12905         tables.
12906         * culture-info-tables.h: Autogenerated tables that contain culture
12907         info data. This file was generated with the locale-builder tool.
12908         * appdomain.c: Incement corlib version number.
12909         
12910 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
12911
12912         * appdomain.c: (mono_runtime_init) move mono_thread_init
12913         to before mono_object_new calls so critical sections
12914         are initialized before use.
12915
12916 2004-04-07  Martin Baulig  <martin@ximian.com>
12917
12918         * icall.c
12919         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
12920         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
12921         (ves_icall_MonoGenericParam_initialize): Removed.
12922         (monogenericparam_icalls): Removed.
12923         (generictypeparambuilder_icalls): Added new table for
12924         System.Reflection.Emit.GenericTypeParameterBuilder.
12925
12926         * reflection.c
12927         (mono_reflection_define_generic_parameter): Removed.
12928         (mono_reflection_initialize_generic_parameter): This is now called
12929         from GenericTypeParameterBuilder's .ctor.
12930
12931 2004-04-06  Martin Baulig  <martin@ximian.com>
12932
12933         * class.c (mono_class_init): Don't inflate nested classes in a
12934         generic instance.
12935         (mono_type_get_name_recurse): Include the generic arguments for
12936         generic instances and generic type declarations.
12937         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
12938         (_mono_class_get_instantiation_name): Removed.
12939         (mono_class_create_generic): Always use `gklass->name' as our name.
12940
12941         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
12942
12943         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
12944         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
12945         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
12946         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
12947         closed generic methods here.
12948
12949         * reflection.c
12950         (mono_reflection_generic_inst_get_nested_types): Removed.
12951         (inflate_mono_method): Copy the generic parameters from the
12952         MonoMethodHeader into out MonoGenericMethod.
12953
12954 2004-04-06  Martin Baulig  <martin@ximian.com>
12955
12956         * row-indexes.h
12957         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
12958
12959         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
12960
12961         * reflection.c (build_compressed_metadata): If we have any entries
12962         in the GenericParam, MethodSpec or GenericParamConstraint tables,
12963         set the header version to 1.1.
12964
12965 2004-04-06  Martin Baulig  <martin@ximian.com>
12966
12967         * class.c (mono_class_init): If we're a generic instance,
12968         initialize our nested classes, too.
12969         (_mono_class_get_instantiation_name): Deal with the new `!%d'
12970         suffix. 
12971
12972 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12973
12974         * process.c: quote the argument passed to the shell on windows.
12975
12976 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
12977
12978         * threads.c (mono_alloc_special_static_data): Allow this to be
12979         called during startup.
12980
12981 2004-04-02  Martin Baulig  <martin@ximian.com>
12982
12983         * icall.c
12984         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
12985
12986 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
12987
12988         * icall.c: Fix build.
12989
12990 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
12991
12992         * Makefile.am: Added security.c|h.
12993         * icall.c: Added icall for get_UserName;
12994         * security.c: New file for security related icalls. Added function
12995         get_UserName for System.Environment (fix #56144).
12996         * security.h: New. Header file for security.c
12997
12998 2004-04-02  Dick Porter  <dick@ximian.com>
12999
13000         * icall.c: Deleted the icalls that were obsoleted some time ago
13001         by the ICU string code, and which were mixed into the icall
13002         rearranging.  Fixes bug 55969.
13003
13004         * string-icalls.h: 
13005         * string-icalls.c: Deleted the code that those icalls reference.
13006
13007 2004-04-01  Martin Baulig  <martin@ximian.com>
13008
13009         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
13010
13011         * class.c (mono_class_from_generic_parameter): Don't set 
13012         TYPE_ATTRIBUTE_INTERFACE.
13013         (my_mono_class_from_generic_parameter): Likewise.
13014
13015 2004-04-01  Martin Baulig  <martin@ximian.com>
13016
13017         * loader.c (find_method): Added an optional `MonoClass *ic'
13018         argument to search in a specific interface.
13019         (mono_get_method_constrained): New public function.
13020
13021 2004-04-01  Martin Baulig  <martin@ximian.com>
13022
13023         * reflection.c (mono_image_get_generic_field_token): Use the
13024         `handleref' cache here.
13025
13026 2004-04-01  Martin Baulig  <martin@ximian.com>
13027
13028         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
13029
13030         * reflection.c (create_generic_typespec): Use the `typespec' hash
13031         here, not the `typeref' one.    
13032
13033 2004-04-01  Martin Baulig  <martin@ximian.com>
13034
13035         * class.c (mono_class_inflate_generic_type): Moved the
13036         functionality into a new static inflate_generic_type() which
13037         returns NULL if it didn't do anything.  Only increment the
13038         `mono_stats.inflated_type_count' if we actually inflated
13039         something.
13040         (mono_class_get_full): Check the classes type to see whether we
13041         need to inflate it; also inflate MONO_TYPE_(M)VAR.
13042
13043 2004-04-01  Jackson Harper  <jackson@ximian.com>
13044
13045         * reflection.c: Set culture for assembly references.
13046         
13047 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
13048
13049         * reflection.[ch], icall.[ch], Fix support for pinning variables.
13050
13051 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13052
13053         * assembly.c:
13054         (do_mono_assembly_open): the critical section also covers
13055         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
13056
13057 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13058
13059         * threads.c:
13060         (mono_manage_threads): abort the background threads when finishing.
13061         Fixes bug #47232.
13062
13063 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13064
13065         * gc.c: only close the done_event handle if there was no timeout.
13066         C-ified comments.
13067
13068 2004-03-30  Martin Baulig  <martin@ximian.com>
13069
13070         * icall.c (icall_entries): It's called "System.Activator", not
13071         "System.Activation".    
13072
13073 2004-03-30  Martin Baulig  <martin@ximian.com>
13074
13075         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
13076         (mono_class_create_from_typespec): Likewise.
13077
13078 2004-03-30  Martin Baulig  <martin@ximian.com>
13079
13080         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
13081         `has_ctor_constraint' and `initialized'.
13082
13083 2004-03-30  Martin Baulig  <martin@ximian.com>
13084
13085         * reflection.c (encode_new_constraint): New static function to add
13086         the constructor constraint attribute to a type parameter.
13087         (encode_constraints): Call encode_new_constraint() if necessary.
13088
13089         * reflection.h
13090         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
13091
13092         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
13093         
13094 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
13095
13096         * reflection.c, icall.c: add support for pinning variables. 
13097
13098 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
13099
13100         * marshal.c (mono_marshal_get_managed_wrapper):
13101         init bool local with zero rather than null.
13102
13103 2004-03-29  Martin Baulig  <martin@ximian.com>
13104
13105         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
13106         the "official" behavior here.
13107         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
13108
13109 2004-03-29  Martin Baulig  <martin@ximian.com>
13110
13111         * icall.c: Reflect latest API changes.
13112
13113 2004-03-29  Martin Baulig  <martin@ximian.com>
13114
13115         * loader.c (mono_get_method_from_token): Also call
13116         mono_metadata_load_generic_params () for abstract and interface
13117         methods; replace the type arguments in the method signature with
13118         the ones which are loaded from the metadata.
13119
13120 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
13121
13122         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
13123         of the lock is not the current thread. MS.NET don't do it, in spite of
13124         what the documentation says. See bug #56157.
13125
13126 2004-03-28  Martin Baulig  <martin@ximian.com>
13127
13128         * class.c (mono_class_init): Don't call init_properties() and
13129         init_events() for generic instances; set `prop->parent' when
13130         inflating properties.
13131
13132         * reflection.c (mono_generic_inst_get_object): Call
13133         `mono_class_init (ginst->klass)'.
13134         (mono_type_get_object): Only create a MonoGenericInst if your
13135         generic type is a TypeBuilder.
13136         (do_mono_reflection_bind_generic_parameters): Only set
13137         `ginst->is_dynamic' if our generic type is a TypeBuilder.
13138
13139 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
13140
13141         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
13142         Fixes #56091.
13143
13144 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13145
13146         * icall.c: added Kill_internal icall.
13147         * process.[ch]: added Kill_internal icall.
13148
13149 2004-03-25  Martin Baulig  <martin@ximian.com>
13150
13151         * class.h (MonoStats): Added `generic_instance_count',
13152         `inflated_method_count', `inflated_type_count' and
13153         `generics_metadata_size'.       
13154
13155 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13156
13157         * reflection.c: no warnings now.
13158
13159 2004-03-25  Martin Baulig  <martin@ximian.com>
13160
13161         * class.c (mono_class_get_full): New public function; does a
13162         mono_class_get(), but also takes a `MonoGenericContext *'.
13163
13164         * loader.c (mono_field_from_memberref): Renamed to
13165         `field_from_memberref', made static and added `MonoGenericContext *'
13166         argument.
13167         (mono_field_from_token): Added `MonoGenericInst *' argument.
13168         (method_from_memberef): Likewise.
13169         (mono_get_method_from_token): Likewise.
13170         (mono_get_method_full): New public function; does a
13171         mono_get_method(), but also takes a `MonoGenericContext *'.
13172
13173         * verify.c (mono_method_verify): Get the method's generic context
13174         and pass it to mono_field_from_token(), mono_get_method_full() and
13175         mono_class_get_full().
13176
13177 2004-03-25  Martin Baulig  <martin@ximian.com>
13178
13179         * class.c (mono_class_inflate_generic_type): Take a
13180         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
13181         `MonoGenericMethod *'.
13182
13183 2004-03-25  Martin Baulig  <martin@ximian.com>
13184
13185         * loader.h (MonoMethodInflated): Store the MonoGenericContext
13186         instead of the MonoGenericMethod here.
13187
13188 2004-03-25  Martin Baulig  <martin@ximian.com>
13189
13190         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
13191         each time we create a new MonoGenericInst, we also create a new
13192         context which points back to us.
13193
13194         * class.c (inflate_method): Use `ginst->context' instead of
13195         creating a new context.
13196
13197         * loader.c (method_from_memberref): Use
13198         `klass->generic_inst->context' instead of creating a new context.
13199
13200 2004-03-25  Martin Baulig  <martin@ximian.com>
13201
13202         * class.h (MonoGenericContext): New struct.
13203         (MonoGenericMethod): Removed `generic_inst'.
13204
13205         * class.c (mono_class_inflate_generic_method): Take a
13206         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
13207
13208 2004-03-25  Martin Baulig  <martin@ximian.com>
13209
13210         * loader.h (MonoMethodInflated): New typedef.
13211
13212         * metadata.h (MonoMethodSignature): Removed `gen_method', make
13213         `generic_param_count' consume just 30 bits, added `is_inflated'
13214         and `has_type_parameters' flags (one bit each).
13215
13216         * class.c (mono_class_inflate_generic_method): Create a
13217         MonoMethodInflated instead of a MonoMethodNormal and set
13218         `is_inflated' in the method signature.
13219
13220         * class.h (MonoGenericMethod): Removed `generic_method'.
13221
13222 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
13223
13224         * image.c: Make sure the name of a MonoImage is always an absolute path.
13225           This fixes bug #54415.
13226
13227 2004-03-24  Martin Baulig  <martin@ximian.com>
13228
13229         * class.c (mono_class_setup_vtable): If we're a generic instance,
13230         use our generic type's vtable size.
13231
13232 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
13233
13234         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
13235         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
13236         problems.
13237
13238 2004-03-23  Martin Baulig  <martin@ximian.com>
13239
13240         * class.h (MonoDynamicGenericInst): Added `int count_events' and
13241         `MonoEvent *events'.
13242
13243         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
13244         (typebuilder_icalls): Added "get_event_info"; calls
13245         mono_reflection_event_builder_get_event_info(). 
13246
13247         * reflection.c (mono_reflection_generic_inst_initialize): Added
13248         `MonoArray *events'.
13249         (mono_reflection_event_builder_get_event_info): New function.
13250
13251 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
13252
13253         * object.h: add mono_type_initialization_init
13254
13255         * object.c (mono_runtime_class_init): 
13256         implement class constructor synchronization rules
13257         to cope with threading issues.  
13258         add mono_type_initialization_init
13259
13260         * appdomain.c (mono_runtime_init): call 
13261         mono_type_initialization_init
13262
13263         * class.h: removing initializing field from MonoVTable
13264
13265 2004-03-23  Martin Baulig  <martin@ximian.com>
13266
13267         * class.c (my_mono_class_from_generic_parameter): Use
13268         `param->name' if it's not NULL. 
13269
13270 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13271
13272         * class.c: do not insert non-virtual methods in the vtable.
13273         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13274         that means the method is non-virtual. This never would have
13275         happened before.
13276
13277 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13278
13279         * profiler.c: Added lock for accessing coverage_hash.
13280
13281 2004-03-22  Martin Baulig  <martin@ximian.com>
13282
13283         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13284         `method->method->signature->generic_param_count != 0' to make it
13285         work for interface methods.
13286
13287 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13288
13289         * process.c: quote the string passed to the shell using g_shell_quote.
13290
13291 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13292
13293         * threads.c:
13294         (mono_threads_manage): don't remove the finalizer thread and self
13295         from the threads hash table so that mono_thread_manage can be called
13296         more than once.
13297
13298 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13299
13300         * process.c: quote the arguments when UseShellExecute is true. Fixes
13301         bug #55790.
13302
13303 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13304
13305         * threads.c: set mono_thread_detach as a cleanup routine for every
13306         thread. This way it's always executed upon thread termination, either
13307         aborted or finished normally. No more xsp hangs!
13308
13309 2004-03-17  Martin Baulig  <martin@ximian.com>
13310
13311         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13312         `int count_nested' and a `MonoType **nested'.
13313
13314         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13315         most of the functionality into a new static
13316         do_mono_reflection_bind_generic_parameters() and don't take a
13317         `MonoType *nested_in' argument any more.  Don't compute nested
13318         types here.
13319         (mono_reflection_generic_inst_get_nested_types): New public method
13320         to get nested types.
13321
13322         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13323         we're a nested class.
13324
13325         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13326         mono_reflection_generic_inst_get_nested_types() to compute the
13327         nested types.
13328
13329 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13330
13331         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13332         descriptive error message under windows.
13333         
13334 2004-03-17  Martin Baulig  <martin@ximian.com>
13335
13336         * class.c (dup_type): Added `const MonoType *original' argument;
13337         copy the attrs from the original type.
13338
13339 2004-03-17  Martin Baulig  <martin@ximian.com>
13340
13341         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13342         `m->generic_inst_cache' here.
13343
13344 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13345
13346         * exception.h exception.c: Add stack_overflow_exception.
13347
13348 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13349
13350         * threadpool.c:
13351         (overlapped_callback): call SetEvent *after* invoking the callback.
13352         No need to call CloseHandle.
13353
13354 2004-03-16  Martin Baulig  <martin@ximian.com>
13355
13356         * reflection.c (mono_image_get_fieldref_token): Take a
13357         `MonoReflectionField *' instead of a `MonoClassField *' and a
13358         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13359
13360 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13361
13362         * appdomain.c: don't add the culture to the filename we're looking for
13363         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13364
13365 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13366
13367         * locales.c: don't ignore symbols when doing case insensitive compares.
13368         Thanks Dick! Fixes bug #54046.
13369
13370         * threads.c: surround 'threads' usage with enter/leave in
13371         mono_thread_manage.
13372
13373 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13374
13375         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13376         implicitly marshalled as [Out]. Fixes #55450.
13377
13378         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13379         an exception.
13380
13381 2004-03-16  Martin Baulig  <martin@ximian.com>
13382
13383         * class.c (mono_class_from_generic_parameter): Use the actual
13384         parameter name. 
13385
13386 2004-03-16  Martin Baulig  <martin@ximian.com>
13387
13388         * reflection.c (type_get_signature_size): New static function.
13389         Compues the size of the type in a method signature.
13390         (method_get_signature_size): New static function; calls
13391         type_get_signature_size() to compute the actual size of the
13392         method's signature.
13393         (method_encode_signature): Use method_get_signature_size() to get
13394         the signature's size rather than using `nparams * 10'.
13395
13396 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13397
13398         * file-io.h: define here WapiOverlapped on windows. I don't want the
13399         regular OVERLAPPED one.
13400
13401         * file-io.c:
13402         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13403         Disabling AIO on windows.
13404
13405 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13406
13407         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13408         bug #55385.
13409
13410 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13411
13412         * appdomain.c: upgraded corlib version.
13413
13414         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13415         and BeginWrite. Allow opening files for asynchrnous operations.
13416
13417         * file-io.h: new struct that maps FileStreamAsyncResult.
13418         * icall.c: added new icalls.
13419         * process.[ch]: support setting child process environment variables
13420         and use the SHELL or COMSPEC when UseShellExecute is true.
13421
13422         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13423         callback for async. IO is here and also BindHandle.
13424
13425         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13426         from here.
13427
13428 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13429
13430         * reflection.c (create_custom_attr): Allow len == 0.
13431
13432         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13433         computation on big-endian machines.
13434
13435 2004-03-13  Martin Baulig  <martin@ximian.com>
13436
13437         * class.h (MonoGenericInst): Added `int count_ifaces'.
13438
13439         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13440         `ginst->count_ifaces' instead `klass->interface_count' since we
13441         may get called before the vtable is created.
13442
13443         * loader.c (mono_method_get_param_names): If we're a generic
13444         instance, return and don't initialize the class.
13445
13446         * reflection.c (mono_reflection_setup_generic_class): Don't call
13447         ensure_runtime_vtable().
13448         (mono_reflection_bind_generic_parameters): Set
13449         `ginst->count_ifaces'.
13450
13451 2004-03-11  Jackson Harper <jackson@ximian.com>
13452
13453         * icall.c:
13454         * unicode.c:
13455         * unicode.h: Remove unused System.Char icalls.
13456         
13457 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13458
13459         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13460         code when we P/Invoke the first library in Windows.Forms, instead
13461         of when we first open the assembly.
13462
13463         * assembly.c: Drop the lookup from here.
13464
13465 2004-03-10  Martin Baulig  <martin@ximian.com>
13466
13467         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13468         class for properties, fields and events.  Finally fixes #54945.
13469
13470 2004-03-10  Martin Baulig  <martin@ximian.com>
13471
13472         * metadata.c (mono_metadata_class_equal): New static function;
13473         checks whether two generic instances or two generic parameters are
13474         equal.
13475         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13476         compare classes.        
13477
13478 2004-03-10  Martin Baulig  <martin@ximian.com>
13479
13480         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13481
13482         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13483         argument and write it into the `reflection_info' field.
13484
13485         * icall.c
13486         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13487         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13488
13489 2004-03-09  Jackson Harper  <jackson@ximian.com>
13490
13491         * char-conversions.h: use 8 bits for numeric data its all we need
13492         * icall.c: numeric data is only 8 bits now.
13493
13494 2004-03-09  Martin Baulig  <martin@ximian.com>
13495
13496         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
13497
13498         * class.c (init_properties, init_events): Initialize the new
13499         `parent' field.
13500
13501         * reflection.c (typebuilder_setup_properties): Likewise.
13502         (typebuilder_setup_events): Likewise.
13503
13504         * reflection.h (MonoEventInfo): Replaced `parent with
13505         `declaring_type' and `reflected_type'.
13506
13507         * icall.c (ves_icall_get_property_info): Distinguish between
13508         declaring and reflected type.
13509         (ves_icall_get_event_info): Likewise.
13510
13511 2004-03-09  Martin Baulig  <martin@ximian.com>
13512
13513         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
13514         (ves_icall_Type_GetField): Correctly set field->klass.
13515
13516 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
13517
13518         * loader.h: Fix warning.
13519
13520 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
13521
13522         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
13523         library routine if present.  Notice that it will still continue
13524         executing even if its missing, for those working on the Gtk#
13525         edition of Windows.Forms.
13526
13527         * assembly.c (do_mono_assembly_open): If loading the
13528         System.Windows.Forms call mono_loader_wini_init.
13529
13530 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
13531
13532         * class.h: Added MonoRemoteClass struct.
13533         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
13534         function for MonoStrings.
13535         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
13536         Added internal call for getting the proxy type.
13537         * marshal.c: Get the type of transparent proxies from its remote_class.
13538         Added methods that generate the IL for type checks and casts:
13539         mono_marshal_get_isinst, mono_marshal_get_castclass, 
13540         mono_marshal_get_proxy_cancast.
13541         * marshal.h: Declaration of the previous new methods.
13542         * object.c: Added new moethods for creating and updating MonoRemoteClass
13543         instances: mono_remote_class, mono_upgrade_remote_class, 
13544         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
13545         * verify.c: FIx transparent_proxy_fields layout.
13546         * appdomain.c: Bump corlib version.
13547
13548 2004-03-04  Jackson Harper  <jackson@ximian.com>
13549
13550         * icall.c: Add icall to access char conversion tables.
13551         * char-conversions.h: Character conversion tables.
13552         * Makefile.am: Add char-conversions.h private header file.
13553         
13554 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
13555
13556         * appdomain.c (unload_thread_main): Increase unloading timeout to
13557         10 sec as a temporary workaround for Nant problems.
13558
13559 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
13560
13561         * gc.c: Add checks for GC_enable and GC_disable.
13562
13563         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
13564         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
13565         (bug #54988).
13566         
13567 2004-02-27  Martin Baulig  <martin@ximian.com>
13568
13569         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13570         `MonoReflectionType *' instead of a `MonoType *'.
13571
13572 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
13573
13574         * gc.c (run_finalize): Avoid finalizing the object representing the
13575         finalizer thread.
13576         (finalizer_thread): Fix warning.
13577
13578 2004-02-25  Martin Baulig  <martin@ximian.com>
13579
13580         * class.c (_mono_class_get_instantiation_name): Added `int offset'
13581         argument for nested types.
13582         (mono_class_create_generic): Added support for nested generictypes.
13583
13584         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
13585         `GList *nested'.
13586
13587         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
13588
13589         * reflection.c (method_encode_signature): Increase the minimum
13590         value of `size' from 10 to 11.
13591         (mono_reflection_bind_generic_parameters): Take `int type_argc'
13592         and `MonoType **types' arguments instead of the `MonoArray
13593         *types'; added `MonoType *nested_in'.  Recursively instantiate
13594         nested classes. 
13595
13596 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
13597
13598         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
13599         stack_overflow_ex members which are used by exception handling.
13600
13601         * appdomain.c (mono_runtime_init): Initialize the new members.
13602
13603         * gc.c (mono_gc_enable): New helper function.
13604         * gc.c (mono_gc_disable): New helper function.
13605
13606 2004-02-23  Martin Baulig  <martin@ximian.com>
13607
13608         * icall.c: I must have been really stupid - make it actually work
13609         this time ;-)
13610
13611 2004-02-23  Martin Baulig  <martin@ximian.com>
13612
13613         * loader.c (method_from_memberref): Only inflate the method if
13614         it's in another klass.
13615
13616 2004-02-23  Martin Baulig  <martin@ximian.com>
13617
13618         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
13619         (mono_class_init): If we're a generic instance and an interface,
13620         compute `class->interface_id'; also create `class->interfaces'
13621         here and inflate them.
13622
13623         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
13624         `ginst->is_open'.
13625         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
13626
13627         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
13628
13629 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
13630
13631         * reflection.c (method_encode_code): Improved the error message
13632         generated by the exception.
13633
13634 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13635
13636         * icall.c: Martin did not do what he said in the ChangeLog for
13637         2004-02-18, but put back the changes for properties and events.
13638         Commenting those changes out again and adding comment to bug #54518.
13639         
13640         * process.c: removed warning.
13641
13642 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
13643
13644         * marshal.c (emit_struct_conv): Print an error message instead of
13645         asserting when a type does not have the StructLayout attribute.
13646
13647 2004-02-20  Martin Baulig  <martin@ximian.com>
13648
13649         * reflection.c (mono_type_get_object): Also use the cache for
13650         generic instances.
13651         (mono_reflection_bind_generic_parameters): Always compute
13652         `ginst->ifaces'.        
13653
13654 2004-02-20  Martin Baulig  <martin@ximian.com>
13655
13656         * class.h (MonoGenericMethod): Removed `klass'.
13657
13658         * class.c (mono_class_inflate_generic_method): Added `MonoClass
13659         *klass' argument.
13660
13661 2004-02-20  Martin Baulig  <martin@ximian.com>
13662
13663         * reflection.c (method_encode_methodspec): Actually use the
13664         uninflated signature for the memberref.
13665
13666 2004-02-20  Martin Baulig  <martin@ximian.com>
13667
13668         * class.h (MonoGenericMethod): Removed `declaring'.
13669
13670         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
13671         is NULL, compute it here.
13672
13673 2004-02-20  Martin Baulig  <martin@ximian.com>
13674
13675         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
13676
13677         * metadata.c (mono_metadata_generic_inst_hash): New method.
13678         (mono_metadata_generic_inst_equal): New method.
13679
13680         * reflection.c (mono_reflection_bind_generic_parameters): Use the
13681         `klass->image->generic_inst_cache' cache to avoid creating
13682         duplicate MonoGenericInst's.
13683
13684         * class.c (mono_class_inflate_generic_type): Use the cache.
13685
13686 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
13687
13688         * object.c: fixed gc descriptor calculation for embedded valuetypes.
13689
13690 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13691
13692         * icall.c: added Socket.WSAIoctl icall.
13693
13694         * socket-io.[ch]: implemented
13695         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
13696
13697 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
13698
13699         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
13700
13701 2004-02-18  Urs C Muff  <umuff@quark.com>
13702
13703         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
13704         this work on PPC and other big-endian architectures.
13705
13706         * debug-mono-symfile.h: Prepended the names of all the `guint32'
13707         fields with an underscore to make sure they're only accessed by
13708         the read32() macro.
13709
13710 2004-02-18  Martin Baulig  <martin@ximian.com>
13711
13712         * icall.c: Put the klass->refclass changes back for methods and
13713         fields, but not for properties and events.  We're currently not
13714         distinguishing between DeclaringType and ReflectedType for
13715         properties and events, that's what caused the regressions.
13716
13717 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13718
13719         * object.c:
13720         (mono_async_result_new): the handle can be NULL.
13721
13722         * threadpool.c: Use an event instead of a semaphore, don't initialize
13723         it until needed. This saves quite a few semaphores from being created
13724         when using the threadpool.
13725
13726 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
13727
13728         * object.c (mono_string_is_interned_lookup): Fix interning of long
13729         strings. Fixes #54473.
13730
13731         * domain.c (ldstr_equal): Optimize if the two strings are equal.
13732
13733         * icall.c: Revert the klass->refclass changes since they introduce
13734         regressions (bug #54518).
13735
13736 2004-02-18  Martin Baulig  <martin@ximian.com>
13737
13738         * class.c (mono_class_init): If we're a generic instance and don't
13739         come from a TypeBuilder, inflate our members here.
13740         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
13741         (mono_class_create_generic): New public method.
13742         (mono_class_initialize_generic): Removed.
13743         (get_instantiation_name): Renamed to
13744         _mono_class_get_instantiation_name() and made it public.
13745
13746 2004-02-18  Martin Baulig  <martin@ximian.com>
13747
13748         * class.c (mono_class_inflate_generic_type): Clear the new
13749         instance's `nginst->klass' when inflating a generic instance.
13750         (mono_class_is_subclass_of): Added (basic) support for generic
13751         instances.
13752
13753 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
13754
13755         * appdomain.h, domain.c: use a MonoCodeManager instead of a
13756         MonoMempool to hold compiled native code.
13757
13758 2004-02-17  Martin Baulig  <martin@ximian.com>
13759
13760         * class.h (MonoDynamicGenericInst): Added `count_properties' and
13761         `properties'.
13762
13763         * reflection.c (mono_reflection_generic_inst_initialize): Added
13764         `MonoArray *properties' argument.
13765
13766         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
13767
13768 2004-02-17  Martin Baulig  <martin@ximian.com>
13769
13770         * icall.c (ves_icall_Type_GetFields): Renamed to
13771         ves_icall_Type_GetFields_internal() and added a
13772         `MonoReflectionType *rtype' argument; pass it to
13773         mono_field_get_object() to set the field's "reflected" type.
13774         (ves_icall_Type_GetConstructors): Likewise.
13775         (ves_icall_Type_GetEvents): Likewise.
13776         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
13777         argument; pass it to mono_method_get_object() to set the method's
13778         "reflected" type.       
13779
13780 2004-02-17  Martin Baulig  <martin@ximian.com>
13781
13782         * class.h (MonoDynamicGenericInst): New type.
13783         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
13784
13785         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
13786         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
13787         (ves_icall_MonoGenericInst_GetFields): New interncall.
13788
13789         * class.c (mono_class_from_generic): Don't call
13790         mono_class_initialize_generic() if this is a dynamic instance;
13791         ie. it's being created from a TypeBuilder.
13792         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
13793         `class->byval_arg.type'.
13794
13795         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
13796         to `inflate_method' and made static.
13797         (mono_reflection_inflate_field): Removed.
13798         (mono_reflection_generic_inst_initialize): New public method.
13799
13800         * reflection.h (MonoReflectionGenericInst): Removed `methods',
13801         `ctors' and `fields'; added `initialized'.
13802
13803 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
13804
13805         * debug-helpers.c (mono_method_full_name): Fix output for empty
13806         namespaces.
13807
13808 2004-02-12  Martin Baulig  <martin@ximian.com>
13809
13810         * class.h (MonoClassField): Added `MonoType *generic_type'.
13811
13812         * reflection.c (mono_image_get_fieldref_token): Added support for
13813         instantiated generic types.
13814         (field_encode_inflated_field): Removed.
13815         (mono_image_get_inflated_field_token): Removed.
13816         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
13817
13818         * reflection.h (MonoReflectionInflatedField): Removed.
13819
13820 2004-02-12  Martin Baulig  <martin@ximian.com>
13821
13822         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
13823         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
13824
13825         * reflection.c (mono_image_get_methodspec_token): Take a
13826         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
13827         (mono_image_create_token): Check whether we have a
13828         `method->signature->gen_method' and call
13829         mono_image_get_methodspec_token() if appropriate.
13830         (inflated_method_get_object): Removed.
13831         (mono_reflection_bind_generic_method_parameters): Return a
13832         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
13833         (mono_reflection_inflate_method_or_ctor): Likewise.
13834
13835         * reflection.h (MonoReflectionInflatedMethod): Removed.
13836
13837 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
13838
13839         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
13840         for custom valuetype marshalling.
13841
13842         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
13843
13844 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13845
13846         * icall.c: fixed WSAGetLastError_internal name.
13847
13848 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
13849
13850         * threads.c (mono_thread_attach): Allow this to be called multiple
13851         times for a thread.
13852         
13853         * threads.c (build_wait_tids): Do not wait for ourselves.
13854
13855         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
13856         appdomain list is empty.
13857
13858         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
13859         memory returned by mono_string_builder_to_utf16, since it points into
13860         managed memory. Thanks to Bernie Solomon for noticing this.
13861
13862         * icall.c: Add AppDomainSetup icalls.
13863
13864         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
13865
13866         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
13867         types.
13868
13869         * reflection.c (reflection_methodbuilder_to_mono_method): Save
13870         custom attributes to the method_aux struct. Also fix array indexes etc.
13871
13872         * loader.c (mono_method_get_param_names): Make dynamic case work again.
13873         
13874 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
13875
13876         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
13877         (both static and runtime) and reduce startup time.
13878
13879 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
13880
13881         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
13882         AsAny marshalling conversion instead of crashing.
13883
13884         * marshal.c: Fix warnings.
13885
13886 2004-02-09  Martin Baulig  <martin@ximian.com>
13887
13888         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
13889
13890         * reflection.h (MonoReflectionInflatedMethod): Removed the
13891         `declaring' field, it's now in the unmanaged MonoGenericMethod.
13892
13893         * reflection.c (method_encode_methodspec): Removed the `method'
13894         argument; we get it from `gmethod->declaring'.
13895         (inflated_method_get_object): Removed the `declaring' argument.
13896
13897 2004-02-09  Martin Baulig  <martin@ximian.com>
13898
13899         * class.h (MonoGenericMethod): New type.
13900         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
13901         `generic_method'.
13902
13903         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
13904         a `MonoGenericMethod *gen_method' one.
13905
13906         * class.c (mono_class_inflate_generic_type): Take an additional
13907         `MonoGenericMethod * argument.  This is only non-NULL if we're
13908         inflating types for a generic method.   
13909         (mono_class_inflate_generic_signature): Renamed to
13910         inflate_generic_signature() and made static; take a
13911         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
13912         (inflate_generic_header): Take a `MonoGenericMethod *' argument
13913         instead of a `MonoGenericInst *' one.
13914         (mono_class_inflate_generic_method): Likewise.
13915
13916         * reflection.c (encode_generic_method_sig): Take a
13917         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
13918         (method_encode_methodspec): Likewise.
13919         (inflated_method_get_object): Likewise. 
13920
13921         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
13922         field with a `MonoGenericMethod *gmethod' one.  
13923
13924 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
13925
13926         * class.h (mono_class_has_parent): add parens to expansion
13927         so you can ! this.
13928
13929 2004-02-08  Martin Baulig  <martin@ximian.com>
13930
13931         * image.h (MonoImage): Removed `generics_cache'.
13932
13933         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
13934         instead of a `MonoType *' argument; removed the `inflate_methods'
13935         argument.  Don't inflate methods here.
13936
13937         * loader.c (find_method): If it's a generic instance, call
13938         mono_class_init() on the `sclass->generic_inst->generic_type'.
13939
13940         * metadata.c (mono_type_size): Make this work on uninitialized
13941         generic instances; call it on the `ginst->generic_type's class.
13942
13943         * reflection.c (mono_reflection_bind_generic_parameters): Call
13944         mono_class_from_generic() to create the `ginst->klass'.
13945
13946 2004-02-08  Martin Baulig  <martin@ximian.com>
13947
13948         * class.h (MonoClass): Changed type of `generic_inst' from
13949         `MonoType *' to `MonoGenericInst *'.
13950
13951 2004-02-08  Martin Baulig  <martin@ximian.com>
13952
13953         * icall.c (ves_icall_Type_BindGenericParameters): Just call
13954         mono_type_get_object(), this is now creating a `MonoGenericInst'
13955         for MONO_TYPE_GENERICINST.
13956         (ves_icall_MonoGenericInst_GetParentType): Likewise.
13957         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
13958
13959         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
13960         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
13961         (inflated_method_get_object): Added `MonoClass *refclass' argument.
13962         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
13963         and reflected type.
13964
13965         * reflection.h (MonoReflectionInflatedMethod): Removed
13966         `declaring_type' and `reflected_type'.
13967
13968 2004-02-08  Martin Baulig  <martin@ximian.com>
13969
13970         * class.h (MonoGenericInst): Added `MonoType *parent' and
13971         `MonoType **ifaces'.
13972
13973         * reflection.h (MonoReflectionGenericInst): Removed `klass',
13974         `parent' and `interfaces'.
13975
13976         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13977         `MonoType *' argument and return a `MonoType *'.
13978
13979         * icall.c
13980         (ves_icall_MonoGenericInst_GetParentType): New interncall.
13981         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
13982
13983 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
13984
13985         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
13986         valuetype marshalling.
13987
13988 2004-02-06  Martin Baulig  <martin@ximian.com>
13989
13990         * class.c
13991         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
13992         (my_mono_class_from_generic_parameter): Likewise.
13993
13994 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
13995
13996         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
13997         contents of the symbol files lazily.
13998
13999         * object.h (MonoThread): Add 'name' and 'name_len' fields.
14000
14001         * threads.h threads.c icall.c: New icalls for getting and setting the
14002         threads name.
14003
14004 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
14005
14006         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
14007         Raise an exception when the domain is not found.
14008
14009 2004-02-03  Martin Baulig  <martin@ximian.com>
14010
14011         * reflection.c (mono_image_get_methodspec_token): Use the
14012         uninflated signature; fixes gen-33.
14013
14014 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
14015
14016         * gc.c threads.c: Make the finalizer thread a normal managed thread so
14017         the finalizer code can use thread functionality.
14018
14019         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
14020         the finalizer thread.
14021
14022         * threads.c: Make some functions more robust.
14023
14024         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
14025
14026         * metadata.h: Add new marshalling conventions.
14027
14028         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
14029         stringbuilder marshalling. Fixes #53700.
14030
14031         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
14032
14033         * reflection.c (mono_image_get_type_info): Save declarative security
14034         info.
14035
14036         * reflection.c (mono_image_get_field_info): Handle uninitialized 
14037         unmanaged fields as well.
14038
14039         * appdomain.c: Bump corlib version.
14040
14041 2004-02-01  Martin Baulig  <martin@ximian.com>
14042
14043         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
14044         method type arguments.  
14045
14046 2004-01-30  Duncan Mak  <duncan@ximian.com>
14047
14048         * marshal.h: Add prototype for
14049         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
14050         and
14051         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
14052         fix the build.
14053
14054 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
14055
14056         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
14057         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
14058
14059 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14060
14061         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14062         custom marshalling of valuetypes.
14063
14064         * marshal.c: Fix some warnings.
14065
14066 2004-01-29  Martin Baulig  <martin@ximian.com>
14067
14068         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
14069         for generic method parameters.
14070
14071         * reflection.c (method_encode_methodspec): Write the uninflated
14072         signature into the methodspec table.
14073         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
14074         is always the uninflated method.
14075         (reflection_methodbuilder_to_mono_method): Copy the generic
14076         parameters from the MethodBuilder into `header->gen_params'.
14077
14078 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14079
14080         * class.c (mono_class_from_generic_parameter): Fix warning.
14081
14082 2004-01-27  Martin Baulig  <martin@ximian.com>
14083
14084         * class.c (mono_class_from_generic_parameter): Don't create
14085         `klass->methods' here.  
14086
14087 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
14088
14089         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
14090         extension since it does not work with libraries named lib<FOO>.dll.so.
14091
14092 2004-01-25  Martin Baulig  <martin@ximian.com>
14093
14094         * class.c (mono_class_inflate_generic_type): Added support for
14095         MONO_TYPE_GENERICINST.
14096
14097         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
14098         inflate methods on open constructed types.      
14099
14100 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14101
14102         * object.c: fire ProcessExit event in the root AppDomain after running
14103         Main. Fixes bug #53299.
14104
14105 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
14106
14107         * socket-io.c: include the new socket-wrappers.h header.
14108         Use the wrappers instead of the unix socket functions to make the code
14109         more clear.
14110
14111 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
14112
14113         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
14114
14115         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14116         Fixes #22532.
14117
14118 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
14119
14120         * reflection.c (mono_image_create_pefile): Handle the case when the
14121         entry point is not a MethodBuilder.
14122
14123         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14124         field to ReflectionMethod since it is not allways a builder.
14125
14126         * reflection.c (type_get_fully_qualified_name): New helper function to
14127         return the fully qualified name of a type.
14128
14129         * reflection.c (encode_marshal_blob): Always emit the fully qualified
14130         type name for custom marshallers.
14131
14132         * reflection.c (mono_marshal_spec_from_builder): Ditto.
14133
14134         * class.c (mono_class_setup_vtable): If a parent class already 
14135         implements an interface, use the implementing methods from that class.
14136         Fixes #53148.
14137
14138 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14139
14140         * threadpool.c: just return instead of ExitThread to allow for thread
14141         clean up earlier.
14142
14143 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
14144
14145         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
14146         when closing resource modules.
14147
14148         * reflection.c (mono_image_create_pefile): Handle the case when the
14149         entry point is not a MethodBuilder.
14150
14151         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14152         field to ReflectionMethod since it is not allways a builder.
14153
14154 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14155
14156         * marshal.c (mono_marshal_get_managed_wrapper): 
14157         mono_marshal_alloc takes native int so CONV_I
14158         the arg for 64bits.
14159
14160 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
14161
14162         * reflection.c (fixup_cattrs): New function to fixup the methoddef
14163         tokens in the cattr table. Fixes #53108.
14164
14165 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14166
14167         * loader.c: don't trim ".dll" before looking up in the config file.
14168         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
14169
14170 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
14171
14172         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
14173         Return the module which contains the resource as well.
14174         (ves_icall_System_Reflection_Module_Close): New icall.
14175
14176         * appdomain.c: Bump corlib version number.
14177
14178         * image.c (mono_image_addref): New public function.
14179
14180         * assembly.c: Call mono_image_addref.
14181
14182         * reflection.c (mono_module_get_object): Increase reference count of 
14183         the image.
14184
14185         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14186         Fixes #22532.
14187
14188         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
14189         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
14190         proper exceptions on DllImport problems.
14191
14192 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
14193
14194         * class.c, metadata.c: eliminate CSIZE macro.
14195
14196 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
14197
14198         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
14199         * object.h: Added async_callback field in MonoAsyncResult.
14200         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
14201         * verify.c: Added async_callback in MonoAsyncResult layout.
14202
14203 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
14204
14205         * reflection.c (mono_reflection_get_custom_attrs): Add support
14206         for Modules.
14207
14208 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14209
14210         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
14211         marshalling.
14212         (mono_marshal_method_from_wrapper): Add null pointer check.
14213
14214 2004-01-16  Martin Baulig  <martin@ximian.com>
14215
14216         * debug-mono-symfile.h: Set version number to 36 and reflect
14217         latest symbol writer changes.
14218
14219 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14220
14221         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
14222         multi-dimensional arrays.
14223         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
14224         (mono_class_from_mono_type): Use bounded_array_class_get.
14225         
14226         * class.c (mono_bounded_array_class_get): New function which takes
14227         a 'bounded' bool argument to distinguish vectors from one dimensional
14228         arrays.
14229
14230         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
14231         bounded_array_class_get if the array has bounds.
14232
14233         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14234         Search modules loaded using AssemblyBuilder:AddModule as well.
14235
14236 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14237
14238         * appdomain.c: increased corlib version.
14239         * filewatcher.c: removed g_print.
14240         * icall.c:
14241         (get_property_info): only allocate what is actually requested.
14242         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
14243
14244 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14245
14246         * Makefile.am: added filewatcher.[ch]
14247         * filewatcher.[ch]: FileSystemWatcher runtime support.
14248         * icall.c: added new FSW icalls.
14249
14250 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
14251
14252         * string-icalls.c: fix stringbuilder regression as suggested by
14253         Iain McCoy <iain@mccoy.id.au>.
14254
14255 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14256
14257         * process.c (process_read_stringtable_block): Recognize '007f' as
14258         a language neutral stringtable block.
14259
14260 2004-01-12  Patrik Torstensson
14261
14262         * object.h (MonoStringBuilder) : Changed layout to support our
14263         new stringbuilder class.
14264         * marshal.c: Change marshalling to support the new layout of 
14265         string builder.
14266         * appdomain.c: increased version number because new layout of
14267         string builder.
14268
14269 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14270
14271         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14272         assembly name as an string instead of an AssemblyName, since it is
14273         easier to extract info from it.
14274
14275         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14276         the culture subdirectories too. Fixes #52231.
14277
14278 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14279
14280         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14281         It takes 2 new parameters with an optional name for the method to look
14282         for and case ignoring info.
14283
14284         * threadpool.c: removed unused variable.
14285
14286 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14287
14288         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14289         It takes 2 new parameters with an optional name for the property to look
14290         for and case ignoring info.
14291         Fixes bug #52753.
14292
14293 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14294
14295         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14296         Fix #52451.
14297
14298 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14299
14300         * appdomain.c:
14301         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14302         Fixes bug #52630.
14303
14304 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14305
14306         * reflection.c: Add support for more than one unmanaged resource.
14307
14308         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14309         in field->def_value, as done in all other cases.
14310
14311         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14312         TypeBuilders.
14313
14314         * reflection.c (mono_reflection_create_runtime_class): Remove 
14315         errorneous assignment to klass->element_class, since it is already
14316         done in mono_reflection_setup_internal_class.
14317
14318 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14319
14320         * gc.c: added missing LeaveCriticalSection.
14321         * icall.c: indented a couple of lines.
14322         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14323         if we call EndInvoke inside a callback. Fixes bug #52601.
14324
14325 2004-01-07  Martin Baulig  <martin@ximian.com>
14326
14327         * mono-debug-debugger.h
14328         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14329
14330 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14331
14332         * appdomain.c: Use messages in NotImplementedException.
14333
14334         * exception.c (mono_get_exception_not_implemented): Now this takes
14335         a message argument.
14336
14337         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14338         exception instead of g_asserting an aborting when something is not
14339         implemented.
14340
14341         Add some inline docs.
14342
14343 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14344
14345         * reflection.h: Update after changes to object layout.
14346
14347         * reflection.c: Implement saving of unmanaged aka win32 resources.
14348
14349         * appdomain.c: Bump version number.
14350
14351         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14352         Handle missing domains gracefully.
14353
14354 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14355
14356         * file-io.c : On Windows, there are much more invalid_path_chars.
14357
14358 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14359
14360         * class.h, object.c: prepare for GetType () speedup.
14361
14362 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14363
14364         * profiler.c: workaround for --profile null reference exception on
14365           cygwin. Patch by Patrik Torstensson.
14366
14367 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14368
14369         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14370         make work for unaligned access.
14371
14372 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14373
14374         * class.c: small cleanup (class->fields [i] -> field).
14375         * image.c: check address of metadata is valid.
14376
14377 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14378
14379         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14380         search the list of loaded assemblies.
14381
14382         * reflection.c (mono_reflection_type_from_name): Use 
14383         mono_assembly_loaded instead of mono_image_loaded.
14384
14385         * reflection.c: Fix warnings.
14386
14387 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
14388
14389         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
14390         is dynamic. This is needed since an assembly can contain both dynamic and
14391         non-dynamic images.
14392
14393         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
14394         assembly->dynamic.
14395
14396         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14397
14398         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14399         to store modules loaded using AddModule.
14400
14401         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14402         on Modules.
14403
14404         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14405
14406         * reflection.c (mono_image_fill_export_table_from_module): New function to
14407         fill out the EXPORTEDTYPES table from a module.
14408
14409         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14410         into a separate function. Also handle loaded non-dynamic modules.
14411
14412         * reflection.c (mono_image_basic_init): Fix memory allocation.
14413
14414         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14415
14416         * assembly.c (mono_assembly_load_references): Make this public.
14417
14418 2003-12-19  Martin Baulig  <martin@ximian.com>
14419
14420         * class.c (mono_class_initialize_generic): Made this static, take
14421         a `MonoGenericInst *' instead of a `MonoClass *'.
14422         (mono_class_from_generic): Call mono_class_initialize_generic()
14423         unless we're already initialized or being called from
14424         do_mono_metadata_parse_generic_inst().
14425
14426         * class.h (MonoGenericInst): Added `initialized' and
14427         `init_pending' flags.
14428
14429         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14430         `mono_class_init (gklass)' or mono_class_initialize_generic()
14431         here; set `generic_inst->init_pending' while parsing the
14432         `type_argv'.
14433
14434 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14435
14436         * locales.c: include string.h for memxxx prototypes
14437
14438 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14439
14440         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14441         constructor when accessing literal fields.
14442
14443 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14444
14445         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14446
14447         * reflection.c (assembly_add_resource_manifest): New function to fill
14448         the MANIFESTRESOURCE table.
14449
14450         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14451
14452         * reflection.h: Update to changes in class layout.
14453
14454         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14455         Reenable call to mono_runtime_is_shutting_down ().
14456
14457         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14458         determine if the runtime is shutting down.
14459
14460 2003-12-16  Jackson Harper <jackson@ximian.com>
14461
14462         * icall.c: comment out call to mono_runtime_is_shutting_down to
14463         fix build.
14464         
14465 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14466
14467         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14468         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14469
14470 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14471
14472         * reflection.c: move definition of swap_with_size
14473         to before its first call
14474
14475 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14476
14477         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14478
14479         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14480         icall.
14481
14482         * object.c: Fix warnings.
14483
14484         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14485         members if FlattenHierarchy is set.
14486
14487         * reflection.c (mono_image_add_decl_security): New function to emit
14488         declarative security.
14489
14490         * reflection.h reflection.c: Add support for declarative security.
14491
14492         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14493         
14494 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
14495
14496         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14497         
14498         * appdomain.c verify.c: Moved corlib version checking into its own
14499         function in appdomain.c since it needs to create vtables etc.
14500
14501 2003-12-13  Patrik Torstensson <p@rxc.se>
14502
14503         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
14504         instead of unwrapped server.
14505
14506 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
14507
14508         * verify.c (check_corlib): Fix field index.
14509
14510 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
14511
14512         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
14513         GetGacPath icall.
14514
14515 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
14516
14517         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
14518         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
14519         cope with sizeof(size_t) != sizeof(guint32).
14520
14521 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14522
14523         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
14524         in case of failure.
14525
14526 2003-12-10  Mark Crichton <crichton@gimp.org>
14527
14528         * icall.c: removed the GetNonZeroBytes.  We now handle this case
14529         in managed code.
14530
14531         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
14532
14533 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
14534
14535         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
14536         marked as deleted.
14537
14538 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
14539
14540         * verify.c (check_corlib): Handle the case when the version field is 
14541         initialized by a static constructor.
14542
14543 2003-12-08  Patrik Torstensson  <p@rxc.se>
14544
14545     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
14546
14547 2003-12-08  Martin Baulig  <martin@ximian.com>
14548
14549         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
14550         a MonoReflectionGenericParameter, also take the parameter index
14551         and name as arguments.
14552         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14553         (ves_icall_MonoGenericParam_initialize): New interncall.
14554         (ves_icall_Type_make_byref_type): New interncall.
14555
14556         * reflection.h (MonoReflectionGenericParam): Derive from
14557         MonoReflectionType, not just from MonoObject.  Added `refobj' and
14558         `index' fields.
14559
14560         * reflection.c (mono_reflection_define_generic_parameter): Create
14561         and return a new MonoReflectionGenericParam; don't initialize the
14562         constraints here.
14563         (mono_reflection_initialize_generic_parameter): New public method;
14564         initializes the constraints and creates the `param->pklass'.
14565
14566 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
14567
14568         * reflection.h reflection.c: Use the new fields 'num_types', 
14569         'num_fields' and 'num_methods' to track the number of types etc.
14570
14571         * verify.c (check_corlib): Check corlib version number.
14572
14573 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
14574
14575         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
14576         function works on all methods.
14577
14578 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
14579
14580         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
14581         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
14582         the custom_type_info flag of the transparent proxy.
14583         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
14584         objects that supports IRemotingTypeInfo.
14585         * object.h: Added custom_type_info field in transparent proxy.
14586
14587 2003-12-06  Martin Baulig  <martin@ximian.com>
14588
14589         * class.c (mono_class_create_from_generic): Removed.
14590         (mono_class_from_generic): Check `ginst->klass' before doing
14591         anything else.  This is important to fully support "recursive"
14592         generic types.
14593
14594         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
14595         empty `generic_inst->klass' before doing anything else.
14596
14597 2003-12-06  Dick Porter  <dick@ximian.com>
14598
14599         * verify.c: 
14600         * object.h:
14601         * icall.c:
14602         * locales.c: Use C structs to access class fields.  Don't do a
14603         conversion between MonoString and UChar because both are
14604         platform-endian UTF-16.  Compare now takes startindex and count
14605         parameters.  Add a char overload for IndexOf.  Speed up the
14606         invariant string IndexOf.
14607
14608 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
14609
14610         * Makefile.am (monosn_LDADD): Fix parallel build.
14611
14612 2003-12-04  Martin Baulig  <martin@ximian.com>
14613
14614         * icall.c
14615         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14616         (ves_icall_Type_make_array_type): New interncall.       
14617
14618 2003-12-04  Martin Baulig  <martin@ximian.com>
14619
14620         * locales.c: also change it in the !HAVE_ICU case.
14621
14622 2003-12-04  Dick Porter  <dick@ximian.com>
14623
14624         * icall.c:
14625         * locales.c: construct_compareinfo is now in CompareInfo, not
14626         CultureInfo.
14627
14628 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
14629
14630         * image.c (mono_image_load_file_for_image): Cache loaded images in the
14631         image->files array.
14632
14633         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
14634         table as well.
14635
14636         * assembly.c (mono_assembly_load_references): Only load references
14637         once.
14638
14639         * class.c (mono_class_from_name): Avoid linear search of the 
14640         EXPORTEDTYPE table.
14641
14642         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
14643
14644 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
14645
14646         * image.h (MonoImage): Add 'field_cache' field.
14647
14648         * loader.c (mono_field_from_token): Cache field lookups.
14649         
14650         * reflection.c (mono_module_get_object): Fix name property.
14651
14652         * icall.c (ves_icall_get_enum_info): Update after changes to 
14653         mono_metadata_get_constant_index ().
14654
14655         * icall.c: Get rid of get_type_info icall, use a separate icall for
14656         each type property to avoid needless memory allocations. Fixes #51514.
14657
14658         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
14659         to avoid needless binary searches.
14660
14661         * class.c (class_compute_field_layout): Move the initialization of
14662         field->def_value to mono_class_vtable ().
14663
14664         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
14665         non-corlib types.
14666
14667         * object.c (mono_object_allocate): Make it inline.
14668
14669         * object.c (mono_object_allocate_spec): Make it inline.
14670         
14671 2003-12-02  Dick Porter  <dick@ximian.com>
14672
14673         * locales.c (create_NumberFormat): NumberFormatInfo construction.
14674         Patch by Mohammad DAMT (mdamt@cdl2000.com).
14675
14676 2003-12-01  Dick Porter  <dick@ximian.com>
14677
14678         * threads.c: Fix signature and call in CreateMutex and
14679         CreateEvent.
14680
14681 2003-12-01  Dick Porter  <dick@ximian.com>
14682
14683         * icall.c: 
14684         * locales.c: Implement string compares and searching
14685
14686         * object.h: Add extra Thread field
14687
14688 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
14689
14690         * reflection.c (fixup_method): Add support for MonoCMethod.
14691
14692 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
14693
14694         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
14695
14696         * reflection.c (assembly_name_to_aname): Allow extra characters in
14697         assembly names. Fixes #51468.
14698
14699 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
14700
14701         * exception.c (mono_exception_from_name_domain): New helper function.
14702
14703         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
14704         exception object in the correct domain.
14705
14706         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
14707         formatting + make a copy a the input data.
14708
14709         * loader.c (mono_get_method_from_token): Methods which contain
14710         native code do not have entries in the ImplMap.
14711
14712         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
14713         Thanks to Gonzalo for spotting this.
14714         
14715         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
14716         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
14717
14718         * assembly.h (mono_assembly_load_from): Split the second part of 
14719         assembly loading into a new public function.
14720
14721         * exception.h (mono_get_exception_bad_image_format): New function.
14722
14723 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
14724
14725         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14726         Enumerate all modules inside a dynamic assembly. Fixes #51293.
14727         
14728         * icall.c: Add new icall for creating dynamic methods.
14729
14730         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
14731
14732         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
14733
14734         * reflection.c (mono_reflection_create_dynamic_method): New icall to
14735         create a dynamic method.
14736
14737         * reflection.c (resolve_object): New helper function.
14738
14739         * reflection.c: Generalize ReflectionMethodBuilder and the functions
14740         which manipulate it so they can also work on dynamic methods.
14741
14742         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
14743         creating the MonoReflectionMethodAux structure if it is not needed.
14744         
14745         * reflection.h verify.c: Update after changes to object layout.
14746
14747         * reflection.c (method_builder_encode_signature): Fix compilation on
14748         gcc 2.95.x.
14749
14750 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
14751
14752         * appdomain.h: Added support for context static fields. Added static_data
14753           field to MonoAppContext and renamed thread_static_fields to a more
14754           generic special_static_fields in MonoAppDomain, since it can now contain
14755           context static fields.
14756         * domain.c: Updated hashtable name.
14757         * object.c: Replaced field_is_thread_static() for a more generic
14758           field_is_special_static() which also checks for context static attribute.
14759           In mono_class_vtable(), added support for static context fields.
14760         * threads.c: Changed methods that manage thread static fields to more
14761           generic methods so they can be reused both for thread and context static
14762           data.
14763         * threads.h: Declared some new methods.
14764
14765 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
14766
14767         * reflection.h: Update after changes to the managed types.
14768
14769         * reflection.c (encode_custom_modifiers): New helper function.
14770
14771         * reflection.c (method_encode_signature): Emit custom modifiers.
14772
14773         * reflection.c (field_encode_signature): Emit custom modifiers.
14774
14775 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
14776
14777         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
14778
14779         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
14780         implementation.
14781
14782         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
14783         icall.
14784
14785         * object.c (mono_field_get_value_object): New function.
14786
14787         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
14788         specific.
14789
14790 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
14791
14792         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
14793         return a preallocated out-of-memory exception instance.
14794
14795         * object.c (out_of_memory): Use the new function.
14796
14797         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
14798         flag is before the custom modifiers. Fixes #49802.
14799
14800 2003-11-16  Martin Baulig  <martin@ximian.com>
14801
14802         * class.c (mono_class_is_open_constructed_type): Implemented the
14803         MONO_TYPE_GENERICINST case.
14804
14805 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
14806
14807         * assembly.c (mono_assembly_fill_assembly_name): New function to
14808         fill out the MonoAssemblyName structure.
14809         (mono_assembly_open): Use the new function.
14810
14811         * icall.c (fill_reflection_assembly_name): New helper function.
14812
14813         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
14814         new function.
14815
14816         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
14817
14818 2003-11-15  Martin Baulig  <martin@ximian.com>
14819
14820         * class.c (mono_class_is_open_constructed_type): New public
14821         function; checks whether a type is an open constructed type,
14822         ie. whether it still contains type parameters.
14823         (mono_class_inflate_generic_type): If we're a type parameter and
14824         the inflated type is also a MONO_TYPE_(M)VAR, return the original
14825         type.
14826
14827         * class.h (MonoGenericInst): Added `guint32 is_open'.
14828
14829         * loader.c (method_from_methodspec): Check whether we're an open
14830         or closed constructed type and set `ginst->is_open'.
14831
14832         * reflection.c (mono_reflection_bind_generic_parameters): Check
14833         whether we're an open or closed constructed type and set
14834         `ginst->is_open'.
14835         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
14836         from open constructed types.
14837
14838 2003-11-15  Martin Baulig  <martin@ximian.com>
14839
14840         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14841         a generic instance (instead of a generic type declaration) with
14842         unbound generic parameters, bind them to our actual types.
14843
14844 2003-11-14  Martin Baulig  <martin@ximian.com>
14845
14846         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
14847
14848         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14849         an interface type, populate `res->interfaces' with instantiated
14850         versions of all the interfaces we inherit.
14851
14852 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
14853
14854         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
14855         when MONO_PATH is set but doesn't contain the install dir.
14856
14857 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14858
14859         * icall.c:
14860         (ves_icall_Type_GetInterfaces): don't return an interface twice when
14861         it's also implemented in base classes. Fixes bug #50927.
14862
14863 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
14864
14865         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
14866         if this method is called from a finalizer. Fixes #50913.
14867
14868 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
14869
14870         * threads.c: Implement VolatileRead/VolatileWrite
14871
14872         * icall.c: Add new icalls for VolatileRead/VolatileWrite
14873
14874 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14875
14876         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
14877         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
14878         2.95.3.
14879
14880         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
14881         from Peter Ross (pro@missioncriticalit.com).
14882         
14883 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
14884
14885         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
14886
14887 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14888
14889         * assembly.c (mono_assembly_load_references): Disable check because it
14890         triggers on older corlibs which lots of people have.
14891
14892 2003-11-12  Jackson Harper  <jackson@ximian.com>
14893
14894         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
14895         load corlib.dll if mscorlib.dll is not found.
14896         * assembly.h: Remove corlib name define.
14897         * class.c:
14898         * domain.c:
14899         * image.c: Change corlib name to mscorlib.
14900         
14901 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14902
14903         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
14904
14905 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
14906
14907         * appdomain.h: Added loader_optimization here to sync with the C#
14908         code, and add disallow_binding_redirects field.
14909
14910 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
14911
14912         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
14913
14914         * reflection.c (mono_image_build_metadata): Fix crash on modules
14915         with no types.
14916
14917         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
14918
14919         * icall.c (ves_icall_get_method_info): Return callingConvention as
14920         well.
14921
14922         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
14923         namespaces from the EXPORTEDTYPE table as well.
14924
14925         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
14926         from all modules inside the assembly.
14927         
14928 2003-11-11  Martin Baulig  <martin@ximian.com>
14929
14930         * reflection.c (mono_reflection_bind_generic_parameters): Make
14931         this work for interfaces.
14932
14933 2003-11-11  Martin Baulig  <martin@ximian.com>
14934
14935         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
14936
14937 2003-11-11  Martin Baulig  <martin@ximian.com>
14938
14939         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
14940         "MonoInflatedMethod" and "MonoInflatedCtor".
14941
14942 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
14943
14944         * reflection.c (resolution_scope_from_image): Use the assembly table
14945         from the manifest module, since other modules don't have it.
14946
14947         * debug-helpers.c (mono_type_full_name): New helper function.
14948
14949         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
14950
14951         * image.c (mono_image_load_file_for_image): New public function which
14952         is a replacement for the load_file_for_image in class.c.
14953
14954         * assembly.c (mono_assembly_load_module): A wrapper for the function
14955         above which does assembly association and reference loading too.
14956
14957         * class.c (mono_class_from_name): Call mono_assembly_load_module.
14958
14959 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14960
14961         * appdomain.c: not all of the attributes for the full assembly name
14962         are required and the order doesn't matter. Fixes bug #50787.
14963
14964 2003-11-10  Dick Porter  <dick@ximian.com>
14965
14966         * locales.c: Use platform-endian UTF16
14967
14968 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
14969
14970         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
14971         
14972 2003-11-10  Martin Baulig  <martin@ximian.com>
14973
14974         * metadata.c
14975         (mono_metadata_load_generic_params): Make this actually work.
14976
14977         * reflection.c (mono_reflection_bind_generic_parameters): If our
14978         parent is a generic instance, pass all the `types' to it, no
14979         matter whether it has the same number of type parameters or not.
14980
14981 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
14982
14983         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
14984
14985         * assembly.c (mono_assembly_load_references): Move the image<->assembly
14986         assignment code to this function so it gets called recursively for all
14987         modules.
14988
14989         * image.c (load_modules): Remove the assembly assignment since it is
14990         now done by mono_assembly_load_references.
14991         
14992         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14993         Add 'module' argument.
14994         (mono_module_get_types): New helper function.
14995         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
14996
14997 2003-11-08  Martin Baulig  <martin@ximian.com>
14998
14999         * class.c (mono_class_inflate_generic_method): Interface method
15000         don't have a header.
15001
15002         * reflection.c (mono_image_get_methodspec_token): Take an
15003         additional `MonoGenericInst *' argument instead of reading it from
15004         the header; this is necessary to support interfaces.
15005         (mono_image_create_token): Pass the `MonoGenericInst *' from the
15006         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
15007         (inflated_method_get_object): Take an additional `MonoGenericInst *'
15008         argument.
15009
15010         * reflection.h (MonoReflectionInflatedMethod): Added
15011         `MonoGenericInst *ginst'.
15012
15013 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
15014
15015         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
15016
15017 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
15018
15019         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
15020
15021 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
15022
15023         * reflection.c 
15024         (reflection_methodbuilder_from_method_builder):
15025         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
15026         initialize a ReflectionMethodBuilder structure.
15027         (mono_image_get_methodbuilder_token):
15028         (mono_image_get_ctorbuilder_token): New functions to emit memberref
15029         tokens which point to types in another module inside the same assembly.
15030
15031         * reflection.c: Use the new helper functions.
15032         
15033         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
15034
15035         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
15036         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
15037
15038         * reflection.c (resolution_scope_from_image): Emit a moduleref if
15039         neccesary.
15040
15041         * reflection.c (mono_image_build_metadata): Emit metadata only for the
15042         current module. Emit the manifest only for the main module.
15043
15044         * reflection.c (mono_image_create_token): Add assertion when a 
15045         memberref needs to be created.
15046
15047         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
15048
15049         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
15050         larger buffer for the custom attribute blob. Fixes #50637.
15051         
15052 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15053
15054         * threadpool.c: notify listener on async processing handles after
15055         invoking the async callback. Thanks to Zoltan.
15056
15057 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15058
15059         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
15060         avoid code duplication.
15061
15062         * reflection.h (MonoDynamicImage): New type which is currently unused,
15063         but will be used through the ref.emit code in place of 
15064         MonoDynamicAssembly.
15065
15066         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15067         object layout.
15068
15069         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
15070         a MonoDynamicImage instead of just a MonoImage.
15071         
15072         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
15073         icalls to ModuleBuilder but keep their semantics, so they will work
15074         with moduleb->assemblyb. This will change later.
15075         
15076 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15077
15078         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15079         object layout.
15080
15081         * reflection.c (mono_image_build_metadata): Avoid creation of a default
15082         main module, since it is now done by the managed code.
15083
15084 2003-11-03  Martin Baulig  <martin@ximian.com>
15085
15086         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
15087         `ginst->klass' here.
15088         (method_encode_methodspec): Don't use the `ginst->generic_method's
15089         klass if it's a generic instance, use `ginst->klass' in this case.
15090
15091 2003-11-03  Martin Baulig  <martin@ximian.com>
15092
15093         * reflection.c (mono_image_get_generic_method_param_info):
15094         Removed, use mono_image_get_generic_param_info() instead.
15095         (mono_image_get_type_info): Write the GenericParam table before
15096         the Method table.  This is neccessary because in the GenericParam
15097         table, type parameters of the class (ie. '!0' etc.) must come
15098         before the ones from its generic methods (ie. '!!0' etc).
15099
15100 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15101
15102         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
15103
15104 2003-11-02  Martin Baulig  <martin@ximian.com>
15105
15106         * reflection.c (create_generic_typespec): Take a
15107         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
15108         the generic parameters from it.
15109
15110 2003-11-02  Martin Baulig  <martin@ximian.com>
15111
15112         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
15113         instead of a `MonoClassField *' since we just need the type.
15114         (create_generic_typespec): New static function.  Creates a
15115         TypeSpec token for a generic type declaration.
15116         (mono_image_get_generic_field_token): New static function.
15117         (mono_image_create_token): If we're a FieldBuilder in a generic
15118         type declaration, call mono_image_get_generic_field_token() to get
15119         the token.
15120
15121 2003-11-02  Martin Baulig  <martin@ximian.com>
15122
15123         * reflection.h
15124         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
15125         `MonoReflectionGenericInst *declaring_type' and
15126         `MonoReflectionGenericInst *reflected_type' fields.
15127
15128         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
15129         `MonoReflectionGenericInst *declaring_type' and a
15130         `MonoReflectionGenericInst *reflected_type' argument instead of a
15131         single `MonoReflectionGenericInst *type' one.  Set
15132         `res->declaring_type' and `res->reflected_type' from them.
15133         (mono_reflection_inflate_field): Likewise.      
15134
15135 2003-11-02  Martin Baulig  <martin@ximian.com>
15136
15137         * class.c (mono_class_setup_vtable): Don't store generic methods
15138         in the vtable.  
15139
15140 2003-11-02  Martin Baulig  <martin@ximian.com>
15141
15142         * reflection.h (MonoReflectionGenericInst): Added
15143         `MonoReflectionType *declaring_type'.
15144
15145         * reflection.c (mono_reflection_bind_generic_parameters): Use
15146         `if (tb->parent)' instead of `klass->parent'.
15147
15148 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
15149
15150         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
15151         with an empty ASSEMBLY table.
15152
15153         * reflection.c (mono_image_build_metadata): Avoid using the same loop
15154         variable in the inner and outer loops.
15155
15156 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15157
15158         * metadata.h (mono_metadata_make_token): Put parentheses around macro
15159         argument.
15160
15161         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
15162         
15163         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
15164         icalls. Instead, do everything in managed code. This is needed since
15165         it is hard to restore the original domain etc. in unmanaged code in the
15166         presence of undeniable exceptions.
15167
15168         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
15169         New icalls to push and pop appdomain refs.
15170
15171 2003-10-31  Martin Baulig  <martin@ximian.com>
15172
15173         * class.c (inflate_generic_type): Renamed to
15174         mono_class_inflate_generic_type() and made it public.
15175
15176         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
15177         New interncall.
15178
15179         * loader.c (mono_field_from_memberref): Also set the retklass for
15180         typespecs.
15181
15182         * fielder.c (mono_image_get_inflated_field_token): New static
15183         method; creates a metadata token for an inflated field.
15184         (mono_image_create_token, fixup_method): Added support for
15185         "MonoInflatedField".
15186         (fieldbuilder_to_mono_class_field): New static function.
15187         (mono_reflection_inflate_field): New public function.
15188
15189         * reflection.h
15190         (MonoReflectionGenericInst): Added `MonoArray *fields'.
15191         (MonoReflectionInflatedField): New typedef.     
15192
15193 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
15194
15195         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
15196         for Solaris and other platforms without s6_addr16
15197
15198 2003-10-30  Martin Baulig  <martin@ximian.com>
15199
15200         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
15201         argument instead of two.
15202         (mono_class_inflate_generic_signature): Likewise.
15203         (inflate_generic_header): Likewise.
15204         (mono_class_inflate_generic_method): Likewise.  In addition, if
15205         `ginst->klass' is set, it becomes the new `method->klass'.
15206
15207         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
15208         field.
15209
15210         * reflection.c (encode_generic_method_sig): Write a 0xa as the
15211         first byte. [FIXME]
15212         (method_encode_methodspec): If we have generic parameters, create
15213         a MethodSpec instead of a MethodRef.
15214         (fixup_method): Added support for "MonoInflatedMethod" and
15215         "MonoInflatedCtor".
15216         (mono_image_create_token): Added support for "MonoInflatedMethod"
15217         and "MonoInflatedCtor".
15218         (inflated_method_get_object): New static function; returns a
15219         managed "System.Reflection.MonoInflatedMethod" object.
15220         (mono_reflection_bind_generic_method_parameters): Return a
15221         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
15222         (mono_reflection_inflate_method_or_ctor): Likewise.
15223         (mono_image_get_generic_method_param_info): Initialize unused
15224         fields to zero.
15225         (mono_image_get_generic_param_info): Likewise.
15226
15227         * reflection.h (MonoReflectionInflatedMethod): New public
15228         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
15229         "S.R.MonoInflatedCtor" classes.
15230
15231         * loader.c (method_from_memberref): If we're a TypeSpec and it
15232         resolves to a generic instance, inflate the method.
15233
15234 2003-10-28  Dick Porter  <dick@ximian.com>
15235
15236         * object.c (mono_runtime_run_main): Convert command-line arguments
15237         into utf8, falling back to the user's locale encoding to do so.
15238
15239 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
15240
15241         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
15242         at this time.
15243
15244         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
15245
15246         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
15247         up icalls at method definition time. Partially fixes #33569.
15248
15249 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
15250
15251         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
15252         marshalling of arrays. Fixes #50116.
15253
15254         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15255
15256         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15257         points to a vtable in the dying appdomain.
15258
15259         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15260         listeners into unmanaged code inside the lock.
15261
15262         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15263         domains and add some comments.
15264
15265 2003-10-25  Martin Baulig  <martin@ximian.com>
15266
15267         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15268
15269         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15270
15271         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15272         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15273         currently parsing.  Create the generic class and store it in
15274         `generic_inst->klass' before parsing the type arguments.  This is
15275         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15276         for an example.
15277         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15278         to support recursive typespec entries.
15279
15280         * class.c (mono_class_setup_parent): If our parent is a generic
15281         instance, we may get called before it has its name set.
15282         (mono_class_from_generic): Splitted into
15283         mono_class_create_from_generic() and mono_class_initialize_generic().
15284
15285 2003-10-25  Martin Baulig  <martin@ximian.com>
15286
15287         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15288         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15289         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15290         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15291
15292         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15293         (create_typespec): Likewise.
15294         (mono_reflection_bind_generic_parameters): Return a
15295         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15296         (mono_reflection_inflate_method_or_ctor): New public function.
15297
15298         * reflection.h (MonoReflectionGenericInst): New typedef.        
15299
15300 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15301
15302         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15303         inside the domain lock. Fixes #49993.
15304         
15305         * object.c (mono_class_vtable): When typed allocation is used, 
15306         allocate vtables in the GC heap instead of in the mempool, since the
15307         vtables contain GC descriptors which are used by the collector even
15308         after the domain owning the mempool is unloaded.
15309
15310         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15311
15312         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15313         reflect what it does. Also invalidate mempools instead of freeing
15314         them if a define is set.
15315
15316         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15317         of the appdomain.
15318         
15319         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15320         hold the finalizable objects in this domain.
15321
15322         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15323         appdomain.
15324
15325         * appdomain.c (mono_domain_set): New function to set the current
15326         appdomain, but only if it is not being unloaded.
15327
15328         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15329         appdomain which is being unloaded.
15330         
15331         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15332         unloading of the root appdomain.
15333
15334         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15335         icall to execute a method in another appdomain. Intended as a 
15336         replacement for InternalSetDomain, which can confuse the code 
15337         generation in the JIT.
15338
15339         * appdomain.c (mono_domain_is_unloading): New function to determine
15340         whenever an appdomain is unloading.
15341
15342         * appdomain.c (mono_domain_unload): New function to correctly unload
15343         an appdomain.
15344
15345         * assembly.c (mono_assembly_load_references): Check that an assembly
15346         does not references itself.
15347
15348         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15349         domain manually, it asks the finalizer thread to do it, then waits for
15350         the result. Also added a timeout.
15351
15352         * icall.c: Register the new icalls.
15353
15354         * threads.h threads.c: Export the mono_gc_stop_world and 
15355         mono_gc_start_world functions.
15356         
15357         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15358         function to fill out the mempool with 0x2a.
15359
15360 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15361
15362         * reflection.h (MonoReflectionMethodAux): New structure to store
15363         information which is rarely used, thus is not in the MonoMethod
15364         structure.
15365
15366         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15367         store the aux info.
15368
15369         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15370         and marshalling info into the aux structure.
15371
15372         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15373         from the aux structure.
15374
15375         * loader.c (mono_method_get_param_names): Retrieve the param names from
15376         the aux structure.
15377         
15378 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15379
15380         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15381         warning.
15382
15383 2003-10-21  Dick Porter  <dick@ximian.com>
15384
15385         * socket-io.c
15386         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
15387         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
15388
15389 2003-10-21  Martin Baulig  <martin@ximian.com>
15390
15391         * reflection.c (mono_reflection_bind_generic_parameters):
15392         `klass->parent' is NULL for interfaces.
15393
15394 2003-10-21  Martin Baulig  <martin@ximian.com>
15395
15396         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15397
15398 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15399
15400         * exception.c (mono_exception_from_name_msg): New helper function for
15401         creating exceptions and initializing their message field.
15402
15403         * exception.c: Simplify functions using the new helper.
15404
15405         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15406         New function.
15407
15408         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15409         mono_raise_exception, since otherwise gcc doesn't generate the function
15410         epilog for raise_exception, confusing the stack unwinding in the JIT.
15411         Fixes #45043.
15412
15413         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15414         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15415         Fixes #49499.
15416
15417 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15418
15419         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15420         utf8.
15421
15422 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15423
15424         * icall.c: Removed GetUninitializedObject method because
15425           AllocateUninitializedClassInstance does the same.
15426
15427 2003-10-18  Martin Baulig  <martin@ximian.com>
15428
15429         * class.c (inflate_generic_signature): Renamed to
15430         mono_class_inflate_generic_signature() and made it public.
15431         (my_mono_class_from_generic_parameter): New static function; if we
15432         don't already have the generic parameter's MonoClass, create a
15433         very simple one which is just used internally in the runtime and
15434         not passed back to managed code.
15435
15436         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15437
15438         * metadata.h (MonoMethodSignature): Moved the
15439         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15440         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15441
15442         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15443         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15444         interncall on the MonoMethod class, not on MethodInfo.
15445         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15446         calling mono_reflection_bind_generic_method_parameters() directly.
15447
15448         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15449         return the already computed `method->signature'.
15450         (method_from_methodspec): New static function to load a method
15451         from a MethodSpec entry.
15452         (mono_get_method_from_token): Call the new method_from_methodspec()
15453         for MethodSpec tokens.  
15454         (mono_get_method_from_token): If we're a generic method, load the
15455         type parameters.
15456
15457         * reflection.c (mono_image_get_memberref_token): Allow
15458         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15459         table.
15460         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15461         (mono_image_create_token): First check whether it's a generic
15462         method (so we'd need to create a MethodSpec), then do the other
15463         two alternatives.
15464         (mono_reflection_bind_generic_method_parameters): Return a
15465         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15466         called directly from the interncall.
15467
15468 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15469
15470         * reflection.c (load_public_key): Move loading of the public key
15471         into managed code.
15472
15473         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15474
15475         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15476         fields.
15477
15478         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15479         culture, hash_alg and public_key. Fixes #49555.
15480
15481 2003-10-17  Martin Baulig  <martin@ximian.com>
15482
15483         * class.h (MonoGenericInst): Moved this declaration here and added
15484         `MonoMethod *generic_method'.
15485
15486         * icall.c
15487         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15488         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15489
15490         * metadata.c (mono_metadata_type_equal): Two types of
15491         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15492         index; ie. don't compare the address of the `MonoGenericParam'
15493         structure.
15494         (mono_metadata_load_generic_params): Removed the `MonoMethod
15495         *method' argument.
15496
15497         * metadata.h (MonoGenericInst): Moved declaration to class.h.
15498         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
15499
15500         * reflection.c (method_encode_signature): Encode the number of
15501         generic parameters.
15502         (encode_generic_method_sig): New static function.
15503         (method_encode_methodspec): New static function; creates an entry
15504         in the MethodSpec table for a generic method.
15505         (mono_image_get_methodspec_token): New static function.
15506         (mono_image_create_token): Call mono_image_get_methodspec_token()
15507         for generic methods.
15508         (mono_reflection_bind_generic_method_parameters): New public
15509         function.  Instantiates a generic method.
15510
15511 2003-10-16  Martin Baulig  <martin@ximian.com>
15512
15513         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
15514         *gen_params' here from MonoMethodHeader.
15515
15516         * metadata.c (mono_metadata_parse_method_signature): If we have
15517         generic parameters, initialize `method->gen_params' and then set
15518         the correct `type->data.generic_param' in all the parameters.
15519
15520 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
15521
15522         * threads.c (mono_threads_get_default_stacksize): New function to 
15523         return the default stacksize.
15524
15525         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
15526         termination of the finalizer thread, since the previous method had
15527         race conditions. Fixes #49628.
15528
15529         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
15530         as for the other managed threads.
15531
15532 2003-10-16  Martin Baulig  <martin@ximian.com>
15533
15534         * class.c (inflate_generic_signature): Copy `generic_param_count'
15535         and `gen_params'.
15536
15537         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
15538         New interncall.
15539
15540         * metadata.c (mono_metadata_parse_method_signature): Actually set
15541         the `method->generic_param_count' here.
15542         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
15543
15544 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
15545
15546         * object.h: Add a new field to TypedRef to simplify the implementation
15547         of the REFANY opcodes in the JIT.
15548
15549         * icall.c: Make use of the new field.
15550
15551         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
15552         dynamically.
15553
15554 2003-10-15  Martin Baulig  <martin@ximian.com>
15555
15556         * class.c (mono_class_from_gen_param): Renamed to
15557         mono_class_from_generic_parameter() and moved most of the
15558         functionality from mono_reflection_define_generic_parameter()
15559         here; ie. we create a "real" class here.
15560         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
15561         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
15562         previously been called.
15563
15564         * class.h (MonoGenericParam): Moved the declaration of this struct
15565         here from metadata.h and added `MonoMethod *method'.
15566
15567         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
15568         interncall.
15569
15570         * loader.c (mono_get_method_from_token): If we have any generic
15571         parameters, call mono_metadata_load_generic_params() to read them
15572         from the MONO_TABLE_GENERICPAR.
15573
15574         * metadata.c (mono_metadata_load_generic_params): Added
15575         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
15576
15577         * metadata.h (MonoMethodSignature): Replaced
15578         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
15579         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
15580
15581         * reflection.c (mono_reflection_define_generic_parameter): Moved
15582         most of the functionality into the new
15583         mono_class_from_generic_parameter(); set the `method' field if
15584         we're a method parameter.       
15585
15586 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
15587
15588         * marshal.c (emit_struct_conv): if native size is 0
15589         emit no code.
15590
15591 2003-10-14  Martin Baulig  <martin@ximian.com>
15592
15593         * icall.c: The generics API has changed in the spec since it was
15594         added to System.Type; these modifications make it match the spec
15595         again.
15596         (ves_icall_Type_GetGenericParameters): Renamed to
15597         `ves_icall_Type_GetGenericArguments'.
15598         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
15599         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
15600         `ves_icall_MonoType_get_HasGenericArguments'.
15601         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
15602         `ves_icall_MonoType_get_IsGenericParameter'.
15603         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
15604         this is no interncall anymore.
15605         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
15606         `ves_icall_TypeBuilder_get_IsGenericParameter'.
15607
15608 2003-10-14  Martin Baulig  <martin@ximian.com>
15609
15610         * reflection.c (mono_reflection_bind_generic_parameters): Also
15611         inflate generic methods if we're reading the class from IL.
15612
15613 2003-10-13  Martin Baulig  <martin@ximian.com>
15614
15615         * reflection.c (mono_reflection_define_generic_parameter): This
15616         method isn't called directly from the icall anymore; take a
15617         `MonoReflectionAssemblyBuilder *' so we can use this for type and
15618         method generic parameters.
15619         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
15620         (method_builder_encode_signature): Encode generic parameters.
15621         (mono_image_get_method_info): Write generic params to the
15622         MONO_TABLE_GENERICPARAM table.
15623
15624         * reflection.h (MonoReflectionMethodBuilder): Added
15625         `MonoArray *generic_params'.
15626
15627         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
15628
15629         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
15630         wrapper for mono_reflection_define_generic_parameter().
15631         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
15632
15633 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
15634
15635         * marshal.h: Add missing function to fix build.
15636
15637         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
15638         the SetLastError pinvoke attribute.
15639
15640         * marshal.c (mono_marshal_set_last_error): New helper function called
15641         by the generated code.
15642         
15643         * marshal.c (mono_mb_emit_branch): New helper function.
15644
15645         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
15646
15647         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15648         classes as parameters and return values of delegates. Fixes #29256. 
15649
15650 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
15651
15652         * locales.c: use gint32 in non HAVE_ICU case
15653
15654 2003-10-11  Martin Baulig  <martin@ximian.com>
15655
15656         * mono-debug.c (mono_debug_add_method): Added a workaround for
15657         bug #48591.
15658
15659 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
15660
15661         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
15662         delegates passed to native code must use the STDCALL calling 
15663         convention. Fixes #35987.
15664
15665 2003-10-10  Martin Baulig  <martin@ximian.com>
15666
15667         * class.c (inflate_generic_type): If we're inflating for a generic
15668         type instance (and not for a generic method), return
15669         MONO_TYPE_MVAR unchanged.
15670
15671 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15672
15673         * string-icalls.c: Join ignores null strings in the source array.
15674         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
15675         * threads.c: GetAvailableTheads is slightly more accurate.
15676
15677 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
15678
15679         * threads.h threads.c : add mono_threads_set_default_stacksize
15680         and pass default to CreateThread calls.
15681
15682 2003-10-09  Dick Porter  <dick@ximian.com>
15683
15684         * icall.c:
15685         * locales.h:
15686         * locales.c: Internal calls for constructing CultureInfo and
15687         related objects from libicu (if its available.)
15688
15689 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
15690
15691         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
15692
15693 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15694
15695         * threadpool.c: added an argument to async_invoke_thread that is the
15696         item to process, pass the MonoAsyncResult to the thread start function
15697         when creating a new thread. This way we don't need to acquire any lock
15698         when we're creating a new thread. Readded a semaphore for faster
15699         response times (instead of that Sleep i added).
15700
15701 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
15702
15703         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
15704         get daylight change dates better on Windows, fix handling
15705         of platforms without tm_gmtoff.
15706
15707 2003-10-06  Martin Baulig  <martin@ximian.com>
15708
15709         * class.c (inflate_generic_method): Renamed to
15710         mono_class_inflate_generic_method() and made public.
15711         (mono_class_init): Don't inflate the generic methods here.
15712         (mono_class_from_generic): Added `gboolean inflate_methods'
15713         argument.  Inflate the methods here.
15714
15715         * loader.c (mono_method_get_param_names): Ignore instances of
15716         generic types for the moment.
15717
15718         * reflection.c (fixup_method): Added support for inflated methods.
15719         (mono_image_create_token): Use mono_image_get_methodref_token()
15720         for inflated methods.
15721         (mono_custom_attrs_from_param): Ignore instances of generic types
15722         for the moment.
15723         (mono_reflection_bind_generic_parameters): New public function.
15724         Moved all the functionality from
15725         ves_icall_Type_BindGenericParameters() here and added support for
15726         dynamic types.
15727         (mono_reflection_define_generic_parameter): Initialize
15728         `klass->methods' here.
15729
15730         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
15731         functionality into mono_reflection_define_generic_parameter().
15732         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
15733         TypeBuilder, return that TypeBuilder.
15734
15735 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15736
15737         * appdomain.c: removed mono_delegate_semaphore.
15738
15739         * threadpool.c:
15740         (mono_thread_pool_add): moved hash table creation inside and the thread 
15741         creation outside of the critical region.
15742         (mono_thread_pool_finish): removed obsolete code.
15743         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
15744         continue or exit the thread depending on the queue.
15745
15746 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
15747
15748         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
15749         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
15750         handle more bool marshalling options
15751
15752 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
15753
15754         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
15755         arrays of structs. Also add a more descriptive error message when
15756         a structure member is marshalled as LPArray.
15757
15758 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
15759
15760         * marshal.c (mono_marshal_get_native_wrapper): Add support for
15761         marshalling arrays of complex types. Fixes #29098. Also remove an
15762         usused and incomplete function.
15763
15764 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
15765
15766         * gc.c: report heap_size - free_bytes as total memory allocated
15767         (bug#49362).
15768
15769 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
15770
15771         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
15772         fix timezone handling problems on Windows.
15773         
15774         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
15775         asserts when the year is outside the range handled by ms the functions.
15776
15777         * class.c (setup_interface_offsets): If the class is an interface,
15778         fill out its interface_offsets slot.
15779
15780 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15781
15782         * threadpool.c: mark threadpool threads as background.
15783
15784 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
15785
15786         * decimal.c - define DECINLINE to nothing if not using GCC
15787
15788 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
15789
15790         * assembly.c: More refcount fixes.
15791
15792 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15793
15794         * string-icalls.c: if we're not trimming, return the same string.
15795         When not splitting, don't create a new string.
15796
15797 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15798
15799         * image.c:
15800         (mono_image_open): increment the ref_count inside the critical section.
15801
15802 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
15803
15804         * image.c (mono_image_open): Fix reference counting bug.
15805
15806 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
15807
15808         * marshal.c (mono_marshal_type_size) struct alignment changed for 
15809         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
15810         64bits. Avoid leak in mono_marshal_get_native_wrapper when
15811         mono_lookup_pinvoke_call throws.        
15812
15813 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
15814
15815         * reflection.c (mono_reflection_parse_type): Fix #49114.
15816
15817         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
15818         temporary workaround for cygwin header problem.
15819
15820         * object.c (mono_object_isinst): Synchronize this with the code
15821         generated by the JIT for casts.
15822
15823 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
15824
15825         * reflection.c (encode_type): Fix #38332.
15826
15827 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
15828
15829         * marshal.c (mono_marshal_method_from_wrapper): New function to return
15830         the original method from the wrapper method.
15831
15832 2003-09-25  Martin Baulig  <martin@ximian.com>
15833
15834         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
15835         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
15836         (ves_icall_Type_get_IsGenericInstance): New interncall.
15837
15838 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
15839
15840         * object.c: fix cast warning in big endian code.
15841
15842 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
15843
15844         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
15845         
15846 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15847
15848         * assembly.c: don't call check_env from mono_assembly_load. It's
15849         already done once in mono_assemblies_init and may cause headaches when
15850         multiple threads are loading assemblies.
15851
15852 2003-09-19  Martin Baulig  <martin@ximian.com>
15853
15854         * reflection.c (mono_reflection_define_generic_parameter): Don't
15855         allocate `klass->methods', set `klass->flags' to
15856         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
15857
15858 2003-09-18  Martin Baulig  <martin@ximian.com>
15859
15860         * class.c (mono_class_init): Don't create `class->methods' if it's
15861         already initialized.
15862
15863         * metadata.c (mono_metadata_load_generic_params): Make this
15864         actually work.
15865
15866         * reflection.c (mono_reflection_define_generic_parameter): Set
15867         parent class and interfaces from the constraints.
15868
15869         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
15870         to keep this struct in sync with the declaration in TypeBuilder.cs.
15871
15872 2003-09-17  Martin Baulig  <martin@ximian.com>
15873
15874         * metadata.h (MonoType): Replaced the data's `int type_param'
15875         field with `MonoGenericParam *generic_param'.
15876         (MonoGenericParam): Added `MonoClass *klass'.
15877
15878         * class.c (mono_class_from_gen_param): Removed the
15879         `MonoImage *image' and `int type_num' arguments.
15880
15881         * metadata.c (mono_metadata_parse_generic_param): New static
15882         method; creates a MonoGenericParam which just contains the index.
15883         (do_mono_metadata_parse_type): Call
15884         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
15885         MONO_TYPE_MVAR.
15886
15887         * reflection.c (mono_image_typedef_or_ref): Generic type
15888         parameters may be in the same assembly, but never use a typedef
15889         for them.
15890         (mono_reflection_define_generic_parameter): We're now creating a
15891         "real" class for the type parameter; it's now safe to call
15892         mono_class_from_mono_type() on the class'es type, it'll do the
15893         right thing.
15894
15895 2003-09-16  Martin Baulig  <martin@ximian.com>
15896
15897         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
15898         `symfile->range_entry_size' and `symfile->class_entry_size' here;
15899         the `symfile' data structure must be fully initialized before it
15900         gets added to the table.
15901
15902 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
15903
15904         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
15905
15906         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
15907         class init trampolines.
15908
15909 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
15910
15911         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
15912         to the built-in profiler to turn off time and allocation profiling
15913         respectively.
15914
15915 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
15916
15917         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
15918         g_direct_equal.
15919
15920         * debug-helpers.c (mono_method_full_name): Print the wrapper type
15921         in human readable form.
15922
15923 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
15924
15925         * reflection.c icall.c: Fixed warnings.
15926
15927         * image.c (load_class_names): Use a temporary hash table to hold the
15928         namespaces in order to avoid doing many string comparisons.
15929
15930         * image.h: Fix typo.
15931
15932         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
15933         Pass NULL instead of g_direct_equal to the GHashTable constructor 
15934         since the NULL case is short-circuited inside g_hash_table_lookup, 
15935         leading to better performance.  
15936
15937         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
15938         obtain the first custom attribute for a given index. Depends on the
15939         CustomAttribute table being sorted by the parent field.
15940
15941         * reflection.c (mono_custom_attrs_from_index): Use the new function 
15942         for better performance.
15943
15944 2003-09-07  Martin Baulig  <martin@ximian.com>
15945
15946         * class.c (mono_class_init): If we're a generic instance, inflate
15947         all our methods instead of loading them from the image.
15948         (mono_class_from_generic): Set `class->methods = gklass->methods'.
15949
15950 2003-09-07  Martin Baulig  <martin@ximian.com>
15951
15952         * mono-debug-debugger.c: Added support for constructors.
15953
15954 2003-09-06  Martin Baulig  <martin@ximian.com>
15955
15956         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
15957         New interncall.
15958
15959         * reflection.c (mono_reflection_setup_generic_class): Call
15960         ensure_runtime_vtable() to create the vtable.
15961
15962 2003-09-05  Martin Baulig  <martin@ximian.com>
15963
15964         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
15965         MONO_TYPE_MVAR.
15966
15967 2003-09-04  Martin Baulig  <martin@ximian.com>
15968
15969         * reflection.c (mono_reflection_define_generic_parameter): Generic
15970         parameters start with zero.
15971
15972 2003-09-04  Martin Baulig  <martin@ximian.com>
15973
15974         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15975
15976         * reflection.h (MonoReflectionGenericParam): New typedef.
15977         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
15978         the generic parameters from the managed TypeBuilder.
15979
15980         * reflection.c (mono_reflection_define_generic_parameter): New function.
15981         (mono_reflection_create_runtime_class): Encode generic parameters.
15982         (mono_reflection_setup_generic_class): New function; this is
15983         called after adding adding all generic params to the TypeBuilder.
15984         (encode_type): Added MONO_TYPE_VAR.
15985
15986 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
15987
15988         * class.h class.c (mono_class_needs_cctor_run): Moved this method
15989         here from the JIT.
15990
15991         * assembly.h assembly.c: Moved the AOT loading code into an assembly
15992         load hook.
15993
15994 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
15995
15996         * reflection.h reflection.c class.h class.c: Delete duplicate 
15997         definition of mono_type_get_name () from reflection.c and export the
15998         one in class.c.
15999
16000         * class.c: Class loading fixes from Bernie Solomon 
16001         (bernard@ugsolutions.com).
16002
16003         * reflection.c: Endianness fixes from Bernie Solomon 
16004         (bernard@ugsolutions.com).
16005         
16006 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
16007
16008         * assembly.h assembly.c: Define a file format version for AOT
16009         libraries.
16010         
16011         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
16012
16013         * appdomain.h (MonoJitInfo): New field to determine whenever the
16014         code is domain neutral.
16015         
16016 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
16017
16018         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
16019
16020 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
16021
16022         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
16023         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
16024         Avoid caching the result since strings must be domain specific. Fixes
16025         #48050.
16026
16027 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
16028
16029         * marshal.c (mono_marshal_init): Make this callable multiple times
16030         since it is hard to find a correct place to call it.
16031
16032         * object.c (mono_runtime_class_init): Execute static constructors in
16033         the correct appdomain.
16034
16035         * image.c (build_guid_table): Handle the case when multiple images have
16036         the same GUID.
16037
16038 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16039
16040         * icall.c: added a couple of icalls for System.Web.
16041
16042 2003-08-28  Martin Baulig  <martin@ximian.com>
16043
16044         * icall.c (ves_icall_Type_BindGenericParameters): Use
16045         `klass->generic_inst' instead of `&klass->byval_arg' in the
16046         mono_type_get_object() call.  The returned type must be
16047         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
16048
16049 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
16050
16051         * NOTES: New file.
16052
16053         * object.c (mono_class_proxy_vtable): Make it thread safe.
16054
16055         * pedump.c: Fix warning.
16056
16057         * object.c appdomain.h: Get rid of metadata_section. 
16058         It is no longer needed and it was causing deadlocks with domain->lock.
16059
16060         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
16061
16062 2003-08-26  Martin Baulig  <martin@ximian.com>
16063
16064         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
16065
16066 2003-08-26  Martin Baulig  <martin@ximian.com>
16067
16068         * pedump.c (main): Call mono_metadata_init(),
16069         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
16070         and mono_loader_init().
16071
16072 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
16073
16074         * loader.h: Add missing include to fix build.
16075
16076         * image.h: mono_image_load_references is no more.
16077
16078         * assembly.c: Reworked assembly loading to make it really thread safe.
16079         After these changes, the assembly returned by mono_assembly_open is
16080         fully initialized, i.e. all its references assemblies are loaded.
16081
16082         * assembly.c (mono_image_load_references): Renamed to 
16083         mono_assembly_load_references, and made private, since clients no
16084         longer need to call it.
16085
16086         * class.c: Removed calls to mono_assembly_load_references, since it was
16087         a source of deadlocks.
16088
16089         * loader.h loader.c class.h class.c: Protect data structures using a 
16090         new lock, the loader lock.
16091
16092         * class.c (mono_class_setup_vtable): Create temporary hash tables and
16093         GPtrArrays only when needed.
16094
16095         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
16096         into empty structures by mcs. Fixes pinvoke7.cs.
16097         
16098         * domain.c (mono_init): Call a new initialization function.
16099
16100         * appdomain.c (mono_runtime_init): Call the new initializer function
16101         of the marshal module.
16102
16103         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
16104         inserted into empty structures by mcs. Fixes pinvoke7.cs.
16105
16106         * marshal.h marshal.c: Added locks around the wrapper caches to make
16107         this module thread safe.
16108
16109         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
16110         this argument. Fixes pinvoke1.exe.
16111
16112 2003-08-25  Lluis Sanchez <lluis@ximian.com>
16113
16114         * object.h: Added call_type field to MonoMethodMessage and the corresponding
16115         enumeration of values. Removed fields to store remote call output values in
16116         MonoAsyncResult. Not needed any more.
16117         * object.c: Initialize call_type and async_result fields in mono_message_init.
16118         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
16119         dispatching the message.
16120         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
16121         async call to finish. To do it use a message with EndInvoke call type.
16122
16123 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
16124
16125         * loader.h loader.c (mono_method_hash_marhal_info): New function which
16126         determines whenever a method has marshalling info.
16127
16128 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16129
16130         * assembly.c: fix the build on windows.
16131
16132 2003-08-22 Lluis Sanchez <lluis@ximian.com>
16133
16134         * object.cs: Fixed bug #47785.
16135
16136 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
16137
16138         * string-icalls.c (StringReplace): If their are no occurances of
16139         the old string found return a reference to the supplied
16140         string. This saves some memory and matches MS behavoir.
16141         
16142 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16143
16144         * socket-io.c: fixed compilation for systems that define AF_INET6
16145         and don't define SOL_IP/SOL_IPV6.
16146
16147 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
16148
16149         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
16150         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
16151
16152         * rawbuffer.c rawbuffer.h: Make this module thread safe.
16153
16154         * domain.c: Make this module thread safe.
16155
16156         * domain.c (mono_init): Call new initialization function.
16157
16158         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
16159         reference types too. Fixes #38812.
16160
16161         * image.c (mono_image_init): Fixed warnings.
16162
16163         * class.c (mono_class_from_typeref): Handle assembly load failure
16164         correctly.
16165
16166         * appdomain.c (add_assemblies_to_domain): Handle the case when
16167         the references of an assembly are not yet loaded.
16168
16169         * metadata.c image.c assembly.c: Moved initialization of global
16170         variables to a separate function called at startup since lazy 
16171         initialization of these variables is not thread safe.
16172         
16173         * image.c assembly.c: Made this module thread safe by adding locks in 
16174         the appropriate places.
16175
16176         * domain.c (mono_init): Call the new initialization functions of the
16177         three modules.
16178
16179 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
16180
16181         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
16182           make a direct call. It is proxy's work to make the call asynchronous.
16183           mono_delegate_end_invoke(): If the targe is a proxy, just collect
16184           the return values.
16185         * object.cs: mono_method_call_message_new(): read AsyncResult and
16186           state object from parameters list, if this info is requested.
16187         * object.h: Added fields to store remote call output values in
16188           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
16189
16190 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16191
16192         * object.h: add needed fields to MonoThread.
16193         * threads.c, threads.h: allow registering a function to cleanup data
16194         allocated per thread by the JIT.
16195
16196 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16197
16198         * loader.h: portability fix by Bernie Solomon
16199         * <bernard@ugsolutions.com>.
16200
16201 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
16202
16203         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
16204         return a MonoArray. This simplifies the code and also ensures that
16205         the cache allways contains an object reference as a value.
16206
16207         * icall.c (ves_icall_get_parameter_info): Simplified using the new
16208         function.
16209
16210 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16211
16212         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
16213         fixes a problem with byte ordering when getting the address family for
16214         a socket.
16215
16216 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
16217
16218         * .cvsignore: Added monosn.
16219
16220         * reflection.h reflection.c loader.c: Added support for parameter
16221         marshalling to dynamically created types. Fixes #47295.
16222
16223 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
16224
16225         * rand.c: remove useless warnings.
16226
16227 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16228
16229         * class.c: implemented ldtoken for methods and fieldrefs.
16230
16231 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16232
16233         * threadpool.c: when mono_async_invoke was called, no one took care of
16234         monitoring the queue. So if the method invoked took some time and we
16235         got new async invoke requests after 500 ms (the thread created waited
16236         that long in WaitForSingleObject), the new async invoke was not called
16237         until the previous one finished.
16238
16239         This is fixed now. Thanks to Totte for helping with it.
16240
16241 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16242
16243         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
16244
16245 2003-08-11  Martin Baulig  <martin@ximian.com>
16246
16247         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
16248
16249 2003-08-06  Martin Baulig  <martin@ximian.com>
16250
16251         * mono-debug-debugger.c: Added support for static fields,
16252         properties and methods.
16253
16254 2003-08-06  Martin Baulig  <martin@ximian.com>
16255
16256         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16257         make this work for applications with multiple application domains.
16258
16259 2003-08-04  Martin Baulig  <martin@ximian.com>
16260
16261         * mono-debug-debugger.c: Completely reworked the type support; the
16262         most important thing is that we're now just using one single
16263         `MonoType' instance per type.
16264
16265 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16266
16267         * mono-endian.h, mono-endian.c, icall.c: Added icall
16268         ves_icall_System_Double_AssertEndianity to assert double word endianity
16269         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16270
16271 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16272
16273         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16274         support, icalls and fixes.
16275
16276 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16277
16278         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16279         classes that are a punctuation character in .NET is not the same a
16280         g_unichar_ispunct.
16281
16282 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16283
16284         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16285
16286 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16287
16288         * icall.c: Add new MemCopy internalcall.
16289         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16290         Simplified code; It is not necessary to handle all the cases here,
16291         as the C# code takes care of it.  Only handle the case of the name
16292         resource embedded into the assembly.
16293
16294         Changed signature to return the data pointer and the size of the
16295         data. 
16296
16297 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16298
16299         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16300         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16301
16302 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16303
16304         * socket-io.c: ignore EINTR error in select.
16305
16306 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16307
16308         * class.h, class.c: removed unused subclasses field in MonoClass.
16309
16310 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16311
16312         * icall.c: improve fix of get_base_definition(). If the parent class
16313           doesn't have the mehod, look at the parent of the parent.
16314         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16315           to check if a parameter is an in or out parameter
16316           (PARAM_ATTRIBUTE_IN is not set by default).
16317           mono_method_return_message_restore(): Use mono_class_value_size to
16318           get the size of a value type. mono_type_stack_size (parameterType)
16319           does not return the correct value if parameterType is byRef.
16320           mono_load_remote_field(), mono_load_remote_field_new(),
16321           mono_store_remote_field(), mono_store_remote_field_new():
16322           raise exception if the remote call returns an exception.
16323
16324 2003-07-28  Martin Baulig  <martin@ximian.com>
16325
16326         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16327         method.  This is a wrapper around mono_runtime_invoke() which
16328         boxes the instance object if neccessary.
16329
16330 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16331
16332         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16333         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16334
16335 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16336
16337         * icall.c: disable mcs bug workaround.
16338
16339 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16340
16341         * object.c (mono_runtime_class_init): Take the metadata_section
16342         mutex before obtaining the domain mutex.
16343
16344         * appdomain.h: Added definition of metadata_section mutex here. 
16345
16346         * object.c: define metadata_mutex here.
16347
16348 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16349
16350         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16351         fixed.
16352
16353 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16354
16355         * reflection.c: Fix bug #46669
16356
16357 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16358
16359         * exception.c:
16360         * exception.h:
16361         * icall.c:
16362         * object.h: fill in the type name for TypeLoadException.
16363
16364 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16365
16366         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16367         relationship between TypeBuilders while compiling corlib) and bug
16368         45993 (Array types returned from the runtime while compiling
16369         corlib were from the loaded corlib).
16370
16371 2003-07-22  Martin Baulig  <martin@ximian.com>
16372
16373         * mono-debug-debugger.c: Reworked the type support a bit more;
16374         distinguish between types and classes.
16375
16376 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16377
16378         * icall.c: add IsArrayImpl icall.
16379
16380 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16381
16382         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16383         initializing real_size only once. Also fix bug #46602.
16384
16385 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
16386
16387         * object.c: Renamed mono_metadata_section to metadata_section.
16388
16389 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
16390
16391         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
16392           empty array if the type is an array. Fixed.
16393           ves_icall_MonoMethod_get_base_definition: if the base method
16394           is abstract, get the MethodInfo from the list of methods of
16395           the class.
16396         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16397           and it was 1-based. Fixed in mono_param_get_objects.
16398
16399 2003-07-20  Martin Baulig  <martin@ximian.com>
16400
16401         * mono-debug.h: Set version number to 31.
16402         (mono_debug_init): Added `MonoDomain *' argument.
16403
16404         * mono-debug-debugger.c: Reworked the type support; explicitly
16405         tell the debugger about builtin types; pass the `klass' address to
16406         the debugger.
16407
16408 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16409
16410         * image.c: Allow new metadata tables to be loaded without a
16411         warning. Also update the warning message to give the new constant value.
16412                 
16413 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16414
16415         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16416         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16417         array type representation changes.
16418
16419 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16420
16421         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16422         on Environment.Exit () call.
16423
16424 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16425
16426         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16427         requires a matching corlib.
16428
16429 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16430
16431         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16432           Committed again without the CRs.
16433         
16434 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16435
16436         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16437           getting it from the "this" socket instance. Did not work
16438           if the socket is a subclass of Socket.
16439           Also fixed bug #35371.
16440
16441 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16442
16443         * metadata.c: fixed size for TypedByRef.
16444         * loader.c: when searching for a method, consider the vararg amrker.
16445         * unicode.c, decimal.c: constify some arrays.
16446
16447 2003-07-15  Dick Porter  <dick@ximian.com>
16448
16449         * socket-io.c: Fixed compilation for gcc < 3.2.
16450
16451         Fixed compilation for machines that don't have AF_INET6 (thanks to
16452         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16453
16454         Fixed compile warnings.
16455         
16456         Fixed formatting and line endings.
16457
16458 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16459
16460         * socket-io.h:
16461         * socket-io.c: Added IPv6 support.
16462
16463 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16464
16465         * class.c (mono_class_is_assignable_from): New function to implement
16466         the is_assignable_from logic. Used by mono_object_isinst, 
16467         Type::IsAssignableFrom () and the interpreter.
16468
16469         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16470         Object, even interfaces.
16471         
16472         * object.c (mono_object_isinst): Implement in terms of 
16473         is_assignable_from.
16474
16475         * icall.c (ves_icall_type_is_assignable_from): New icall.
16476
16477 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16478
16479         * domain.c (foreach_domain): fix compiler warning.
16480
16481 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16482
16483         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16484         not available on all plattforms
16485
16486 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16487
16488         * image.h image.c: Store the metadata version string in MonoImage.
16489         * icall.c: New icall to retrieve the image version.
16490         * reflection.c (create_dynamic_image): Fill in the image version field
16491         * reflection.c (build_compressed_metadata): Use the image version
16492         from the image structure.
16493
16494 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16495
16496         * appdomain.c: modified comment.
16497         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
16498         That will be its last iteration when mono_gc_cleanup is called from
16499         mono_runtime_cleanup and before the domain is unloaded.
16500
16501         Fixes bug #45962.
16502
16503 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
16504
16505         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
16506         attributes.
16507
16508 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16509
16510         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
16511         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
16512         Bernie Solomon <bernard@ugsolutions.com>.
16513
16514 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16515
16516         * object.c, object.h: provide mono_object_new_fast() for faster
16517         allocation in some special cases.
16518
16519 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
16520
16521         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
16522         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
16523
16524 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
16525
16526         * threadpool.c: fix leaks.
16527
16528 2003-07-01  Dick Porter  <dick@ximian.com>
16529
16530         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
16531         using MonoGHashTables.  Fixes threadpool bug posted to list.
16532
16533 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16534
16535         * image.h, image.c: added support to load an assembly from a byte array.
16536         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
16537         assembly bundle support.
16538
16539 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
16540
16541         * threadpool.c (mono_thread_pool_add): keep a reference to the
16542         AsyncResult to prevent GC
16543
16544 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16545
16546         * class.c: leak fix.
16547
16548 2003-06-25  Dick Porter  <dick@ximian.com>
16549
16550         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
16551         for the async object, the WaitHandle object will close the handle.
16552         Fixes bug 45321.
16553
16554 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16555
16556         * class.c: in mono_array_class_get (), lookup from the hash with the
16557         same type we insert: this works around a bug in
16558         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
16559         lluis. The real fix will have to wait for after the release.
16560
16561 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16562
16563         * icall.c: fix memory leak when getting type members.
16564
16565 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16566
16567         * reflection.c: added more pubtoken special cases.
16568
16569 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
16570
16571         * class.c: handle field offset correctly when class size
16572         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
16573
16574 2003-06-20  Martin Baulig  <martin@ximian.com>
16575
16576         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
16577         *image' field.
16578
16579 2003-06-20  Martin Baulig  <martin@ximian.com>
16580
16581         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
16582
16583 2003-06-20  Martin Baulig  <martin@ximian.com>
16584
16585         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
16586         just distinguish between variables in registers and variables at
16587         an offset relative to a register.
16588
16589 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16590
16591         * icall.c: #ifdef out latest changes until mcs is fixed.
16592
16593 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16594
16595         * icall.c: return members in metadata order.
16596
16597 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16598
16599         * icall.c: avoid infinite loop in GetTimeZoneData.
16600
16601 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
16602
16603         * icall.c: added Marshal.Prelink/All icalls.
16604
16605 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16606
16607         * object.c, object.h: fix warnings and do some overflow checking
16608         when creating arrays.
16609
16610 2003-06-17  Dick Porter  <dick@ximian.com>
16611
16612         * file-io.h:
16613         * file-io.c: File attributes need to be tweaked slightly when
16614         passed from the managed to the w32 world.
16615
16616 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16617         * profiler.h profiler-private.h profiler.c: Rework last patch
16618         based on suggestion by Paolo.
16619         
16620 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16621
16622         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
16623         instruction level coverage data collection.
16624         * profiler.h profiler.c (: Added new callback function which can be
16625         used by the profiler to limit which functions should have coverage
16626         instrumentation.
16627         * profiler.c (mono_profiler_load): Call g_module_build_path to
16628         generate the file name of the profiler library.
16629
16630 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16631
16632         * profiler.c, profiler.h, profiler-private.h: added basic block 
16633         coverage profiling API.
16634
16635 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
16636
16637         * reflection.c (mono_reflection_create_runtime_class): Add support
16638         for events in dynamically generated code.
16639
16640         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
16641         not allocated.
16642
16643 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16644
16645         * icall.c: when getting timezone info, return reasonable values if we
16646         can't get the actual data.
16647
16648 2003-06-14  Dick Porter  <dick@ximian.com>
16649
16650         * threads.c (start_wrapper): Remove the reference to the thread
16651         object in the TLS data, so the thread object can be finalized.
16652         This won't be reached if the thread threw an uncaught exception,
16653         so those thread handles will stay referenced :-( (This is due to
16654         missing support for scanning thread-specific data in the Boehm GC
16655         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
16656
16657 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
16658
16659         * reflection.c: ensure streams and tables are first allocated with
16660         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
16661
16662 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16663
16664         * icall.c: fixed GetElementType for byrefs (bug# 44792).
16665
16666 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
16667
16668         * reflection.c (mono_reflection_create_runtime_class): Add support for
16669         properties to dynamically created classes.
16670         * reflection.c: Fix a few places where non-MonoObjects were inserted
16671         into the tokens hashtable.
16672
16673 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16674
16675         * object.c: some support to handle out of memory exceptions.
16676
16677 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
16678
16679         * marshal.c (mono_marshal_get_native_wrapper): support reference
16680         return types
16681
16682 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16683
16684         * object.h, object.c: more portability stuff from Bernie Solomon.
16685         Unexport mono_object_allocate(). Added mono_object_unbox ().
16686         Set exitcode when an unhandled exception is thrown.
16687
16688 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
16689
16690         * marshal.c (mono_marshal_get_native_wrapper): use custom
16691         marshaler for return types.
16692
16693 2003-06-10  Dick Porter  <dick@ximian.com>
16694
16695         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
16696         ip_mreq is available
16697
16698 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
16699
16700         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
16701         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
16702         by Bernie Solomon <bernard@ugsolutions.com>.
16703
16704 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
16705
16706         * gc.c (mono_gc_init): Avoid error message on shutdown when
16707         GC_DONT_GC=1 is used.
16708
16709         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
16710         New icall to return the GUID of a module.
16711
16712 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16713
16714         * class.c: ensure instance size always includes the parent's size
16715         even whem class size is set explicitly (fixes bug#44294).
16716
16717 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16718
16719         * profiler.h, profiler.c: made the simple profiler thread-safe,
16720         get more accurate timing info. Allow the loading of an
16721         externally-developed profiler module.
16722
16723 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
16724
16725         * marshal.c (mono_marshal_get_native_wrapper): improved
16726         class/byref arguments.
16727         (mono_marshal_get_native_wrapper): better string marshaling support.
16728
16729 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
16730
16731         * class.c: ensure .pack and .size are handled correctly and
16732         simplified layout of static fields.
16733
16734 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
16735
16736         * appdomain.c
16737         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
16738
16739         * loader.c (mono_lookup_pinvoke_call): look for modules in the
16740         current directory (fix bug 44008)
16741
16742 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
16743
16744         * marshal.c (mono_marshal_get_native_wrapper): started support for
16745         custom marshalers.
16746         (mono_delegate_to_ftnptr): consider marshalling specifications
16747
16748 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
16749
16750         * reflection.c, reflection.h: emit custom marshal info.
16751
16752 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16753
16754         * object.c: free the GError.
16755         * icall.c: added CloseEvent_internal.
16756         * threads.[ch]:
16757         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
16758         call.
16759
16760 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
16761
16762         * loader.c (mono_method_get_signature): Add support for dynamic
16763         assemblies.
16764
16765 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
16766
16767         * reflection.c: fixed bug #43905.
16768
16769 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16770
16771         * class.c, domain.c, icall.c, metadata.h, object.h: support for
16772         handling TypedReference and ArgIterator.
16773         * loader.c, loader.h: added function to get signature at call site.
16774
16775 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16776
16777         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
16778         data readonly. Buglets and warning fixes. Some MethodSpec support.
16779
16780 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16781
16782         * class.h, class.c, object.c: remove relative numbering support.
16783
16784 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
16785
16786         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
16787         free the string, until we get a chance to fix Gtk#
16788
16789 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16790
16791         * marshal.c: revert last patch.
16792
16793 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
16794
16795         * icall.c: updates for new mono_class_vtable() not calling
16796         the type constructor anymore.
16797
16798 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
16799
16800         * object.h, object.c: separate vtable creation from type
16801         initialization. Make running the .cctor thread safe.
16802
16803 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
16804
16805         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
16806
16807 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
16808
16809         * loader.c (mono_get_method): consider calling convention
16810
16811 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
16812
16813         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
16814         to return the invisible global type for a module.
16815
16816         * reflection.c (mono_image_build_metadata): Emit global fields too.
16817
16818 2003-05-20  Peter Williams  <peterw@ximian.com>
16819
16820         * loader.c (mono_lookup_internal_call): Add a few newlines.
16821
16822 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
16823
16824         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
16825         literal strings.
16826
16827         * appdomain.c (set_domain_search_path): Recalculate search path when
16828         AppDomainSetup.PrivateBinPath changes.
16829
16830         * object.c (mono_class_compute_gc_descriptor): It turns out some
16831         parts of the class libs (like System.Thread) holds pointers to
16832         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
16833         to treat native int a pointer type here.
16834         
16835 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
16836
16837         * appdomain.h, domain.c: add hashtable for jump target resolution.
16838
16839 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
16840
16841         * reflection.h reflection.c icall.c: Added new icalls 
16842         GetManifestResourceInfoInternal, GetModulesInternal and support
16843         infrastructure.
16844
16845 2003-05-16  Dick Porter  <dick@ximian.com>
16846
16847         * icall.c:
16848         * file-io.h:
16849         * file-io.c: Implement System.IO.MonoIO::GetTempPath
16850
16851 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
16852
16853         * object.c: mono_store_remote_field: little fix to previous patch.
16854
16855 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16856
16857         * class.c: add constructors to array classes.
16858         * icall.c: special case array construction for InternalInvoke (),
16859
16860 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
16861
16862         * class.h class.c reflection.c object.c: Added support for field
16863         defaults in dynamically generated classes.
16864
16865 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
16866
16867         * reflection.c: properly encode charset for ddlimport.
16868
16869 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
16870
16871         * threads.c: allow compiling without GC.
16872
16873 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16874
16875         * appdomain.h, object.c, object.h, threads.c, threads.h: added
16876         handling of thread static data.
16877
16878 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16879
16880         * reflection.h, reflection.c: added mono_custom_attrs_free ().
16881
16882 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
16883
16884         * class.c (mono_array_class_get): always set the serializable flags
16885         (mono_array_class_get): always set the SEALED attribute for array types
16886
16887 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
16888
16889         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
16890         attributes (fix for bug 42021).
16891
16892 2003-05-12  Dick Porter  <dick@ximian.com>
16893
16894         * gc.c: Don't run finalizers when the finalizer thread is
16895         finishing up, because the default domain has already been
16896         destroyed.
16897
16898 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
16899
16900         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
16901         value is null, we should throw an exception.   This is slightly
16902         different than the other conventions used for the constructor.
16903
16904 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16905
16906         * socket-io.c: fixed windows build.
16907
16908 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16909
16910         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
16911
16912 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
16913
16914         * object.c (mono_string_new_wrapper): Compatibility fix for MS
16915         compilers.
16916
16917 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
16918
16919         * class.c (mono_class_layout_fields): Add experimental GC aware
16920         auto layout facility. Requires class library changes to work correctly.
16921
16922         (mono_class_setup_vtable): Avoid overriding explicit interface
16923         method implementations. Fixes iface3.exe test.
16924
16925         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
16926         object reference.
16927         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
16928         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
16929
16930         * metadata.h: Add new type classification macro which determines
16931         whenever the type holds an object reference.
16932
16933 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
16934
16935         * marshal.c (mono_marshal_get_native_wrapper): cleanups
16936
16937 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
16938
16939         * gc.c (finalizer_thread): Work around a GC bug.
16940
16941 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
16942
16943         * marshal.c (emit_struct_conv): allow unions
16944
16945         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
16946
16947 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
16948
16949         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
16950
16951 2003-05-06  Martin Baulig  <martin@ximian.com>
16952
16953         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
16954
16955 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16956
16957         * socket-io.c:
16958         (Select_internal): allow NULLs, don't create arrays if not needed.
16959         Coupled with Socket.cs changes.
16960
16961         * threadpool.c:
16962         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
16963         register a finalizer for it that will close the semaphore handle. This
16964         fixes the leak and make Lupus' test run with > 4080 loops.
16965
16966 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
16967
16968         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
16969         Jerome Laban (bug #42287)
16970
16971 2003-05-02  Martin Baulig  <martin@ximian.com>
16972
16973         * debug-mono-symfile.h
16974         (MonoSymbolFile): Moved declaration into mono-debug.h.
16975         (MonoDebugMethodJitInfo): Likewise.
16976         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
16977         argument.
16978         (_mono_debug_address_from_il_offset): Take a
16979         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
16980
16981         * mono-debug.h
16982         (MonoDebugDomainData): New struct.
16983         (mono_debug_get_domain_data): New function.
16984         (mono_debug_add_method): Take an additional `MonoDomain *'
16985         argument.
16986         (mono_debug_source_location_from_address): Likewise.
16987         (mono_debug_il_offset_from_address): Likewise.
16988         (mono_debug_address_from_il_offset): Likewise.
16989
16990 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
16991
16992         * reflection.c: one more check for null type in custom attrs.
16993
16994 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16995
16996         * reflection.c: avoid warning (comparison is always false due to limited
16997         range of data type).
16998
16999 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17000
17001         * icall.c: throw an exception in Type.GetField if the argument 'name'
17002         is NULL.
17003
17004 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
17005
17006         * reflection.c: fixed handling of enums in named arguments to custom
17007         attributes (bug #42123).
17008
17009 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
17010
17011         * reflection.c: use the right array element type and handle
17012         a null for a Type argument, too.
17013
17014 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
17015
17016         * reflection.c: handle arrays as arguments to custom attributes.
17017
17018 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17019
17020         * reflection.c: handle a string value in a custom attr
17021         ctor that takes an object.
17022
17023 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
17024
17025         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
17026         (fix bug #42063)
17027
17028 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
17029
17030         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
17031
17032 2003-04-27  Martin Baulig  <martin@ximian.com>
17033
17034         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
17035         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
17036         MONO_DEBUGGER_EVENT_BREAKPOINT.
17037         (mono_breakpoint_trampoline_code): Removed.
17038         (mono_debugger_event_handler): The last argument is now a
17039         `guint32'.
17040         (mono_debugger_insert_breakpoint_full): Removed the
17041         `use_trampoline' argument.
17042         (mono_debugger_method_has_breakpoint): Likewise.
17043         (mono_debugger_trampoline_breakpoint_callback): Renamed to
17044         mono_debugger_breakpoint_callback(); take the method and
17045         breakpoint number as arguments.
17046
17047 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
17048
17049         * metadata.c: fix off by one when loading parameters attributes.
17050
17051 2003-04-24  Martin Baulig  <martin@ximian.com>
17052
17053         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
17054
17055 2003-04-24  Martin Baulig  <martin@ximian.com>
17056
17057         * mono-debug-debugger.c: Moved all code which interacts with the
17058         Mono Debugger here.
17059
17060         * debug-mono-symfile.c: This code now just deals with the symbol
17061         file itself, the debugger code is now in mono-debug-debugger.c.
17062
17063 2003-04-23  Martin Baulig  <martin@ximian.com>
17064
17065         * mono-debug.c (mono_debug_source_location_from_il_offset):
17066         New method; like mono_debug_source_location_from_address(), but
17067         takes an IL offset instead of a machine address.
17068
17069 2003-04-23  Martin Baulig  <martin@ximian.com>
17070
17071         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
17072         `line' field; this is now computed by the debugger.
17073
17074 2003-04-23  Martin Baulig  <martin@ximian.com>
17075
17076         * mono-debug.[ch]: New files.  This is the new debugging interface.
17077
17078         * mono-debug-debugger.[ch]: New files.  Moved all code which
17079         interacts with the Mono Debugger here.
17080
17081 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
17082
17083         * domain.c (mono_init): initialize mono_defaults.monitor_class
17084
17085 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
17086
17087         * reflection.c (method_encode_code): Add a spicy exception to help
17088         future compiler authors.
17089
17090 2003-04-21  Martin Baulig  <martin@ximian.com>
17091
17092         * icall.c
17093         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17094         Make this work with relative pathnames; g_filename_to_uri() needs
17095         an absolute filename.
17096
17097 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
17098
17099         * icall.c: Track name changes in Object and ValueType.
17100
17101 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
17102
17103         * metadata.c (mono_type_stack_size): size should be a multiple of
17104         sizeof (gpointer)
17105
17106 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17107
17108         * gc.c:
17109         (internal_domain_finalize): moved into mono_domain_finalize. No need
17110         to create another thread because the finalizers will be run in the
17111         finalizer thread.
17112         
17113         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
17114         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
17115         to be run (MS does this too).
17116
17117 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
17118
17119         * object.c (mono_class_compute_gc_descriptor): Update comment.
17120
17121         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
17122
17123         * image.h: Add synchronized wrapper cache.
17124
17125         * image.c (do_mono_image_open): Initialize cache.
17126
17127         * reflection.c (create_dynamic_mono_image): Initialize cache.
17128
17129 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17130
17131         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
17132         ves_icall_System_Buffer_ByteLengthInternal.
17133
17134 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17135
17136         * reflection.c: setup klass->nested_in earlier. Allow
17137         a dash in the assembly name.
17138
17139 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
17140
17141         * metadata.c (mono_type_to_unmanaged): dont access
17142         type->data.klass for MONO_TYPE_OBJECT
17143         (mono_type_to_unmanaged): consider System.Delegate class
17144
17145 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
17146
17147         * class.c: just setup supertypes in the proper place instead of
17148         initializing the full element class for arrays.
17149
17150 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17151
17152         * class.c: ensure the element class of arrays is initialized.
17153         Setup the supertype info for array classes, too.
17154
17155 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
17156
17157         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
17158
17159 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17160
17161         * Makefile.am: re-added -m option when running cygpath. This way,
17162         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
17163         separator.
17164         * mono-config.c: same codepath for locating mono config file for WIN32
17165         and the rest.
17166         * assembly.c: if mono_assembly_setrootdir is called, don't override
17167         the value set.
17168
17169 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17170
17171         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
17172         MONO_ASSEMBLIES variable.
17173
17174 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
17175
17176         * icall.c: added Assembly::GetNamespaces() icall.
17177
17178 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17179
17180         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
17181
17182 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
17183
17184         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
17185         * object.c: fixed bug in the construction of vtable for proxies
17186
17187 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
17188
17189         * object.c (mono_array_new): Mark mono_array_new as an icall.
17190
17191 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17192
17193         * class.c: fixed test for public method when overriding interfaces.
17194         Closes bug #40970.
17195
17196 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17197
17198         * appdomain.h, domain.c: added mono_domain_foreach() to
17199         be able to access the currently loaded appdomains.
17200         * object.c: make string interning work across sppdomains.
17201         Mark some functions for use as icalls.
17202
17203 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
17204
17205         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
17206
17207         * reflection.h reflection.c: Allocate long living data using 
17208         GC_MALLOC_ATOMIC so the collector does not need to scan it.
17209
17210         * reflection.c: Double the allocation size in streams instead of
17211         increasing it, to prevent unneccesary copying on large assemblies.
17212         
17213         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
17214         creation if the assembly does not have the Run flag set.
17215
17216 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
17217
17218         * class.h: avoid the C++ keywords in header files (Jerome Laban
17219         spotted and fixed this).
17220
17221 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17222
17223         * object.c:
17224         (mono_unhandled_exception): fill in the arguments for the
17225         UnhandledException event. Only trigger that event for the default
17226         domain (as MS does).
17227
17228 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
17229
17230         * object.c: Improve typed allocation stuff based on suggestions from
17231         Paolo. Also turn it on if the GC library supports it.
17232
17233 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17234
17235         * object.c object.h class.h: Added experimental typed allocation
17236         facility using the interfaces in gc_gcj.h.
17237
17238         * os/gc_wrapper.h: Added new include files.
17239         
17240 2003-04-03  Martin Baulig  <martin@ximian.com>
17241
17242         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
17243         which is not yet enabled by default.
17244
17245         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
17246         functions.
17247         (mono_gc_lock, mono_gc_unlock): New static functions.
17248
17249         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
17250         functions; stop/start the world for the garbage collector.  This
17251         is using the windows API; we need to complete the SuspendThread()/
17252         ResumeThread() implementation in the io-layer to make this work on Unix.
17253         (mono_gc_push_all_stacks): New public function; tells the garbage
17254         collector about the stack pointers from all managed threads.
17255
17256 2003-04-03  Martin Baulig  <martin@ximian.com>
17257
17258         * object.h (MonoThread): Added `gpointer stack_ptr'.
17259
17260         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17261
17262 2003-04-03  Martin Baulig  <martin@ximian.com>
17263
17264         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17265
17266 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17267
17268         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17269         field.last.
17270
17271 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17272
17273         * loader.c (mono_lookup_internal_call): Report the corlib that is
17274         out of sync.
17275
17276 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17277
17278         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17279         System.DBNull (it's class not valuetype).
17280
17281 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17282
17283         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17284         if the array method was already assigned a token (fixes bug#40646).
17285
17286 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17287
17288         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17289         if no assembly is given.
17290
17291 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17292
17293         * metadata.h: Added the new tables.
17294
17295         * row-indexes.h: Added definitions for new tables.
17296
17297         * metadata.c: Add schemas for new tables, and add support for
17298         computing the sizes of them.
17299
17300         * class.c: Update for handling the new type cases.
17301
17302 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17303
17304         * metadata.h (MONO_TYPE_IS_VOID): new macro
17305
17306 2003-03-31  Martin Baulig  <martin@ximian.com>
17307
17308         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17309
17310         * threads.c (mono_thread_new_init): Call `thread_created' in the
17311         mono_thread_callbacks.
17312
17313 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17314
17315         * loader.h: added marshalbyrefobject_class to mono_defaults
17316         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17317         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17318           generation of output parameters.
17319           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17320         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17321           contextbound and the target object belongs to the context of the caller.
17322         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17323         * object.c: Implemented support for interfaces and abstract classes
17324           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17325           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17326
17327 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17328
17329         * class.h class.c (mono_class_is_subclass_of): New function.
17330         
17331         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17332         routines for most common case (calls from ArrayList::ToArray).
17333
17334         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17335         routine so programs which call Environment::Exit() can be profiled.
17336
17337         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17338         Added MONO_ARCH_SAVE_REGS.
17339
17340         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17341
17342 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17343
17344         * blob.h: Add a couple of new MonoType types definitions.
17345
17346         * tabledefs.h: Add a couple of new call convs.
17347
17348 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17349
17350         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17351         the layout of the class.
17352
17353         * reflection.c (alloc_table): double the size on overflow to avoid
17354         unnecessary copying.
17355
17356         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17357         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17358         null so it can be garbage collected.
17359         
17360 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17361
17362         * reflection.c (mono_reflection_get_type): Return the resolved type
17363         only if it is in the assembly we searched.
17364
17365         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17366
17367         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17368         method.
17369
17370 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17371
17372         * appdomain.c:
17373         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17374         the right one is 'file:///blah', but MS allows it.
17375         * assembly.c:
17376         (mono_assembly_open): allow 'file://blah'
17377
17378         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17379
17380 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17381
17382         * socket-io.c: fixes bug #40310.
17383
17384 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
17385
17386         * reflection.c (mono_reflection_parse_type): handle deeply nested
17387         types correctly.
17388
17389         * reflection.c (mono_image_create_token): Use unique token values
17390         since they will be put into a hash table.
17391
17392         * class.c (mono_class_setup_vtable): If a method occurs in more than
17393         one place in the vtable, and it gets overriden, then change the
17394         other occurances too.
17395
17396         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17397         object as return type.
17398
17399 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17400
17401         * icall.c: Deleted "ToString" implementation for double and float
17402         because they are full implemented in managed code.
17403
17404 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17405
17406         * reflection.c, reflection.h: implemented and exported functions
17407         to retrieve info about custom attributes.
17408
17409 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17410
17411         * appdomain.c: moved Uri handling to assembly.c
17412         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17413         work when using a file Uri in *nix and windows.
17414
17415         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17416         GetReferencedAssemblies.
17417
17418 2003-03-18  Dick Porter  <dick@ximian.com>
17419
17420         * icall.c: Rename a couple of internal calls
17421
17422         * threads.c: Set the thread state to Stopped when a thread exits.
17423         Fixes bug 39377.
17424
17425 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17426
17427         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17428         New icall.
17429
17430         * object.c (mono_class_vtable): fix warning.
17431
17432 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17433
17434         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17435
17436         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17437         memory.
17438         (method_encode_clauses): Create exception info structures in the right
17439         order.
17440         (mono_reflection_setup_internal_class): Initialize supertypes field.
17441
17442         * class.c object.c: Handle interfaces which implement other interfaces 
17443         correctly.
17444
17445         * class.h class.c: Move the supertypes array initialization code into 
17446         a separate function so it can be used for dynamic types too. Also call
17447         it earlier, in mono_class_init(), since it can be used before the
17448         type is initialized.
17449
17450 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17451
17452         * Makefile.am:
17453         * assembly.c:
17454         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17455
17456         * appdomain.c:
17457         * appdomain.h:
17458         * marshal.c:
17459         * object.c: remove warnings.
17460
17461 2003-03-13  Martin Baulig  <martin@ximian.com>
17462
17463         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17464         (MonoDebugLexicalBlockEntry): New types.
17465
17466         * debug-mono-symfile.c
17467         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17468
17469 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17470
17471         * process.c: ret can be any non-zero value accroding to MS doc.
17472
17473 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17474
17475         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17476         fixing a warning for a miss-used prototype, would have cause
17477         random memory corruption.
17478
17479 2003-03-07  Martin Baulig  <martin@ximian.com>
17480
17481         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17482         getting really annoying ....
17483
17484 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17485
17486         * reflection.c (fixup_method): added support for array methods.
17487
17488 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17489
17490         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17491         (pointed out by Michael Adams).
17492
17493 2003-03-04  Dick Porter  <dick@ximian.com>
17494
17495         * icall.c: Temporarily reverted the Double and Single ToString()
17496         change, because it broke nunit.
17497
17498 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
17499
17500         * object.h, threads.h: make include files compatible with C++
17501         (patch by Jerome Laban <jlaban@wanadoo.fr>).
17502
17503 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17504
17505         * icall.c: Erased ToString helper functions for Double and Single.
17506         Now, that implementations ar all in managed code (Double and Single
17507         Formatters).
17508
17509 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
17510
17511         * appdomain.c: Added method for initializing the default context of
17512         a domain. Added internal call for getting the default context.
17513         * appdomain.h: Added context variable in MonoDomain struct.
17514         * domain.c: mono_domain_set also sets the default context of the domain
17515         * icall.c: Mapped internal method InternalGetDefaultContext.
17516         * object.c: mono_object_get_virtual_method returns always a remoting
17517         wrapper if the object is a transparent proxy.
17518         mono_runtime_invoke_array: when creating an object by calling the
17519         constructor, if the created object is a proxy, then the constructor should
17520         be called using the a remoting wrapper.
17521
17522 2003-03-03  Dick Porter  <dick@ximian.com>
17523
17524         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
17525         variable so it compiles on solaris.  Problem spotted by
17526         Christopher Taylor <ct@cs.clemson.edu>
17527
17528 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17529
17530         * appdomain.c:
17531         (get_info_from_assembly_name): don't leak value.
17532
17533         * icall.c:
17534         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
17535         result.
17536
17537 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
17538
17539         * assembly.c: export mono_image_load_references ().
17540         * class.c: handle function pointers. mono_class_from_name() now
17541         supports nested type names directly.
17542
17543 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
17544
17545         * reflection.h reflection.c: Encode already created dynamic methods 
17546         and fields correctly as a DEF instead of a REF.
17547
17548         * reflection.c: Get rid of the force_ref argument to 
17549         mono_image_typedef_or_ref since it was wrong in the first place.
17550
17551         * string-icalls.c: add error checking to string constructors according
17552         to the MSDN docs.
17553
17554         * reflection.c: Emit types in the order their TypeBuilders were 
17555         created. Previously, a new table index was assigned to each type before
17556         the tables were emitted. This was wrong because the signature blob
17557         might already refer to a type by its original table index.
17558
17559 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
17560
17561         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
17562         change.
17563         
17564 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17565
17566         * Makefile.am: make assemblies dir have \ instead of / on windows.
17567
17568 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
17569
17570         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
17571         iterate over the NESTEDCLASS table using a linear search since the
17572         table is not guaranteed to be sorted by the secondary key.
17573
17574         * class.c (mono_class_create_from_typedef): fixed up call to
17575         mono_metadata_nesting_typedef.
17576         
17577 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
17578
17579         * marshal.c (mono_string_to_byvalstr): clear the memory as
17580         suggested by Jerome Laban <jlaban@wanadoo.fr>
17581
17582 2003-02-26  Dick Porter  <dick@ximian.com>
17583
17584         * process.c: Cope with padding in .rsrc blocks
17585
17586 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17587
17588         * metadata.h: reverted the filter_len change, it breaks reflection
17589         
17590 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17591
17592         * metadata.h: added a new field to store the filter_len
17593         
17594
17595 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
17596
17597         * reflection.c: handle custom attributes for types and members
17598         created with Reflection.Emit (bug#38422).
17599
17600 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
17601
17602         * reflection.c: define RTSpecialName automatically for constructors for
17603         compatibility with MS.NET.
17604
17605         * reflection.c (mono_reflection_create_runtime_class): initialize
17606         nested_in field of dynamically created classes.
17607
17608 2003-02-22  Martin Baulig  <martin@ximian.com>
17609
17610         * debug-mono-symfile.h: Incremented version number.
17611
17612 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17613
17614         * object.h icall.c process.c: fix warnings.
17615
17616 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17617
17618         * appdomain.h appdomain.c:
17619         (mono_domain_try_type_resolve): split the 
17620         name_or_tb argument into a name and a tb argument.
17621         (mono_domain_has_type_resolve): new function to check whenever the
17622         application has registered a TypeResolve event handler.
17623         
17624         * icall.c reflection.h reflection.c: move the type resolve logic into
17625         mono_reflection_get_type () so it will be invoked when 
17626         Assembly::GetType () is called.
17627
17628         * reflection.c:
17629         (mono_reflection_get_type): renamed to get_type_internal.
17630         (mono_reflection_get_type): fixed type name generation so it works 
17631         for nested types too.
17632         (mono_reflection_get_type): call has_type_resolve () to avoid the 
17633         costly type name generation if there is no resolve event handler.
17634
17635 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17636
17637         * class.c, image.c: load exported types from file references.
17638
17639 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
17640
17641         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
17642           used to cache the managed methods used to create proxies and make 
17643           remote invocation of methods.
17644         * class.h: Added in MonoVTable a flag to indicate that a class needs 
17645           to be remotely created.
17646         * object.c: Modified the method mono_class_vtable(). It now initializes 
17647           the remote flag of the vtable. Modified mono_object_new_specific(), 
17648           so now it checks the remote flag.
17649         * icall.c: Added a couple of internal methods, one for enabling instance 
17650           creation interception for a type, and one for creating objects bypassing
17651           the remote check.
17652
17653 2003-02-18  Martin Baulig  <martin@ximian.com>
17654
17655         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
17656         New interncall to get a method's metadata token.
17657
17658         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
17659         New interncall for the debugger.
17660
17661 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
17662
17663         * class.c (mono_class_setup_vtable): allocate supertype array
17664
17665 2003-02-18  Martin Baulig  <martin@ximian.com>
17666
17667         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
17668
17669 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17670
17671         * reflection.c:
17672         (assembly_name_to_aname): jump over unknown properties (i've found
17673         something like: 'type, assembly, version=xxx, custom=null, public...',
17674         so now will ignore custom=null and still get the rest of the values).
17675
17676 2003-02-17  Dick Porter  <dick@ximian.com>
17677
17678         * threads.c: Have Thread.Start() wait for a semaphore to signal
17679         that the thread has set up all its local data.  This fixes bug
17680         34323, where Abort() raced the new thread's TLS data.
17681
17682         Also removes the handle_store() call from start_wrapper, because
17683         threads are now always created suspended and there is no longer a
17684         race between the parent and child threads to store the info.
17685
17686 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
17687
17688         * image.c: explain the #- heap issue in a message, hopefully
17689         avoiding FAQs on mono-list.
17690
17691 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17692
17693         * icall.c:
17694         (GetEntryAssembly): if the domain has not invoked
17695         AppDomain.ExecuteAssembly yet, return the assembly of the default
17696         AppDomain.
17697
17698 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
17699
17700         * class.c (mono_ldtoken): make it work in dynamic assemblies.
17701
17702 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
17703
17704         * metadata.c, reflection.c: simple speedup to type hash
17705         and equals code.
17706
17707 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
17708
17709         * image.c, image.h, class.c, assembly.c: move module loading
17710         to MonoImage. When loading metadata, consider alignemnet from
17711         the start of metadata, not from the metadata address in memory.
17712
17713 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
17714
17715         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
17716         AssemblyBuilder objects. Factored out custom attribute creation into
17717         a separate function.
17718         (create_custom_attr): new function to create custom attributes.
17719
17720 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
17721
17722         * Makefile.am: Got tired of typing the full pathname to pedump.
17723         Until there is another option, am installing this.
17724
17725 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
17726
17727         * class.c (class_compute_field_layout): always set field->parent 
17728         (mono_ldtoken): use mono_defaults.fieldhandle_class;
17729
17730 2003-02-11  Dick Porter  <dick@ximian.com>
17731
17732         * threads-types.h:
17733         * monitor.c: Rewrote Monitor, making lock much faster and
17734         Pulse/Wait work as specified.  Also uses much fewer handles, and only
17735         creates them as needed.
17736
17737         * exception.c: Added SynchronizationLockException
17738
17739         * threads.c: Deleted old Monitor implementation.  The new one is
17740         in a new file.
17741
17742 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
17743
17744         * class.c: handled TypedReference type code. Set the correct size for
17745         class data. Setup interface_offsets for interface classes, too.
17746
17747 2003-02-09  Martin Baulig  <martin@ximian.com>
17748
17749         * debug-mono-symfile.h: Reflect latest symbol writer changes.
17750
17751 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
17752
17753         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
17754         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
17755         * object.c: fixed mono_object_get_virtual_method () for interfaces.
17756         * verify.c: check for code that runs after the end of the method.
17757
17758 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17759
17760         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
17761         "System.Math::Round2".
17762         * sysmath.h: Added Floor, Round and Round2 definitions.
17763         * sysmath.c: Modified certain functions that were not 100% compliant
17764         with MS.NET (math precision) and added the implementation of Floor,
17765         Round and Round2.
17766
17767 2003-02-07  Martin Baulig  <martin@ximian.com>
17768
17769         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
17770
17771 2003-02-07  Martin Baulig  <martin@ximian.com>
17772
17773         * debug-mono-symfile.c: Reflected latest symwriter changes.
17774         (mono_debug_create_mono_symbol_file): Removed.
17775         (mono_debug_open_mono_symbol_file): Take an argument which
17776         specifies whether to create a dynamic symbol file.
17777
17778 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
17779
17780         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
17781
17782 2003-02-05  Martin Baulig  <martin@ximian.com>
17783
17784         * reflection.c (mono_image_build_metadata): Make this public,
17785         protect it against being called multiple times, don't create
17786         resources and don't build the compressed metadata here.
17787         (mono_image_create_pefile): Do this here.
17788
17789         * icall.c
17790         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
17791
17792 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17793
17794         * socket-io.c: fixed bug #36322.
17795
17796 2003-02-06  Piers Haken <piersh@friskit.com>
17797
17798         * appdomain.[ch]:
17799         * class.h:
17800         * debug-mono-symfile.c:
17801         * icall.c:
17802         * loader.c:
17803         * mono-config.c:
17804         * monosn.c:
17805         * reflection.c:
17806         * socket-io.c: warning cleanups
17807
17808 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
17809
17810         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
17811         function. works like remoting invoke, but does a check for the Proxy first.
17812
17813 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
17814
17815         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
17816
17817 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
17818
17819         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
17820         array of pointers.
17821         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
17822         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
17823
17824         * object.c (mono_store_remote_field_new): used by the new jit
17825         instead of mono_store_remote_field
17826         (mono_load_remote_field_new): used by the new jit
17827         instead of mono_load_remote_field
17828
17829 2003-02-05  Patrik Torstensson
17830
17831         * appdomain.c: changed unload to take the domain id instead
17832         of domain
17833         
17834         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
17835
17836
17837 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17838
17839         * appdomain.c: don't look for assemblies in ApplicationBase if
17840         PrivateBinPathProbe is set.
17841
17842 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17843
17844         * object.c: make the first argument in main_args contain the absolute
17845         path to the assembly. Fixes bug #37511.
17846
17847 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17848
17849         * icall.c: get correct UTC offset for countries not using daylight
17850         time saving. Fixes bug #30030.
17851
17852 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17853
17854         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
17855         and 1 are the family).
17856
17857 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
17858
17859         * icall.c (ves_icall_InternalExecute): removed wrong assertion
17860
17861         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
17862
17863 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
17864
17865         * reflection.c: added support for SignatureHelper tokens, which is
17866         needed by the Calli opcode.
17867
17868         * reflection.h: track changes to SignatureHelper class.
17869
17870         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
17871
17872 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17873
17874         * appdomain.c: fixed loading assemblies from PrivateBinPath.
17875
17876 2003-02-03  Patrik Torstensson
17877         * appdomain.[c|h], domain.c : 
17878          - Added support for getting a domain via domain id
17879          - Support for setting and getting domain from System.AppDomain 
17880            (used in cross appdomain channel)
17881          - Added support for get/set for a MonoAppContext on a thread 
17882            (Context class in System.Runtime.Remoting.Contexts),
17883          - Removed hack in Get/SetData and ExecuteAssembly.
17884         
17885         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
17886         the managed world to get control when a proxy is created.
17887
17888         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
17889         
17890 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
17891
17892         * icall.c
17893         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17894         Populate the codebase field as well.
17895
17896 2003-02-02  Martin Baulig  <martin@ximian.com>
17897
17898         * debug-mono-symfile.c
17899         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
17900         (mono_debug_symfile_add_method): Allow interncalls.
17901
17902 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17903
17904         * icall.c: throw parse exception if strtod fails or the string is empty.
17905
17906 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
17907
17908         * marshal.c: handle object type separately from defined
17909         class types.
17910
17911 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
17912
17913         * marshal.c: handle NATIVE_LPSTR for strings when it's
17914         explicitly specified.
17915
17916 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
17917
17918         * reflection.c, reflection.h, icall.c: setup the reflection
17919         handle cache for ModuleBuilders and AssemblyBuilders.
17920
17921 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
17922
17923         * reflection.c (reflection_methodbuilder_to_mono_method): set
17924         pinvoke flag
17925
17926 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17927
17928         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
17929
17930 2003-01-29  Dick Porter  <dick@ximian.com>
17931
17932         * threads.c: No need for the fake_thread kludge now that Thread
17933         doesn't run a class constructor
17934         
17935 2003-01-29  Dick Porter  <dick@ximian.com>
17936
17937         * threads.c: Use g_direct_hash instead of the rather bogus
17938         g_int_hash
17939
17940 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
17941
17942         * marshal.c (mono_marshal_get_native_wrapper): add check for null
17943         (fix pinvoke12.exe)
17944         (mono_marshal_get_struct_to_ptr): generate valid IL code
17945         (mono_marshal_get_ptr_to_struct): generate valid IL code
17946         (*): correctly set sig->pinvoke, we need to memdup the signature
17947         to do that
17948
17949 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17950
17951         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
17952         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
17953
17954 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
17955
17956         * profiler.c: provide more callers information.
17957
17958 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
17959
17960         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
17961
17962         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
17963
17964         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
17965
17966 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17967
17968         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
17969         exception instead of going into an infinite loop on dates which it 
17970         can't yet handle.
17971
17972         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
17973         out-of-range exception if needed.
17974
17975         * class.c (mono_class_setup_vtable): allow a virtual method to provide
17976         an implementation for an interface method and to override an inherited
17977         method at the same time. 
17978         Imagine a scenario when a virtual method is used to override a
17979         virtual abstract method in a parent class, and this same method 
17980         provides an implementation for an method inherited from an interface. 
17981         In this case, the interface resolution code will set im->slot, which 
17982         means that the virtual method override pass will skip this method 
17983         which means a pointer to the abstract method inherited from the parent
17984         will remain in the vtable of this non-abstract class.
17985
17986         * class.c: (mono_class_setup_vtable): continue search for a real 
17987         method if only an abstract method is found.     
17988
17989 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
17990
17991         * reflection.c: add size to encoding for ByValStr and ByValArray
17992         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
17993
17994 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17995
17996         * class.c (mono_class_setup_vtable): pass the override info as an
17997         argument.
17998
17999         * class.c (mono_class_setup_vtable): set the slot of overriding methods
18000         correctly.
18001         
18002         * reflection.c (ensure_runtime_vtable); add support for method 
18003         overrides.
18004         
18005 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18006
18007         * reflection.c (resolution_scope_from_image): Hack to work to work with
18008         dynamic assemblies.
18009
18010         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
18011         added a 'force_ref' argument to force this function to allways return 
18012         a TypeRef. This is needed by mono_image_get_memberref_token ().
18013         
18014 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18015
18016         * reflection.c (mono_image_get_type_info): interfaces really don't have
18017         a parent.
18018
18019         * reflection.c (mono_image_basic_init): fill out missing fields of
18020         image structure.
18021
18022         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
18023         dynamic assemblies. This is required so dynamic assemblies show up in
18024         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
18025         Type::GetType() etc. This is consistent with MS behaviour.
18026
18027         * image.c image.h reflection.c: add newly created classes to the name 
18028         cache so mono_class_get () will find them.      
18029
18030 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18031
18032         First part of changes to get IKVM.NET running under mono.
18033         
18034         * appdomain.h, appdomain.c: added new function 
18035         mono_domain_try_type_resolve() which will emit TypeResolve events. 
18036         This function will call AppDomain::DoTypeResolve to do the actual work.
18037
18038         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
18039         moved existing code dealing with dynamic tokens to a new function 
18040         called mono_reflection_lookup_dynamic_token (). This function will 
18041         raise TypeResolve events when appropriate. Since reflection.c is not 
18042         part of libmetadata, a new hook function called 
18043         mono_lookup_dynamic_token() is added to class.c which will call this.
18044
18045         * assembly.h assembly.c: make the invoke_load_hook function public,
18046         so it can be called for dynamic assemblies.
18047
18048         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
18049
18050         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
18051         type isn't found.
18052
18053         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
18054         MonoGHashTable, since it contains pointers to objects which the GC 
18055         needs to track.
18056
18057         * assembly.c (search_loaded): remove unused variable.
18058         
18059 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
18060
18061         * object.c: fixed issue exposed by gcc-generated IL programs
18062         that use RVA data for pointers.
18063
18064 2003-01-25  Martin Baulig  <martin@ximian.com>
18065
18066         * threads.c (start_wrapper): Moved the initialization of
18067         `start_func' above the mono_new_thread_init() call to which we
18068         pass it as argument.
18069
18070 2003-01-24  Martin Baulig  <martin@ximian.com>
18071
18072         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
18073         the MonoThread pointer.
18074
18075 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
18076
18077         * icall.c: Rename `PowImpl' to Pow.
18078
18079 2003-01-23  Dick Porter  <dick@ximian.com>
18080
18081         * threads.c (start_wrapper): Create a Thread object if needed, so
18082         the Main() thread can do the class initialisation in a subthread
18083         that has been set up to allow managed code execution.
18084
18085         Pass the thread ID instead of the MonoThread pointer to the thread
18086         start and attach callbacks.  This change is required, because the
18087         jit thread start callback must be called _before_ the Thread
18088         object can be created.
18089         
18090         (mono_thread_init): Removed much object creation code that is no
18091         longer needed.  No managed code is called from here now.
18092
18093         * object.c (mono_runtime_exec_managed_code): Create a subthread
18094         for Main, and call back to the runtime to use it.
18095         Set the exit code when Main exits.
18096
18097         * gc.c: Make sure domain finalisation happens in a subthread.
18098         Re-enable threaded GC, fixing bug 31333 (again).
18099
18100         * environment.c: System.Environment internall calls (so far just
18101         ExitCode is here, the others are still in icall.c)
18102
18103         * appdomain.c (mono_runtime_cleanup): All threads running managed
18104         code should have finished before mono_runtime_cleanup() is
18105         reached, so no need to clean up threads.
18106
18107 2003-01-22  Martin Baulig  <martin@ximian.com>
18108
18109         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
18110         `gpointer func' arguments.      
18111         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
18112         but added `MonoThread *thread' argument.
18113         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
18114
18115         * threads.c (mono_new_thread_init): Added `gpointer func' argument
18116         and pass it to the mono_thread_start_cb callback.
18117         (mono_install_thread_callbacks): New public function to install a
18118         set of callbacks which are set by the debugger.
18119         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
18120
18121 2003-01-22  Martin Baulig  <martin@ximian.com>
18122
18123         * Makefile.am: Install debug-mono-symfile.h.
18124
18125 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
18126
18127         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
18128
18129 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
18130
18131         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
18132         * class.c (mono_ptr_class_get): correctly set access levels of pointers
18133         (mono_array_class_get): correctly set access levels of arrays
18134
18135 2003-01-20      Patrik Torstensson
18136         * image.h (MonoAssemblyName): changed major, minor, build, revision
18137         from signed to unsigned.
18138
18139 2003-01-20  sean kasun <skasun@azstarnet.com>
18140
18141         * reflection.c (load_cattr_value): Now this handles
18142         MONO_TYPE_SZARRAY.  Fixes bug #35629
18143
18144 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
18145
18146         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
18147         integer value
18148
18149 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18150
18151         * decimal.c: fixed bug #26056.
18152
18153 2003-01-17  Martin Baulig  <martin@ximian.com>
18154
18155         * gc.c: Raise an ExecutionEngineException instead of using g_error().
18156
18157 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18158
18159         * exception.[ch]:
18160         (mono_get_exception_type_initialization): new function.
18161
18162         * object.c: throw a TypeInitializationException when an exception is
18163         thrown invoking the class constructor.
18164
18165 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18166
18167         * reflection.c: fixed attribute reading.
18168
18169 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18170
18171         * icall.c:
18172         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
18173         provided, look for the type in the calling assembly and then in
18174         mscorlib; if the assembly name is provided, only try that one.
18175
18176 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
18177
18178         * object.c: register the vtable before there is a chance it's
18179         queried again recursively.
18180
18181 2003-01-13  Duncan Mak  <duncan@ximian.com>
18182
18183         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
18184         gc-internal.h. 
18185         
18186 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
18187
18188         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
18189
18190 2003-01-11  Martin Baulig  <martin@ximian.com>
18191
18192         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
18193         this to 20 for the release.
18194
18195 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
18196
18197         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
18198
18199         * loader.c (mono_method_get_marshal_info): bug fix
18200
18201         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
18202         structures with explicit layout
18203
18204 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18205
18206         * profiler.c: made the output more readable (and sorted). 
18207         Added caller information for the allocation profiler.
18208
18209 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
18210
18211         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
18212
18213 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18214
18215         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
18216         to get value types.
18217         
18218 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
18219
18220         * object.c, profiler.h, profiler.c, profiler-private.h:
18221         Added object allocation profiler.
18222
18223 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
18224
18225         * reflection.h, reflection.c: handle global methods.
18226         Compress blob entries.
18227
18228 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
18229
18230         * marshal.c: fix compilation.
18231
18232 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
18233
18234         * loader.c (mono_method_get_marshal_info): impl.
18235
18236         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
18237
18238 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18239
18240         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
18241         for reference types.
18242
18243 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
18244
18245         * loader.c: fixed off by one error in loaded parameter names.
18246
18247 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
18248
18249         * marshal.c (mono_marshal_get_icall_wrapper): like
18250         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
18251         instead of a MonoMethod.
18252
18253 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18254
18255         * decimal.c: fixed bug #36537.
18256
18257 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18258
18259         * marshal.c: throw a missing method exception if a
18260         P/Invoke method is not found.
18261
18262 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18263
18264         * icall.c: allow a null this for constructors.
18265
18266 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18267
18268         * icall.c: raise the proper exceptions if the arguments to the
18269         internal Invoke are incorrect.
18270
18271 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18272
18273         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18274
18275 2003-01-03  Martin Baulig  <martin@ximian.com>
18276
18277         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18278
18279 2002-12-31  Martin Baulig  <martin@ximian.com>
18280
18281         * debug-mono-symfile.c: Completely rewrote the type section.
18282         Instead of using individual malloc()ed fields, we use one big
18283         continuous memory area and offsets into this area.
18284         See the comments in the source code for details.
18285
18286 2002-12-30  Martin Baulig  <martin@ximian.com>
18287
18288         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18289
18290 2002-12-30  Martin Baulig  <martin@ximian.com>
18291
18292         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18293         line number table in this data blob instead of using an external
18294         pointer.
18295
18296 2002-12-28  Martin Baulig  <martin@ximian.com>
18297
18298         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18299
18300 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18301
18302         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18303         as a boxed return type.
18304
18305 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18306
18307         * appdomain.c
18308         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18309         g_build_filename to properly get separators on the filename created.
18310
18311         * object.h: Small change, introduce MonoMarshalByRefObject to
18312         track the layout of that structure in the C# universe as we make
18313         changes there.
18314
18315 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18316
18317         * object.c: removed assert to allow static fields on interfaces.
18318         * loader.c: a TypeSpec may be used for any type, not just arrays.
18319
18320 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18321
18322         * class.c, class.h: added mono_class_array_element_size ().
18323         Ignore static methods in interfaces.
18324
18325 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18326
18327         * threads.c: fixed the build under cygwin.
18328
18329 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18330
18331         * reflection.c: handle nullref constants. Allocate keys for
18332         reflection handles with the GC.
18333
18334 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18335
18336         * threads.c, threads.h: added mono_thread_get_abort_signal()
18337         to get a suitable signal for thread abort.
18338
18339 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18340
18341         * metadata.c: fix handling of ExportedType table.
18342
18343 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18344
18345         * icall.c: added WriteWindowsDebugString internal call.
18346
18347 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18348
18349         * reflection.h: added fields to match C# implementation.
18350
18351 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18352
18353         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18354
18355 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18356
18357         * gc.h, gc-internal.h: Rename header for GC internal calls to
18358         gc-internal.h from gc.h as to not clash with Boehm GC having its
18359         header installed as <gc.h> in outside include paths.
18360         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18361         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18362
18363 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18364
18365         * icall.c: assign minor, build and revision in FillName.
18366
18367 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18368
18369         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18370         Added support for running code generated by Reflection.Emit.
18371
18372 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18373
18374         * appdomain.c: check for NULL argument in LoadFrom.
18375
18376 2002-12-10  Dick Porter  <dick@ximian.com>
18377
18378         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18379
18380 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18381
18382         * appdomain.c: fix buglet when building exe file name.  Handle full
18383         assembly name (needed after latest changes to AssemblyName).
18384         * image.c:
18385         (mono_image_close): free some hashtables.
18386
18387 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
18388
18389         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
18390         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
18391         on some systems (redhat 7.3) 
18392
18393 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
18394
18395         * threads.c: delete the critical section of a sync block,
18396         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18397
18398 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18399
18400         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18401
18402 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18403
18404         * appdomain.[ch]: handle the assembly preload event to try loading the
18405         assemblies using the paths we have in the current domain.
18406
18407         * assembly.[ch]: created an assembly preload hook that is called to try
18408         loading the assembly by other means that the ones provided here.
18409
18410         * domain.c: initialize the domain search path.
18411
18412         From now on, assemblies (TODO: except corlib and System) are loaded
18413         according to these rules when using mono_assembly_load ():
18414
18415                 1. It tries to load the assembly from the ApplicationBase
18416                 of the current domain appending .dll and .exe (TODO: have to
18417                 try loading from name/name.dll and name/name.exe).
18418
18419                 2. It tries the search path specified in PrivateBinPath for the
18420                 current domain (if any).
18421
18422                 3. Previous behavior.
18423
18424 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18425
18426         * icall.c: implemented GetInterfaceMap() related icall.
18427         * domain.c, loader.h: load MethodInfo in mono_defaults.
18428
18429 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18430
18431         * gc.c: disable the finalizer thread for now, untill all the issues
18432         with it are resolved.
18433
18434 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18435
18436         * string-icalls.c: handle embedded nulls in string ctor when the
18437         length is specified.
18438
18439 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18440
18441         * class.c: look for explicit interface implementation in parent
18442         classes, too.
18443
18444 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18445
18446         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18447
18448 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18449
18450         * gc.c: protect handles with a critical section.
18451
18452 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18453
18454         * icall.c:
18455         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18456         parameters. If no assembly specified, try getting the type from all
18457         the assemblies in the current domain, else, load the assembly and get
18458         the type from it.
18459
18460 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18461
18462         * marshal.c: applied patch from Aleksey Demakov that fixes
18463         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18464
18465 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18466
18467         * icall.c: fixed get_location.
18468
18469 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18470
18471         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18472         declarations to make it work with older gcc. 
18473
18474         * loader.c (mono_get_method): set signature->pinvoke for native calls
18475
18476 2002-11-20  Dick Porter  <dick@ximian.com>
18477
18478         * threads.c (mono_thread_init): Set the main thread's handle
18479
18480 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18481
18482         * gc.c: allow compilation without GC support. Changed to match the
18483         mono coding style.
18484
18485 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18486
18487         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18488
18489 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18490
18491         * reflection.c: set a public key token on the core assemblies.
18492
18493 2002-11-18  Dick Porter  <dick@ximian.com>
18494
18495         * threads.c: Split out some thread initialisation so that other
18496         files can set the start callback function.
18497
18498         * gc.c: Run finalisers in a separate thread, to avoid stack
18499         overflow.  Fixes bug 31333.
18500
18501         * appdomain.c: Set up GC finalisation thread.
18502
18503         * reflection.c: 
18504         * object.c: 
18505         * domain.c: Use gc.h macros for GC_malloc
18506         
18507 2002-11-15  Dick Porter  <dick@ximian.com>
18508
18509         * threadpool.c: 
18510         * threads.c:
18511         * appdomain.c: Removed mono_runtime_init_with_attach(),
18512         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
18513         merging the extra parameter with the existing function.  Removed
18514         unneeded code in mono_thread_attach().
18515
18516 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
18517
18518         * image.c (mono_image_loaded_by_guid): a method to get loaded
18519         images by guid. 
18520         (load_metadata_ptrs): we store the guid as string.
18521
18522 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
18523
18524         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
18525
18526         * metadata.c (mono_guid_to_string): imported method form Zoltan
18527         Varga (slightly modified)
18528
18529         * assembly.c (mono_assembly_open): load precompiled code
18530
18531         * loader.h (MonoMethod): we store the method token for use in the
18532         aot compiler. 
18533
18534 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18535
18536         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
18537         the hook function called when an assembly is loaded.
18538         
18539         * domain.c: Modified file.
18540         (mono_domain_assembly_load): removed hash table insertion of assemblies.
18541
18542         Fixes bug #33196.
18543
18544 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
18545
18546         * reflection.c: Map PEFileKind to the value expected by the WinNT
18547         image loader. 
18548
18549 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18550
18551         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
18552         Read until the buffer is filled completely.
18553
18554 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18555
18556         * icall.c: implemented MonoType.InternalGetEvent ().
18557
18558 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18559
18560         * appdomain.c: implemented InitAppDomainSetup. Delayed
18561         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
18562         the entry_assembly.
18563
18564         * assembly.c: base_dir is now an absolute path ending with
18565         G_DIR_SEPARATOR.
18566
18567         * icall.c: modified get_location according to the above changes.
18568
18569         * object.c: init AppDomain.SetupInformation for the default domain after
18570         we have the entry assembly.
18571
18572         * domain.c: when unloading a domain, setup = NULL.
18573
18574 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
18575
18576         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
18577
18578 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
18579
18580         * object.h, object.c: introduced mono_object_get_virtual_method ()
18581         to lookup the method invoked on an object when a callvirt is done on
18582         a method.
18583         * icall.c: make MethodInfo::Invoke() always do a virtual call.
18584
18585 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18586
18587         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
18588         current domain when loaded an assembly and failed to load it.
18589
18590         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
18591
18592 2002-10-31  Dick Porter  <dick@ximian.com>
18593
18594         * icall.c: 
18595         * file-io.h: 
18596         * file-io.c: Return the error status in a parameter, as the
18597         GetLastError() value has long since been blown away if we try and
18598         look it up in a subsequent internal call invocation.  Delete the
18599         GetLastError() internal call, because it's useless.
18600
18601 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
18602
18603         * class.[ch]: added cast_class to fix bug 29517
18604
18605 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
18606
18607         * marshal.c: create valid IL code in the filter clause:
18608         the new JIT is less forgiving:-)
18609
18610 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18611
18612         * icall.c: removed get_property internal call.
18613
18614 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
18615
18616         * appdomain.h domain.c: Added an ID to appdomains.
18617         
18618         * threads.c threads.h icall.c: Implement icall
18619         Thread:GetDomainID(), and remove unused icall 
18620         CurrentThreadDomain_internal.
18621
18622 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18623
18624         * icall.c: Don't recurse through the base types in GetConstructor.
18625         Fixes bug #32063. 
18626
18627 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18628
18629         * mempool.h, mempool.c: added mono_mempool_empty() and
18630         mono_mempool_stats().
18631
18632 2002-10-23  Dick Porter  <dick@ximian.com>
18633
18634         * file-io.c: 
18635         * file-io.h: 
18636         * icall.c: Added MonoIO.GetFileType internal call
18637
18638 2002-10-17  Dick Porter  <dick@ximian.com>
18639
18640         * appdomain.c (mono_runtime_cleanup): Don't signal the async
18641         delegate semaphore before waiting for all threads to finish,
18642         because new threads can also call async delegates.  Fixes bug
18643         32004.
18644
18645         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
18646         of 3 seconds, in case another async job is queued.  (This part is
18647         needed because the bug fix reintroduced the 3s exit lag.)  This
18648         makes the mono_runtime_shutdown flag superfluous.
18649
18650 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18651
18652         * reflection.c: include ehader size in method section headers.
18653         Really check for suplicated modules entries.
18654
18655 2002-10-17  Martin Baulig  <martin@gnome.org>
18656
18657         * debug-mono-symfile.c: Added back support for locals.
18658
18659 2002-10-14  Martin Baulig  <martin@gnome.org>
18660
18661         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
18662         MONO_TYPE_VOID.
18663
18664 2002-10-14  Martin Baulig  <martin@gnome.org>
18665
18666         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
18667         mono_class_get() instead of looking in the class cache. 
18668
18669 2002-10-13  Martin Baulig  <martin@gnome.org>
18670
18671         * debug-mono-symfile.c: Set version number to 28, include the
18672         signature in method names.
18673
18674 2002-10-13  Martin Baulig  <martin@gnome.org>
18675
18676         * debug-mono-symfile.h: Set version number to 27.
18677
18678 2002-10-11  Martin Baulig  <martin@gnome.org>
18679
18680         * gc.c: Don't register/unregister NULL pointers as disappearing links.
18681
18682 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18683
18684         * metadata.c, metadata.h: added helper function to allocate signatures.
18685
18686 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18687
18688         * icall.c: added internal call to get the location of machine.config.
18689
18690 2002-10-08  Martin Baulig  <martin@gnome.org>
18691
18692         * debug-mono-symfile.c: Ignore classes with a pending init for the
18693         moment.
18694
18695 2002-10-03  Dick Porter  <dick@ximian.com>
18696
18697         * threads.c: Freebsd pthread_t is a pointer
18698
18699 2002-10-03  Dick Porter  <dick@ximian.com>
18700
18701         * socket-io.c: Implemented GetHostName_internal
18702
18703 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18704
18705         * mono-config.c:
18706         (mono_config_parse_file): don't leak the text.
18707
18708 2002-10-02  Martin Baulig  <martin@gnome.org>
18709
18710         * debug-mono-symfile.c: Added support for methods.
18711
18712 2002-10-01  Martin Baulig  <martin@gnome.org>
18713
18714         * debug-mono-symfile.c: Don't emit methods and line numbers for
18715         the dynamic symbol file, just write the type table.  We can easily
18716         have an external helper program which creates a symbol file for an
18717         IL file.        
18718
18719 2002-10-01  Dick Porter  <dick@ximian.com>
18720
18721         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
18722         Only add the handle to the cleanup array when we're about to
18723         launch the thread.  Bug 31425 deadlocked when the test was run on
18724         mono under w32.
18725
18726 2002-10-01  Martin Baulig  <martin@gnome.org>
18727
18728         * debug-mono-symfile.c: Added support for properties.
18729
18730 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18731
18732         * reflection.c: unaligned store fix from Mark Crichton
18733         <crichton@gimp.org>.
18734
18735 2002-09-27  Martin Baulig  <martin@gnome.org>
18736
18737         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
18738         New interncall.
18739
18740 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18741
18742         * assembly.h, assembly.c: use a sane API to hook into the assembly
18743         loading process instead of a useless special-purpouse hack
18744         (ngen needs a hook, too, for example).
18745
18746 2002-09-27  Dick Porter  <dick@ximian.com>
18747
18748         * threads.c (mono_thread_init): Call GetCurrentProcess() so
18749         io-layer can set up some process handle info.  Not needed on w32,
18750         but doesn't hurt either.
18751
18752         * process.c: Pass the program name in the second parameter to
18753         CreateProcess, so the path is searched.  Include the working
18754         directory. Implemented process name, process enumeration, and some
18755         process detail internal calls.
18756         
18757         * icall.c: Added internal calls for process lookup, and some
18758         process details
18759
18760 2002-09-26  Martin Baulig  <martin@gnome.org>
18761
18762         * assembly.c (mono_install_open_assembly_hook): New global
18763         function to install a function to be invoked each time a new
18764         assembly is loaded.
18765         (mono_assembly_open): Run this callback function if set.
18766
18767         * debug-mono-symfile.c: Put back line numbers for the dynamic
18768         symbol file and also record the .il file as source file.  This
18769         allows us to install the temporary symbol file as `file.dbg' just
18770         like a compiler-generated one.
18771
18772 2002-09-26  Nick Zigarovich <nick@chemlab.org>
18773
18774         * Corrected typo in gc.c (BOHEM vs BOEHM).
18775
18776 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18777
18778         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
18779         GetProperties. Also avoid calling g_slist_length in GetProperties and
18780         GetMethods.
18781
18782 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18783
18784         * reflection.c: avoid unaligned stores (bug spotted by
18785         Mark Crichton  <crichton@gimp.org>).
18786
18787 2002-09-25  Martin Baulig  <martin@gnome.org>
18788
18789         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
18790         instead of guint64 for addresses and added prologue/epilogue info.
18791
18792 2002-09-25  Martin Baulig  <martin@gnome.org>
18793
18794         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
18795         store line number info.  For the dynamic symbol file, we only need
18796         to provide the JIT generated dynamic line number info for the dynamic
18797         symbol file.
18798
18799 2002-09-25  Martin Baulig  <martin@gnome.org>
18800
18801         * debug-mono-symfile.h: Incremented version number.
18802
18803 2002-09-24  Martin Baulig  <martin@gnome.org>
18804
18805         * class.c (mono_debugger_class_init_func): New global function
18806         pointer variable.
18807         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
18808         call it.
18809
18810         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
18811         function.  This is called via the mono_debugger_class_init_func
18812         hook to add all types to the dynamic type table.
18813         (ves_icall_MonoDebugger_GetType): New interncall to get a class
18814         from its metadata token.
18815
18816         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
18817         New interncall for the debugger.
18818
18819 2002-09-24  Nick Drochak <ndrochak@gol.com>
18820
18821         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
18822         before using it in case it is null.
18823         
18824 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18825
18826         * metadata.c: allow custom modifiers in local var signatures
18827         (bug spotted by Zoltan Varga).
18828
18829 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18830
18831         * class.c: deal with the <Module> class that may have a NULL vtable.
18832         Eliminate warnings.
18833
18834 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18835
18836         * image.c, image.h: more strong name helpers.
18837         * monosn.c: more work: convert pem keys to cryptoapi format.
18838
18839 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18840
18841         * string-icalls.c: speedup IndexOf.
18842
18843 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18844
18845         * icall.c: updates from Zoltan.2.Varga@nokia.com.
18846
18847 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18848
18849         * icall.c: cleanup: use mono_object_domain ().
18850
18851 2002-09-23  Martin Baulig  <martin@gnome.org>
18852
18853         * debug-mono-symfile.c: Improved type support.
18854
18855 2002-09-22  Martin Baulig  <martin@gnome.org>
18856
18857         * debug-mono-symfile.c: Added support for reference types and strings.
18858
18859 2002-09-22  Martin Baulig  <martin@gnome.org>
18860
18861         * debug-mono-symfile.c: Started to work on the type table.
18862
18863 2002-09-21  Martin Baulig  <martin@gnome.org>
18864
18865         * debug-mono-symfile.c: Largely reworked the symbol table format.
18866         The symbol table is now incrementally updated each time a new
18867         method is added.  We're now also using our own magic and version
18868         so that you don't need to recompile all your classes if the
18869         dynamic table changes.
18870         (mono_debug_update_mono_symbol_file): Removed.
18871         (mono_debug_symfile_add_method): New function to add a method.
18872
18873 2002-09-21  Martin Baulig  <martin@gnome.org>
18874
18875         * icall.c
18876         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
18877         New interncall.
18878
18879         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
18880         New interncall to get a method from its metadata token.
18881
18882 2002-09-21  Martin Baulig  <martin@gnome.org>
18883
18884         * debug-mono-symfile.c: Create type table.
18885
18886 2002-09-20  Martin Baulig  <martin@gnome.org>
18887
18888         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
18889
18890 2002-09-20  Martin Baulig  <martin@gnome.org>
18891
18892         * debug-mono-symfile.c: Provide information about params and locals.
18893
18894 2002-09-20  Martin Baulig  <martin@gnome.org>
18895
18896         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
18897         New interncall.
18898
18899         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
18900         interncall to get a method from its metadata token.
18901
18902 2002-09-20  Martin Baulig  <martin@gnome.org>
18903
18904         * debug-mono-symfile.c: Added a few checks for method->header
18905         being non-NULL.  This should never happen, but for the moment
18906         let's use a g_warning() rather than a g_assert().
18907
18908 2002-09-19  Mark Crichton  <crichton@gimp.org>
18909
18910         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
18911         even if support for it isn't present.  Added an #ifdef to fix this.
18912
18913         * socket-io.c: Added checks back for Solaris support.
18914
18915 2002-09-19  Martin Baulig  <martin@gnome.org>
18916
18917         * debug-mono-symfile.c (read_string, write_string): Reflect latest
18918         changes in the symbol file format.
18919
18920 2002-09-18  Martin Baulig  <martin@gnome.org>
18921
18922         * debug-mono-symfile.c: Set version number to 21.
18923
18924 2002-09-18  Dick Porter  <dick@ximian.com>
18925
18926         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
18927         on netbsd.  Fixes bug 30051.
18928
18929 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18930
18931         * reflection.c:
18932         (set_version_from_string): little fix.
18933
18934 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18935
18936         * monosn.c, Makefile.am: added strong name utility.
18937         * reflection.h, reflection.c: implemented delayed signing,
18938         locale, version and hash id assembly attributes.
18939
18940 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18941
18942         * loader.c, metadata.c: load param attributes in signatures.
18943
18944 2002-09-16  Martin Baulig  <martin@gnome.org>
18945
18946         * debug-mono-symfile.c: Added string table with all method names.
18947
18948 2002-09-14  Martin Baulig  <martin@gnome.org>
18949
18950         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
18951         fast method lookup.
18952
18953 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18954
18955         * reflection.c: record the public key token of referenced assemblies.
18956
18957 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18958
18959         * image.c, image.h: added functions to get the strong name and the
18960         public key of an assembly.
18961         * pedump.c: use them.
18962
18963 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
18964
18965         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
18966
18967 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
18968
18969         * marshal.c (mono_marshal_get_managed_wrapper): Added
18970         MONO_TYPE_BOOLEAN 
18971
18972 2002-09-11  Martin Baulig  <martin@gnome.org>
18973
18974         * gc.c: Call GC_unregister_disappearing_link() on all links when
18975         finalizing them, this is necessary to aviod a crash in boehm's
18976         finalize handler.
18977
18978 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18979
18980         * gc.c: handle GetTarget for finalized objects spotted and fixed by
18981         nick@chemlab.org.
18982
18983 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18984
18985         * icall.c: implemented MonoType::Module.
18986         * reflection.c, reflection.h: mono_module_get_object () from
18987         Tomi Pakarinen <tomi.pakarinen@welho.com>.
18988
18989 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18990
18991         * icall.c: ignore overridden methods in GetMethods ().
18992         Fix for FieldInfo::SetValue().
18993         * object.c: handle float/double in runtime invoke.
18994
18995 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18996
18997         * object.c: allow a constructor to be called again on an object.
18998
18999 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19000
19001         * class.h, class.c: move field layout code to it's own function and
19002         export it. Get an interface id earlier. Move fields in MonoClass
19003         so they are more cache friendly and align the bitfields.
19004         * loader.c: temporary handle get_param_names() for a runtime method.
19005         * reflection.c, reflection.h: more code to handle runtime creation of
19006         types.
19007
19008 2002-09-09  Martin Baulig  <martin@gnome.org>
19009
19010         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
19011         signature with the pinvoke field being set for the actual call.
19012
19013 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19014
19015         * icall.c: removed some unused icalls. Start of map of glib charsets
19016         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
19017
19018 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19019
19020         * debug-helpers.c: break infinite loop (found and fixed by
19021         Holger Arnold <harnold@gmx.de>).
19022
19023 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19024
19025         * icall.c: target may be null in create_delegate.
19026
19027 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19028
19029         * marshal.c: handle a boolean return type.
19030
19031 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19032
19033         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
19034
19035 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19036
19037         * gc.c: fix weakreferences.
19038
19039 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19040
19041         * icall.c: added icall to get default codepage.
19042
19043 2002-09-03  Dick Porter  <dick@ximian.com>
19044
19045         * threads.h: 
19046         * threads.c: Use MonoThread instead of MonoObject where
19047         apropriate.
19048
19049         Store running thread objects in a hash table, so that we have all
19050         the info to hand when waiting for them to finish
19051         (means we don't need OpenThread() any more, so mingw builds should
19052         be fully functional again.)
19053
19054         * verify.c:
19055         * object.h: Added thread ID to MonoThread
19056
19057 2002-09-03  Martin Baulig  <martin@gnome.org>
19058
19059         * icall.c (System.Reflection.Assembly::get_location): New interncall.
19060
19061 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19062
19063         * icall.c: fixed leak in get_temp_path. Thanks lupus.
19064
19065 2002-09-03  Martin Baulig  <martin@gnome.org>
19066
19067         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
19068         argument to store the end address of the disassembled instruction.
19069
19070         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
19071         here from debug-symfile.h.
19072         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
19073         JIT into this struct.
19074         (MonoSymbolFile): Added `char *image_file' field.
19075         (MonoDebugGetMethodFunc): Removed.
19076         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
19077         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
19078         (mono_debug_find_method): New method.
19079
19080         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
19081         create a full symbol file.
19082         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
19083         and static symbol files.
19084         (mono_debug_find_method): The symbol file keeps an internal method hash,
19085         call this to get a MonoDebugMethodInfo from a MonoMethod.
19086
19087         * debug-symfile.[ch]: Removed.
19088
19089 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
19090
19091         * image.c (do_mono_image_open): Remove linker version check.
19092
19093 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
19094
19095         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
19096         wrappers for instance methods.
19097         
19098 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19099
19100         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
19101
19102 2002-08-28  Dick Porter  <dick@ximian.com>
19103
19104         * Makefile.am: Export HOST_CC for w32 builds
19105
19106 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19107
19108         * file-io.c process.c: MonoString are null terminated, no
19109         need for mono_string_to_utf16() anymore.
19110
19111 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19112
19113         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
19114
19115 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
19116
19117         * icall.c, reflection.h: speedup System.MonoType.
19118
19119 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19120
19121         * reflection.c: allow null as the value of a string argument in
19122         custom attributes constructors.
19123
19124 2002-08-27  Martin Baulig  <martin@gnome.org>
19125
19126         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
19127         `trampoline_address' field.
19128
19129 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
19130
19131         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
19132         check (fixes bug #29486) 
19133
19134 2002-08-27  Martin Baulig  <martin@gnome.org>
19135
19136         * debug-mono-symfile.c: Changed the file format in a way that allows us
19137         open it read-only and to use a specially malloced area for all the
19138         dynamic data.  We can now also generate a symbol file on-the-fly if we're
19139         debugging IL code and there is no MCS generated symbol file for it.
19140
19141 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19142
19143         * object.c: added a define for a good string and array
19144         creation speedup (not enabled by default because we need to deal with
19145         the synch stuff).
19146
19147 2002-08-26  Martin Baulig  <martin@gnome.org>
19148
19149         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
19150         function to create a dynamic symbol file.  This is used by the
19151         debugger to create a symbol file for IL code on-the-fly.
19152
19153 2002-08-26  Martin Baulig  <martin@gnome.org>
19154
19155         * loader.c (mono_lookup_pinvoke_call): Include the error message
19156         from g_module_error() in the error message.
19157
19158 2002-08-24  Martin Baulig  <martin@gnome.org>
19159
19160         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
19161         function to update the symbol file.  The symbol file is mmap()ed
19162         writable, but private.  This allows us to install the symbol file
19163         together with the assembly.
19164
19165 2002-08-24  Martin Baulig  <martin@gnome.org>
19166
19167         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
19168         but they can read the new symbol file format which mcs is now creating.
19169
19170         * debug-symfile.c (mono_debug_find_source_location): Moved to
19171         debug-mono-symfile.c; this is now operating on the new symbol file.
19172
19173 2002-08-23  Martin Baulig  <martin@gnome.org>
19174
19175         * debug-helpers.c (mono_method_desc_from_method): New function to get
19176         a MonoMethodDesc from a MonoMethod.
19177
19178 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19179
19180         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
19181         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
19182
19183 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19184
19185         * string-icalls.[ch]: make helper methods static.
19186
19187 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19188
19189         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
19190         types to it and to SetValueInternal.
19191
19192         * object.c: Moved handle_enum label to its proper place. This was the
19193         f... bug! ;-)
19194
19195         This time i compiled mcs and gtk-sharp and they both work.
19196
19197 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19198
19199         * icall.c: reverted partially my previous patch until 
19200         object.c:set_value handles enums correcly.
19201
19202 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19203
19204         * icall.c:
19205         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
19206         (ves_icall_System_Environment_get_MachineName): removed warning when
19207         compiling under cygwin.
19208
19209 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19210
19211         * object.c: fixed field_get_value() for reference types.
19212
19213 2002-08-22  Dick Porter  <dick@ximian.com>
19214
19215         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
19216         Don't free a buffer while it's still needed.  Patch from Jonathan
19217         Liger <Jonathan.liger@wanadoo.fr>
19218
19219 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
19220
19221         * icall.c (ves_icall_System_Environment_get_Platform): Add new
19222         internal call.
19223
19224 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
19225
19226         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
19227         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
19228
19229         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
19230         we call unmanaged code which throws exceptions.
19231
19232 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19233
19234         * appdomain.h: added per-domain entry_assembly.
19235         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
19236         arguments.
19237         * icall.c: Assembly::GetEntryAssembly icall.
19238         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
19239         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
19240
19241 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19242
19243         * appdomain.h, gc.c: added mono_domain_finalize ().
19244
19245 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19246
19247         * object.c:
19248         (mono_print_unhandled_exception): changed g_warning by g_printerr
19249         because g_log has a 1024 characters limit (yeah, i got a big stack
19250         trace). Don't print exception name, that should be in ToString 
19251         returned string.
19252
19253 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19254
19255         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19256         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19257
19258 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19259
19260         * object.c:
19261         (mono_print_unhandled_exception): after previous commit, i realized
19262         that MS calls ToString on the exception. I changed this function to
19263         do that. This way we get stack_trace for free.
19264
19265 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19266
19267         * object.c:
19268         (mono_print_unhandled_exception): invoke Message property instead of
19269         getting 'message' field from Exception. Don't allocate memory for
19270         'trace' and 'message' if not needed.
19271
19272 2002-08-18  Dick Porter  <dick@ximian.com>
19273
19274         * unicode.c: Fix asserts to match Encoder.cs checks
19275
19276 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19277
19278         * marshal.c: fix unaligned store issue and a few wrong
19279         opcode argument types.
19280
19281 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19282
19283         * icall.c: added GetUninitializedObjectInternal internal call.
19284
19285 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19286
19287         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19288         to the right domain.
19289
19290 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19291
19292         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19293
19294         * class.c (class_compute_field_layout): set blittable to false for Strings
19295
19296         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19297
19298 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19299
19300         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19301         first chunk of code to create types at runtime. Code to
19302         handle ReflectedType/DeclaringType. Make reflection handles
19303         domain specific.
19304
19305 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19306
19307         * class.c: set correct name in arrays.
19308
19309 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19310
19311         * appdomain.c (mono_domain_transfer_object): make it work with
19312         valuetypes. bug fixes.
19313
19314 2002-08-12  Dick Porter  <dick@ximian.com>
19315
19316         * object.h: Rename some parameters to avoid c++ keywords (Patch
19317         from Joseph Wenninger <kde@jowenn.at>)
19318
19319 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19320
19321         * icall.c: added icall to implement Assembly.GetFile*.
19322
19323 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19324
19325         * reflection.h, reflection.c: code to embed managed resources.
19326
19327 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19328
19329         * class.c: move all the type size stuff into
19330         class_compute_field_layout().
19331
19332 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19333
19334         * class.c: ensure enums have always the correct instance size.
19335         * unicode.c: remove wrong assert.
19336
19337 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19338
19339         * assembly.c: fix mem corruption issue.
19340         * image.h, image.c: added mono_image_get_resource () to access
19341         managed resources.
19342         * icall.c: implemented Assembly.EntryPoint property and some
19343         Managed Resources related internalcalls.
19344
19345
19346 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19347
19348         * image.c, image.h: impemented mono_image_get_entry_point ().
19349         * appdomain.c: use mono_image_get_entry_point.
19350
19351 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19352
19353         * reflection.c: support the object type argument when loading
19354         custom attributes.
19355
19356 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19357
19358         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19359         String as return type.
19360
19361 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19362
19363         * reflection.c: fix encoding of named args for custom attrs to match
19364         the ms implementation. Read them back when instantiating custom
19365         attributes.
19366
19367 2002-08-02  Radek Doulik  <rodo@ximian.com>
19368
19369         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19370         by Dietmar as quick fix
19371         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19372         16 as stack size, used on more places as quick fix before Dietmar
19373         will fix it properly
19374
19375 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19376
19377         * object.h, object.c: added accessors for fields and properties.
19378
19379 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19380
19381         * class.c, class.h: made mono_class_get_field_from_name ()
19382         loop on parent types.
19383         Added mono_class_get_property_from_name ().
19384
19385 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19386
19387         * class.c, class.h: move the code to setup the type vtable in its own
19388         function so that it can be reused also for types created at runtime.
19389         Eliminate the "class" identifier from the header file.
19390         * reflection.c: setup the vtable for enums so that we can create
19391         objects for use in SetConstant ().
19392
19393 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
19394
19395         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
19396         instead of the delegate itself as this pointer (bug #28383)
19397
19398 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19399
19400         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19401         conversions.
19402
19403 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19404
19405         * loader.c: don't set the pinvoke bit on icalls.
19406
19407 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19408
19409         * debug-helpers.c (mono_method_full_name): only print a number to
19410         indicate wrapper type (so that the output is more readable in traces).
19411
19412 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19413
19414         * class.c (mono_class_init): include method override patch from Paolo
19415
19416 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19417
19418         * icall.c: fixed GetTypeCode().
19419
19420 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19421
19422         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19423         use real delegate invoke function to make it work with multicast
19424         delegates (fix bug# 28291).
19425
19426 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19427
19428         * object.c: load constant strings.
19429
19430 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19431
19432         * reflection.c: no magic numbers.
19433         * tabledefs.h: security action enum.
19434
19435 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19436
19437         * assembly.c: fix possible memory corruption.
19438
19439 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19440
19441         * reflection.h, reflection.c: added support for linking resources.
19442         * verify.c: check we have an updated corlib.
19443
19444 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19445
19446         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19447         string arrays.
19448         (mono_marshal_string_array): null terminate unmanaged string arrays.
19449         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19450
19451 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19452
19453         * icall.c: Type.GetType () can now return also types from the
19454         calling assembly.
19455
19456 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19457
19458         * loader.h, loader.c: stack walking support.
19459         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19460         GetCallingAssembly.
19461
19462 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19463
19464         * marshal.c: added optimisations for blittable types 
19465
19466         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19467         (mono_class_setup_mono_type): set blittable attribute for single
19468         and double.
19469
19470         * marshal.c (mono_string_utf8_to_builder): impl.
19471         (mono_string_builder_to_utf8): impl.
19472         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19473
19474 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19475
19476         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19477         (mono_marshal_get_managed_wrapper): impl. byref types
19478
19479 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19480
19481         * icall.c:
19482         (search_method): don't display debug message. 
19483
19484 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19485
19486         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19487
19488 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19489
19490         * appdomain.c: set the missing filename when throwing exception.
19491
19492 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19493
19494         * metadata.c (mono_type_size): code cleanup
19495         (mono_type_stack_size): removed some test code
19496
19497 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
19498
19499         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
19500         mono_get_exception_file_not_found now.
19501
19502         * exception.c (mono_exception_from_name_two_strings): New version
19503         that will call a constructor with two string arguments. 
19504         (mono_get_exception_file_not_found): New helper routine, used to
19505         report file-not-found errors.
19506
19507 2002-07-20  Dick Porter  <dick@ximian.com>
19508
19509         * process.h:
19510         * process.c: Pass file handles to CreateProcess
19511         
19512         * icall.c:
19513         * file-io.h:
19514         * file-io.c: Implemented CreatePipe
19515
19516 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19517
19518         * metadata.c (mono_get_param_info): set alignment for value types
19519
19520 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19521
19522         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
19523         Constify mono_domain_assembly_open().
19524         * loader.c: handle null namespace in icalls.
19525
19526 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19527
19528         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
19529         (emit_str_to_ptr_conv): marshal object as structs
19530
19531         * metadata.c (mono_type_to_unmanaged): marshal object as structs
19532
19533         * marshal.c (mono_marshal_get_runtime_invoke): support value types
19534
19535 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
19536
19537         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
19538         (mono_marshal_get_native_wrapper): we an now return value types
19539
19540 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19541
19542         * verify.c: more checks implemented.
19543
19544 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
19545
19546         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
19547         (fix bug #27695)
19548         (mono_marshal_get_native_wrapper): allow byref arguments
19549         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
19550         impl. PtrToStringXXX methods
19551         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
19552         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
19553         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
19554         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
19555         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
19556
19557 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19558
19559         * reflection.c: fix buglet in parsing an assembly name.
19560
19561 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19562
19563         * marshal.c (emit_ptr_to_str_conv): first impl.
19564
19565 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19566
19567         * object.c, class.h: cache the vtable in the class as suggested by
19568         vargaz@freemail.hu (Zoltan Varga).
19569
19570 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19571
19572         * class.h, loader.c: added mono_field_from_token().
19573         * verify.c: first cut of type checking code.
19574
19575 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19576
19577         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
19578
19579 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
19580
19581         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
19582         (fix bug #27782)
19583         (mono_marshal_get_remoting_invoke): impl.
19584         (mono_delegate_begin_invoke): impl.
19585         (mono_mb_emit_save_args): impl.
19586         (mono_delegate_end_invoke): impl.
19587         (mono_marshal_get_delegate_begin_invoke):
19588         (mono_marshal_get_delegate_end_invoke):
19589         (mono_marshal_get_delegate_invoke): generate a special name for
19590         those methods (including the signature) and associate them whith
19591         the delegate class. 
19592
19593 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
19594
19595         * reflection.[ch]: 
19596         (mono_reflection_type_from_name): now it has a MonoImage parameter
19597         which is used as the default image to search the type in. If the image
19598         is NULL or getting the type from it fails, it defaults to corlib.
19599
19600         * icall.c: changed 1 call to mono_reflection_type_from_name to match
19601         new parameter.
19602
19603 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19604
19605         * reflection.c: update the parameter table index.
19606
19607 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19608
19609         * domain.c: don't include the mark byte in the string hash.
19610
19611 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19612
19613         * icall.cs: icall for Type.GetTypeCode ().
19614         * verify: a couple of fixes and disabled local initialization checks.
19615
19616 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
19617
19618         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
19619
19620         * debug-helpers.c (mono_method_full_name): print the type of the
19621         runtime wrapper
19622
19623         * metadata.c (mono_signature_hash): a hash function for signatures
19624         (mono_signature_hash): better hash algorithm
19625
19626         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
19627
19628         * debug-helpers.c (mono_method_full_name): this can now generate
19629         method names with signatures
19630
19631         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
19632         method dont have this pointers.
19633
19634 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19635
19636         * reflection.c: fixup typebuilder tokens.
19637         * image.c: fix buglet.
19638         * marshal.h: remove whitespace.
19639         * metadata.h, metadata.c: reinstate code that was removed.
19640         * verify.c: handle catch directives and fix another couple of bugs.
19641
19642 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
19643
19644         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
19645         (mono_marshal_get_native_wrapper): make it comp. with the old code
19646         (mono_marshal_get_native_wrapper): support boolean
19647         (mono_marshal_get_managed_wrapper): support more types
19648
19649 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
19650
19651         * class.c (class_compute_field_layout): compute class->blittable attribute.
19652
19653 2002-07-09  Dick Porter  <dick@ximian.com>
19654
19655         * threads.c: Make the thread cleaning up cope with threads that
19656         call ExitThread()
19657
19658 2002-07-08  Radek Doulik  <rodo@ximian.com>
19659
19660         * reflection.c (method_encode_code): use non-translated values to
19661         compute finally_start, this fixes exception handling on ppc, yay!
19662
19663         * decimal.h (struct signscale): fix endianess
19664
19665 2002-07-07  Radek Doulik  <rodo@ximian.com>
19666
19667         * reflection.c: swap box_val and not val
19668
19669 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19670
19671         * reflection.c, reflection.h: handle full assembly info in type name.
19672         Handle Type arguments when loading custom attributes.
19673         * icall.c: updated to use new mono_reflection_type_from_name () method.
19674
19675 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19676
19677         * loader.c:
19678         (method_from_memberref): also print assembly name when method not found.
19679
19680 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19681
19682         * icall.c:
19683         (ves_icall_TypeGetProperties): fixed bug #27473. 
19684
19685 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19686
19687         * reflection.c: display image name and token when cannot find the
19688         .ctor for an attribute.
19689
19690 2002-07-05  Martin Baulig  <martin@gnome.org>
19691
19692         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19693
19694 2002-07-04  Dick Porter  <dick@ximian.com>
19695
19696         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
19697         compile on mingw.  This will cause mingw builds to not wait for
19698         subthreads to terminate after the main thread does.  I've lodged a
19699         bug with the mingw developers for them to wrap OpenThread().
19700
19701 2002-07-03  Dick Porter  <dick@ximian.com>
19702
19703         * threads.c: Store thread IDs instead of handles, because
19704         GetCurrentThread() returns a pseudohandle and therefore stores
19705         useless values.  mono_thread_cleanup() continues checking the
19706         array of threads until it is empty, to cope with subthreads
19707         spawning new threads after the main thread has finished.
19708
19709         * profiler.h:
19710         * profiler.c:
19711         * profiler-private.h: Pass the thread ID to thread profiler
19712         functions, instead of a handle
19713
19714 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19715
19716         * verify.c: fixes to make it more usable.
19717         * pedump.c: added --verify code to verify IL code in an assembly.
19718
19719 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19720
19721         * reflection.c: turn errors into warnings to allow compiling corlib.
19722
19723 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19724
19725         * reflection.c: add special cases to compile corlib.
19726
19727 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19728
19729         * reflection.c: handle properties with only a set method.
19730
19731 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19732
19733         * opcodes.h: add enum with opcodes in opval order.
19734
19735 2002-07-01  Dick Porter  <dick@ximian.com>
19736         
19737         * object.h:
19738         * object.c (mono_runtime_run_main): Removed unneeded argument
19739
19740 2002-06-28  Martin Baulig  <martin@gnome.org>
19741
19742         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19743
19744 2002-06-27  Dick Porter  <dick@ximian.com>
19745
19746         * threads.c: Store the handle in both the parent thread and in the
19747         subthread, to minimise the time between starting a new thread and
19748         storing its ID.
19749
19750 2002-06-26  Dick Porter  <dick@ximian.com>
19751
19752         * appdomain.c (mono_runtime_cleanup): Close the socket library
19753         after all the threads have finished, not before
19754
19755 2002-06-26  Martin Baulig  <martin@gnome.org>
19756
19757         * debug-symfile.c (mono_debug_find_source_location): Added
19758         `guint32 *line_number' argument.  If it's not NULL, store the line number
19759         there and return the file name without the line number.
19760
19761 2002-06-25  Dick Porter  <dick@ximian.com>
19762
19763         * icall.c:
19764         * process.h:
19765         * process.c: Process forking and other support functions
19766
19767 2002-06-25  Dick Porter  <dick@ximian.com>
19768
19769         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
19770         things dont happen when the image is closed.
19771         (mono_image_lookup_resource): Walk the resource section looking
19772         for a particular entry
19773
19774         * cil-coff.h: PE resource section decoding
19775
19776 2002-06-25  Dick Porter  <dick@ximian.com>
19777         
19778         * assembly.h:
19779         * assembly.c: 
19780         (mono_assembly_foreach): Accessor functions to walk the list of
19781         loaded assemblies
19782         (mono_assembly_set_main):
19783         (mono_assembly_get_main): Process methods need to know which
19784         assembly is the "main" one
19785
19786         * object.c (mono_runtime_run_main): Record the main assembly
19787
19788         * debug-helpers.c: Fix typo
19789
19790 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
19791
19792         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
19793         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
19794
19795 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19796
19797         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
19798
19799 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
19800
19801         * image.c (do_mono_image_open): Initialize reference count,
19802         otherwise we leak the MonoImage.
19803
19804 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19805
19806         * reflection.c: small tweak to handle self-hosting.
19807
19808 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19809
19810         * reflection.c: fix type name parse code.
19811
19812 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19813
19814         * reflection.c: break out of the loop.
19815         * image.c: special case corlib.
19816
19817 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19818
19819         * reflection.c: add all the custom attrs at the end to ensure the
19820         ctors have been properly initialized when the attributes are defined
19821         in the current assembly.
19822
19823 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19824
19825         * reflection.c: handle correctly multiple-nested types.
19826
19827 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19828
19829         * row-indexes.h: fix typos.
19830         * reflection.c: adjust for typos and fix method_def_or_ref
19831         encoding in MethodImpl table.
19832
19833 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19834
19835         * reflection.c: fix entry point patching (thanks Serge!).
19836
19837 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
19838
19839         * verify.c: add check for System.Exception
19840
19841 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19842
19843         * image.c, class.c: minifix for code just c&p'ed.
19844         * reflection.c: warning fix.
19845         * object.h, loader.h, domain.c: load also StringBuilder.
19846
19847 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19848
19849         * marshal.h, marshal.c: some support code to handle complex marshaling.
19850
19851 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19852
19853         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
19854         Better signatures with vtable error dump.
19855
19856 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
19857
19858         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
19859
19860 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
19861
19862         * icall.c (ves_icall_Type_GetField): impl.
19863
19864 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19865
19866         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
19867         to retrieve a marshal description blob for a field or param.
19868
19869 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19870
19871         * reflection.h, reflection.c: change order of nested type emission
19872         to avoid table corruption. The NestedTypes table is sorted.
19873         * icall.c: change order of GetConstructor results to workaround mcs bug.
19874
19875 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19876
19877         * reflection.h, reflection.c: handle field and param marshal
19878         information.
19879
19880 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19881
19882         * icall.c, marshal.c marshal.h: more Marshal class implementation.
19883
19884 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19885
19886         * reflection.c: fix call convention.
19887
19888 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19889
19890         * reflection.h, reflection.c: mono_image_get_memberref_token()
19891         takes a type instead of a class, now. Added
19892         mono_image_get_array_token() to create tokens for the special
19893         multi-dim array methods.
19894
19895 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19896
19897         * assembly.c: handle modules (no assembly table). Split
19898         loading references in its own function.
19899         * class.c: handle moduleref resolution scope.
19900         * image.c, image.h: cache module name in image.
19901
19902 2002-06-07  Martin Baulig  <martin@gnome.org>
19903
19904         * reflection.c (mono_image_get_type_info): Only add a class layout entry
19905         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
19906
19907 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19908
19909         * icall.c: more signature fixes that used uint instead of int.
19910
19911 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19912
19913         * reflection.c: fixed signature of field refs.
19914
19915 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19916
19917         * class.c, reflection.c: handle typerefs of nested types
19918         (both on read and when writing files).
19919
19920 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19921
19922         * icall.c: fix method signatures that tried to workaround the previous
19923         typo, d'oh!
19924
19925 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19926
19927         * debug-helpers.c: fix typo.
19928
19929 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19930
19931         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
19932         rewrote the PE/COFF writing code (our programs are understood by the
19933         ms runtime, now).
19934
19935 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19936
19937         * gc.c, gc.h, icall.c: weakreference support.
19938
19939 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19940
19941         * Makefile.am, mono-config.c: use $(sysconfdir).
19942
19943 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19944
19945         * icall.c: changed default precision of Double.ToString() to 15.
19946         Fixed memory leak. Unified with Single.ToString.
19947
19948 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19949
19950         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
19951
19952 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19953
19954         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
19955         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
19956         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
19957         and myself.
19958
19959 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19960
19961         * debug-symfile.c, sysmath.c: yet more compilation fixes.
19962
19963 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19964
19965         * reflection.c, socket-io.c: more compilation fixes.
19966
19967 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19968
19969         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
19970         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
19971         unicode.c: warning and compiler compatibility fixes.
19972
19973 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19974
19975         * class.h, metadata.c: fixed warnings/compilation errors.
19976
19977 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19978
19979         * Makefile.am, mono-config.c, mono-config.h: configuration file
19980         support routines.
19981         * loader.c, loader.h: make Dll mapping configurable at runtime in the
19982         config file. Export methods to insert and lookup mappings.
19983
19984 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19985
19986         * reflection.c: handle types and boxed objects in custom attr
19987         constructors.
19988
19989 2002-05-30  Martin Baulig  <martin@gnome.org>
19990
19991         * debug-symfile.c
19992         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
19993
19994 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
19995
19996         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
19997         to lookup the implmap row for a P/Invoke method.
19998         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
19999         P/Invoke method from the runtime on an as needed basis.
20000
20001 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
20002
20003         * metadata.c (mono_metadata_parse_signature): impl.
20004
20005 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20006
20007         * class.c: handle .pack directive.
20008
20009 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20010
20011         * object.c: initialize static fields with RVA data.
20012
20013 2002-05-25  Martin Baulig  <martin@gnome.org>
20014
20015         * debug-symfile.c
20016         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
20017
20018 2002-05-24  Martin Baulig  <martin@gnome.org>
20019
20020         * debug-symfile.c
20021         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
20022         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
20023         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
20024
20025 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20026
20027         * object.c: special case string ctros in invoke.
20028         * gc.c: silly whitespace changes.
20029
20030 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
20031
20032         * threadpool.[ch]: impl. a threadpool that can
20033         be used by mint and mono.
20034
20035 2002-05-22  Martin Baulig  <martin@gnome.org>
20036
20037         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
20038         The first argument is now a `MonoReflectionModuleBuilder *', the return
20039         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
20040         `methods' field to get the method builder.  The `token' argument is the
20041         unfixed token.
20042
20043         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
20044         invalid characters instead of g_assert_not_reached()ing.  This seems
20045         to be the behaviour of mscorlib.
20046
20047 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
20048
20049         * object.c (mono_runtime_invoke_array): applied patch from Rachel
20050         Hestilow to fix bug #25104
20051
20052 2002-05-21  Martin Baulig  <martin@gnome.org>
20053
20054         * debug-symfile.c (mono_debug_find_source_location): New function.
20055         Looks up an IL offset in the line number table and returns the source
20056         location as a string.
20057
20058 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20059
20060         * icall.c:
20061         (mono_double_ToStringImpl): changed %f by %g until we have something
20062         better.
20063
20064 2002-05-21  Nick Drochak  <ndrochak@gol.com>
20065
20066         * icall.c : Use different name for Math.Pow's icall.  Needed to check
20067         parameters first in C#.
20068
20069 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20070
20071         * icall.c, reflection.h: added icall to get info about an event.
20072
20073 2002-05-20  Radek Doulik  <rodo@ximian.com>
20074
20075         * object.c (mono_value_box): don't use memcpy for boxing on BIG
20076         endian
20077         (mono_value_box): don't use memcpy for small sizes on
20078         architectures with unaligned access
20079
20080 2002-05-20  Martin Baulig  <martin@gnome.org>
20081
20082         * reflection.c (mono_reflection_setup_internal_class): Don't crash
20083         if `tb->parent == NULL'.
20084         (mono_reflection_create_internal_class): New function.  This is
20085         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
20086         for enum types.
20087
20088         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
20089         New interncall.
20090
20091 2002-05-19  Martin Baulig  <martin@gnome.org>
20092
20093         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
20094         argument to get the length, don't default to the array length.
20095
20096 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
20097
20098         * assembly.c (mono_assembly_setrootdir): New function used to
20099         override the MONO_ASSEMBLIES directory.
20100
20101 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20102
20103         * icall.c: ValueType_GetHashCode() initialize local var.
20104
20105 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20106
20107         * reflection.c: sort custom attributes table.
20108
20109 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20110
20111         * reflection.c: support named args in custom attributes (write support).
20112
20113 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20114
20115         * reflection.c: fix finally position calculation.
20116
20117 2002-05-15  Radek Doulik  <rodo@ximian.com>
20118
20119         * reflection.c: fixed endianess at many places
20120
20121         * icall.c (ves_icall_InitializeArray): comment out debug msg
20122
20123 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
20124
20125         * object.c (mono_unhandled_exception): new function to handle
20126         unhandled exceptions.
20127         (mono_unhandled_exception): call the UnhandledException event.
20128         (mono_runtime_delegate_invoke): impl.
20129
20130 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
20131
20132         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
20133         returns the RVA, not the direct pointer to the data. Handle the case
20134         when the class size is fixed.
20135
20136 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20137
20138         * reflection.c: fix some endianess issues.
20139
20140 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
20141
20142         * object.c (mono_runtime_invoke): is now able to catch exceptions.
20143
20144         * threads.c (mono_thread_init): added a callback which is invoked
20145         at thread start.
20146
20147 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20148         
20149         * icall.c: make GetHashCode return non-negative values.
20150
20151 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20152
20153         * object.c, icall.c, gc.c: revert to address-based hashcode.
20154
20155 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
20156
20157         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
20158
20159 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20160
20161         * icall.c, class.c: special case <Module>.
20162
20163 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
20164
20165         * icall.c: fix bug in GetNow().
20166
20167 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
20168
20169         * object.c (mono_runtime_class_init): make sure that we call all
20170         static class constructors.
20171
20172 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20173
20174         * reflection.c: sort methodsemantics table.
20175
20176 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20177
20178         * reflection.h, reflection.c: honour init locals setting.
20179
20180 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
20181
20182         * icall.c: copied Double ToStringImpl for Single ToStringImpl
20183
20184 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20185
20186         * reflection.c: support ContructorBuilders in attribute blob creation.
20187
20188 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20189
20190         * reflection.c: some changes to build a binary that can be run
20191         directly in windows.
20192
20193 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20194
20195         * loader.c: print a big message when an icall can't be found.
20196
20197 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20198
20199         * string-icalls.c: fix bug 24248.
20200
20201 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20202
20203         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
20204         icall.c, reflection.h: separate assembly loading by pathname and by
20205         assembly name. Use the MONO_PATH env var to search for assemblies.
20206
20207 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20208
20209         * assembly.c, image.h: add some support for assemblies
20210         with multiple modules.
20211         * class.c, class.h: export mono_class_from_typeref().
20212         * loader.c: remove duplicated code and use mono_class_from_typeref(),
20213         instead.
20214
20215 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20216
20217         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
20218         documentation says (the ECMA one is correct).
20219
20220 2002-05-02  Dick Porter  <dick@ximian.com>
20221
20222         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
20223         Don't name the synchronisation mutex.
20224
20225 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
20226
20227         * rand.c
20228         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
20229         Make the prototypes match.
20230         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
20231         Same.
20232
20233         * icall.c
20234         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
20235         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
20236         all systems have tm.tm_zone, so use strftime() with %Z to print
20237         the timezone abreviation into a temp string.
20238
20239         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
20240         rather than mono_array_addr() on a MonoString on Big Endian
20241         machines.
20242
20243 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
20244
20245         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
20246         fix bug 24041
20247
20248 2002-04-30  Dick Porter  <dick@ximian.com>
20249
20250         * socket-io.c: Cope with SOCKET being an integer rather than a
20251         pointer now.
20252
20253         * threads.c: Added Thread_free_internal, to deal with thread
20254         handle cleanup.  Moved calls to handle_store() and handle_remove()
20255         to start_wrapper(), so each can only be called once.  Allocate
20256         synchronisation blocks with GC_malloc(), and use GC finalisation
20257         to close the handles.
20258
20259         * icall.c: added System.Threading.Thread::Thread_free_internal
20260
20261 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20262
20263         * icall.c: support Environment.Exit, CommandLineArgs().
20264
20265 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20266
20267         * object.c, object.h: added mono_runtime_run_main () and
20268         mono_runtime_get_main_args () for use in System.Environment.
20269
20270 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20271
20272         * gc.c: fix thinko, enable actual finalization since the jit is now
20273         fixed.
20274
20275 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20276
20277         * gc.c, object.c: take into account that an object may be offset wrt the address
20278         returned by GC_malloc().
20279
20280 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20281
20282         * image.c: handle files without entries in the assembly table (modules).
20283
20284 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20285
20286         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20287         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20288         allowed to be null when it's System.Object class setup.
20289
20290 2002-04-27  Martin Baulig  <martin@gnome.org>
20291
20292         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20293         if `tb->parent == NULL' rather than crashing.
20294
20295 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20296
20297         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20298         calling acos() where asin() should have been called.
20299
20300 2002-04-26  Martin Baulig  <martin@gnome.org>
20301
20302         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20303         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20304         there's a subdirectory called `System', but we don't want to read that
20305         subdirectory as an assembly.
20306
20307 2002-04-25  Martin Baulig  <martin@gnome.org>
20308
20309         * debug-symfile.c: Reflect latest MonoString changes.
20310
20311 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20312
20313         * rand.c, rand.h: instance method icalls need to have an explicit
20314         this pointer as first argument in the C implementation.
20315
20316 2002-04-25  Nick Drochak <ndrochak@gol.com>
20317
20318         * icall.c: Fix typo in map for GetNonZeroBytes
20319
20320 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20321
20322         * string-icalls.c : String does now passes unit tests without any 
20323         errors, the following changes has been made:
20324         
20325         Implemented replace methods.
20326         Renaming of methods to (try) follow the standard.
20327         Fixed compare ordinal
20328         Made all memory allocated directly to function instead of via icall function.
20329         Small performance fix in is_in_array function
20330                         
20331  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20332
20333         c (mono_string_Internal_ctor_charp_int_int):
20334         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20335         sindex < 0, throw ArgumentOutOfRangeException instead of
20336         ArgumentNullException.
20337
20338         Added new check for length == 0, however
20339         I need to make it return String.Empty from the C code.
20340         
20341         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20342         that calculate the length for us here.
20343         
20344         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20345         mono_string_new_utf16 with mono_string_new, since value is utf8.
20346
20347 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20348
20349         * object.c: register the object for finalization if needed.
20350         Allocate one more char in the string for the terminating 0 char.
20351
20352 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20353
20354         * class.c, class.h, image.c: check if a type implemenst a destructor.
20355         Use the proper key for array class lookups.
20356         * icall.c: register the icalls in the System.GC class.
20357         * gc.c, gc.h: GC-related functions and icalls.
20358
20359 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20360
20361         * icall.c:
20362         * socket-io.c:
20363         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20364         changed a couple of free () by g_free ().
20365
20366         * decimal.c: one-liner in the comments for decimal2string ().
20367
20368 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20369
20370         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20371
20372 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20373
20374         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20375         * object.c (mono_runtime_invoke_array) : handle null in params
20376
20377 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20378
20379         * string-icalls.c: fixed bug in split (one off bug)
20380
20381 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20382
20383         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
20384         * icalls.c: added String::Equals as internal method
20385
20386 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20387
20388         * threads.c: fixed bug in the double interlocked functions
20389
20390 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
20391
20392         * threads.c: implemented all of the new interlocked icalls.
20393         * string-icalls.c: fix a bug in insert.
20394         * icalls.c: added the icalls for interlocked, removed old string functions.
20395         
20396 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20397
20398         * loader.c: fix off-by-one error when reading argument names.
20399
20400 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20401
20402         * profiler.c: win32 counter implementation (untested).
20403         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20404         (the latter needs testing and more complete impl. from win32 folks).
20405
20406 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20407
20408         * object.c: mono_array_new_full workaround mono_array_class_get
20409         problem.
20410
20411 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20412
20413         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20414         * object.h (mono_string_chars): Changed casting type.
20415
20416 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20417
20418         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20419                            method signatures to use gunichar2 instead of gint16.
20420
20421 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20422
20423         * object.h, object.c: domain-specific versions of mono_object_new and
20424         mono_array_new.
20425
20426 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20427
20428         * object.c: changed String layout
20429
20430         * string-icalls.c (mono_string_Internal_ctor_chara): added
20431         internal string constructors.
20432
20433 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20434
20435         * threads.c: pass 'this' to the thread start routine.
20436
20437 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20438
20439         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20440         InternalCompareStr don't call twice mono_string_cmp_char for the last
20441         character. Improved performance in mono_string_cmp_char.
20442
20443 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20444
20445         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20446         code into its own library: libmonoruntime.
20447
20448 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20449
20450         * object.h, object.c: changed array format so that szarrays do not
20451         require a bounds structure.
20452         * icall.c, appdomain.c: support for new szarray format.
20453
20454 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20455
20456         * metadata.c: compare also the retuns type when comparing signatures:
20457         we didn't do this as an optimization since really overloaded methods
20458         must differ also in the arguments, but this doesn't work with
20459         low-level IL code (or when using explicit conversion operators: see
20460         bug#23498 for an example).
20461
20462 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20463
20464         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20465
20466 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20467
20468         * icall.c: make MonoType::GetElementType its own icall.
20469
20470 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20471
20472         * icall.c: remove MonoMethod_get_Name().
20473         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20474         object.
20475
20476 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20477
20478         * string-icalls.c: optimized a few methods.
20479
20480 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20481
20482         * icall.c: added all new string internal calls
20483         * string-icalls.c: added, new string internal call implementation.
20484         * object.c: added mono_string_new_size for allocating a string a size
20485
20486 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20487
20488         * object.c (mono_object_isinst): use the same code as in the
20489         optimized x86 version.
20490
20491 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20492
20493         * profiler.c: TSC-based timer code (faster and more accurate).
20494         Not hooked up in configure, yet (set USE_X86TSC to 1).
20495
20496 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
20497
20498         * profiler.c, profiler.h: track time spent compiling methods.
20499         * threads.c: track thread creation/destruction.
20500
20501 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
20502
20503         * profiler.c, profiler.h, profiler-private.h: profiling interface
20504         and sample implementation. Moved here so that it can be used also by
20505         the jit.
20506
20507 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
20508
20509         * reflection.c, reflection.h: keep types and other handles separate in
20510         the hash tables for referred tokens. Add guid for modules.
20511
20512 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20513
20514         * assembly.c: fix bugs found with valgrind.
20515         * metadata.h, metadata.c: added mono_metadata_guid_heap().
20516
20517 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
20518
20519         * threads: added icall support for getting current domain for
20520                    the thread.
20521  
20522 2002-04-13  Martin Baulig  <martin@gnome.org>
20523
20524         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
20525         (MonoDebugVarInfo): Added `index' field for register based addresses.
20526         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
20527         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
20528         `MonoDebugVarInfo *params' and `guint32 this_offset' with
20529         `MonoDebugVarInfo *this_var'.
20530
20531         * debug-symfile.c (relocate_variable): New static function to write
20532         a location description for a local variable or method parameter.
20533
20534 2002-04-12  Martin Baulig  <martin@gnome.org>
20535
20536         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
20537         stack offset and begin/end scope address of a local variable.
20538         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
20539         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
20540         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
20541
20542         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
20543         Added new relocation types for start/end scope of a local variable.
20544
20545 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20546
20547         * object.h: add mono_object_domain() macro.
20548         * reflection.c: handle typespecs.
20549         * icall.c: MonoMethod::get_Name() implementation.
20550
20551 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20552
20553         * icall.c: String::GetHashCode() icall implementation.
20554
20555 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20556
20557         * icall.c: String::IndexOfAny icall.
20558         * object.c, object.h: make array->max_length more useful.
20559         Intrduced mono_object_class() and mono_string_length() macros.
20560
20561 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20562
20563         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
20564         instead of g_unichar_isdigit.
20565
20566 2002-04-11  Nick Drochak  <ndrochak@gol.com>
20567
20568         * icall.c: Implement a simple Double.ToString().
20569
20570 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20571
20572         * appdomain.h: only io-layer.h is supposed to be included.
20573         * icall.c: explicitly import environ. Fix warning.
20574
20575 2002-04-10  Nick Drochak  <ndrochak@gol.com>
20576
20577         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
20578                 return true even if it's not Daylight Savings time.
20579                 Only return false for the case where the function isn't
20580                 implemented for a plaform (read Windows).
20581
20582 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20583
20584         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
20585         data with a mutex.
20586
20587 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
20588
20589         * mempool.c (mono_mempool_alloc): only use g_malloc when
20590         absolutely necessary.
20591
20592 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20593
20594         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
20595
20596         * class.c (mono_class_vtable): use domain mempool to allocate vtable
20597         (mono_class_proxy_vtable): use domain mempool
20598
20599 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20600
20601         * appdomain.h, appdomain.c: split initialization that requires the
20602         execution engine support into mono_runtime_init().
20603
20604 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20605
20606         * class.c (mono_class_init): don't include vtable inside MonoClass
20607         to save some memory, gather some statistics.
20608         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
20609
20610 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20611
20612         * icall.c: internalcall implementation for ValueType.Equals().
20613
20614 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
20615
20616         * object.c (mono_message_init): moved 
20617         (mono_runtime_exec_main): new arch. independent impl.
20618         (mono_runtime_invoke_array): new method - like
20619         mono_runtime_invoke, but you can pass an array of objects.
20620         (mono_remoting_invoke): new arch. independent impl.
20621         (mono_message_invoke): new arch. independent impl.
20622         (mono_runtime_class_init): new arch. independent impl.
20623         (mono_runtime_object_init): new arch. independent impl.
20624
20625 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20626
20627         * metadata.c, object.c, reflection.c: documented the exported
20628         functions.
20629
20630 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20631
20632         * icall.c: simpler code to pass the assembly builder data to corlib.
20633         Implement GetNestedTypes() internalcall.
20634
20635 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20636
20637         * class.c: warn if a type can't be loaded.
20638
20639 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
20640
20641         * image.h: typedef MonoImageOpenStatus
20642         * types.h: removed unused file
20643         
20644 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
20645
20646         * icall.c: Enum_ToObject accepts enum value arguments.
20647
20648 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20649
20650         * class.c: move initialization of properties, events and nested
20651         classes, so that they happen for interfaces, too.
20652
20653 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20654
20655         * icall.c: cleanup some ugly casts in Array_SetValue*.
20656
20657 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20658
20659         * icall.c: the values array fro enums is of the correct type, now.
20660         Implement (correctly) getFullName instead of assQualifiedName for
20661         MonoType.
20662         * reflection.h, reflection.c: added mono_type_get_name ().
20663
20664 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20665
20666         * assembly.c, image.h: for each MonoImage, record from wich assembly
20667         it was loaded.
20668         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
20669         Make Type.Assembly work.
20670
20671 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
20672
20673         * debug-symfile.h: use char* instead of gpointer to avoid
20674         unnecessary casts.
20675
20676         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
20677
20678         * icall.c (ves_icall_InternalExecute): impl. FielSetter
20679         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
20680
20681 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
20682
20683         * icall.c (mono_message_init): impl. (code cleanup)
20684         (ves_icall_InternalExecute): impl. FieldGetter
20685
20686         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
20687         defined we call all (non-static)methods through the vtable. 
20688
20689 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
20690
20691         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
20692         finalizer even though the memory is still referenced (and the chunk of
20693         memory is not freed).
20694
20695 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20696
20697         * assembly.c: fix brokeness.
20698
20699 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
20700
20701         * class.c: kill some warnings. Check explicit interface method
20702         implementation also without considering the namespace.
20703         Load also literal strings in static class data.
20704
20705 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
20706
20707         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
20708         (default_assembly_name_resolver): Make the resolver take the
20709         "base" directory where the assembly was originally defined, so we
20710         can load DLLs that are in the same directory as the assembly that
20711         is being referenced.
20712
20713 2002-03-28  Dick Porter  <dick@ximian.com>
20714
20715         * file-io.h: 
20716         * file-io.c:
20717         * socket-io.c: 
20718         * unicode.h: 
20719         * unicode.c: Warning cleanups
20720
20721 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
20722
20723         * object.h, reflection.h: use the correct type instead of MonoObject.
20724
20725 2002-03-28  Martin Baulig  <martin@gnome.org>
20726
20727         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
20728         (mono_debug_update_symbol_file): Initialize classes if necessary.
20729
20730 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
20731
20732         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
20733         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
20734
20735 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
20736
20737         * assembly.h: fix function prototype.
20738         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
20739         * mono-endian.h: use const cast.
20740
20741 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20742
20743         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
20744
20745 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
20746
20747         * loader.c: don't assert when a typeref can't be loaded, give
20748         a chance to the runtime to trow an exception instead.
20749         * loader.h: fix warning.
20750
20751 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20752
20753         * class.c (mono_class_proxy_vtable): added proxy support
20754
20755 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
20756
20757         * icall.c: removed last of PAL calls, added System.Environment
20758         * file-io.h, file-io.c: MonoIO implementation
20759         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
20760
20761 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
20762
20763         * appdomain.c: do not use the byte marker in ldstr table lookup.
20764         * debug-helpers.c: allow two ':' to separate class and method name.
20765         * object.c: allocate arrays bounds with the GC, too.
20766         * verify: add a few more checks.
20767
20768 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
20769
20770         * reflection.c: output also literal strings. Allocate parameter data
20771         with GC_malloc() (thanks, Martin, for catching this!).
20772
20773 2002-03-26  Martin Baulig  <martin@gnome.org>
20774
20775         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
20776         include the `this' offset in the `param_offsets'.
20777
20778 2002-03-25  Martin Baulig  <martin@gnome.org>
20779
20780         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
20781         mono_debug_get_class() function to get the classes. Added new
20782         relocation types for arrays and strings.
20783         (mono_debug_get_class): New static function to search in all
20784         referenced assemblies for a metadata token.
20785
20786         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
20787
20788 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20789
20790         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
20791         hold gc-allocated objects. Make the string heap a stream like the
20792         others. Removed duplicated code when writing stream info.
20793         Added asserts to catch possible buffer overflows. Set the sorted map
20794         for tables that need sorting. Added some documentation.
20795
20796 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
20797
20798         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
20799         for interned strings and vtables.
20800
20801 2002-03-24  Martin Baulig  <martin@gnome.org>
20802
20803         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
20804         it in the array since it was created with g_slist_prepend().
20805
20806 2002-03-24  Martin Baulig  <martin@gnome.org>
20807
20808         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
20809         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
20810         (mono_debug_method_from_token): Renamed to
20811         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
20812         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
20813
20814         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
20815         relocation types.
20816
20817         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
20818
20819 2002-03-24  Martin Baulig  <martin@gnome.org>
20820
20821         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
20822         (mono_debug_method_from_token): New func.
20823
20824         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
20825         New interncall, calls mono_debug_local_type_from_signature().
20826         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
20827         calls mono_debug_method_from_token().
20828
20829 2002-03-23  Martin Baulig  <martin@gnome.org>
20830
20831         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
20832         specifies the number of bytes to be converted, not the array size.
20833         Return the number of chars, not the number of bytes.
20834         (ves_icall_iconv_get_chars): The `byteCount' argument
20835         specifies the number of bytes to be converted, not the array size.
20836
20837 2002-03-23  Martin Baulig  <martin@gnome.org>
20838
20839         * reflection.h (MonoReflectionSigHelper): New type.
20840
20841         * reflection.c (mono_reflection_sighelper_get_signature_local),
20842         (mono_reflection_sighelper_get_signature_local): New functions.
20843
20844         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
20845         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
20846         interncalls.
20847
20848 2002-03-23  Martin Baulig  <martin@gnome.org>
20849
20850         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
20851         is_writeable is set.
20852         (mono_raw_buffer_update): New function to write the modified map
20853         back to disk.
20854
20855         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
20856
20857         * debug-symfile.c (mono_debug_update_symbol_file): Call
20858         mono_raw_buffer_update() when done writing.
20859
20860 2002-03-23  Martin Baulig  <martin@gnome.org>
20861
20862         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
20863
20864         * debug-symfile.c: Added support for arguments and local variables.
20865
20866 2002-03-23  Dick Porter  <dick@ximian.com>
20867
20868         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
20869         protected by ifdefs, hence breaking the w32 build.
20870
20871 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20872
20873         * object.c: implement is_interned() the right way.
20874
20875 2002-03-21  Martin Baulig  <martin@gnome.org>
20876
20877         * debug-symfile.[ch]: New files to handle debugging information
20878         files. There's also support to dynamically update these symbol
20879         files to include machine dependent information.
20880
20881 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
20882
20883         * threads.c (mono_thread_create): new function to create thread
20884         from C
20885
20886 2002-03-20  Martin Baulig  <martin@gnome.org>
20887
20888         * icall.c (ves_icall_InternalInvoke): Create a new object if the
20889         method is a constructor.
20890         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
20891         points to ves_icall_InternalInvoke().
20892
20893 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
20894
20895         * file-io.c: Flush shouldn't throw exceptions.
20896
20897 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
20898
20899         * file-io.c: FileStream flush support; FileSetLength now
20900         restores file pointer.
20901
20902 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
20903
20904         * class.c: set image for pointer classes.
20905
20906 2002/03/19  Nick Drochak <ndrochak@gol.com>
20907
20908         * sysmath.c: Forgot one.
20909
20910 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
20911
20912         * sysmath.c: Avoid redefining existing names.
20913
20914 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
20915
20916         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
20917         handled by runtime as icall rather than dllimport from libm.so
20918         * file-io.c, file-io.h: fixed handle argument type.
20919
20920 2002-03-18  Dick Porter  <dick@ximian.com>
20921
20922         * reflection.c (mono_image_get_type_info): rename interface to
20923         iface, because of "#define interface struct" on windows.
20924
20925 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
20926
20927         * class.c, class.h: rename and export mono_ptr_class_get().
20928         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
20929         * reflection.c, reflection.h, icall.c: better/saner type name
20930         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
20931         method signatures.
20932
20933 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
20934
20935         * class.c (mono_class_init): removed hardcoded GHC_SLOT
20936
20937         * icall.c (ves_icall_InternalInvoke): impl.
20938
20939 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20940
20941         * reflection.c: output the interface map table, too.
20942
20943 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
20944
20945         * class.c (class_compute_field_layout): separate computation of 
20946         static field layout
20947
20948 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
20949
20950         * icall.c: added System.Buffer support.
20951         * file-io.c: moved file icalls from PAL to FileStream.
20952
20953 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
20954
20955         * icall.c (ves_icall_System_Object_GetHashCode): impl.
20956
20957 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
20958
20959         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
20960
20961 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20962
20963         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
20964
20965 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
20966
20967         * debug-helpers.{c,h}: moved here from monograph some useful functions
20968         to locate a method by name/signature in a class or image. Included
20969         also a small and flexible IL disassembler.
20970
20971 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20972
20973         * reflection.c: fixup tokens in methods with small header size, too.
20974
20975 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
20976
20977         * object.c (mono_string_to_utf8): remove assert(!error), instead
20978         print a warning. 
20979
20980 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
20981
20982         * icall.c: update to the new mono_Array_class_get interface.
20983
20984 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
20985
20986         * appdomain.c, object.c: Boehm-GC enable.
20987         * icall.c: make get_data_chunk() support split data requests.
20988         Ensure a class is initialized in more cases. Return only the first
20989         property found in GetProperties() or the compiler gets confused. 
20990         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
20991         * reflection.h, reflection.c: add fixup mechanism for field and method
20992         tokens. Initialize assembly->typeref in a single place. Output
20993         properties after events. Support custom attributes for events, too.
20994         Typo fix for paramter custom attrs.
20995
20996 2002-03-07  Martin Baulig  <martin@gnome.org>
20997
20998         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
20999
21000 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
21001
21002         * class.c (mono_array_class_get): fix. for multi. dim. arrays
21003
21004 2002-03-06  Martin Baulig  <martin@gnome.org>
21005
21006         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
21007         non-zero lower bounds. See testcases #F10-#F13.
21008
21009 2002-03-05  Martin Baulig  <martin@gnome.org>
21010
21011         * exception.c (mono_get_exception_argument_out_of_range): New exception.
21012
21013         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
21014         ves_icall_System_Array_GetValue(), only calculate the absolute array position
21015         here.
21016         (ves_icall_System_Array_SetValue): Likewise.
21017         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
21018         as argument and does the actual work. This function is used when copying a
21019         multi-dimensional array.
21020         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
21021         now do all the widening conversions of value types.
21022         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
21023
21024 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21025
21026         * class.c: remove some magic numbers and use the smbolic names,
21027         instead. Added init_events() to load event info at class init time.
21028         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
21029         and mono_metadata_methods_from_event().
21030         * reflection.h, reflection.c: added support for writing out the evnets
21031         related information.
21032
21033 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21034
21035         * reflection.h, icall.c: use a different method (GetInterfaces)
21036         to gather interface info and add isbyref, isprimitive and
21037         ispointer to the ves_icall_get_type_info() return value.
21038
21039 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21040
21041         * class.h: stared adding support for events.
21042         * icall.c: split find_members implementation. Added debug icall to get
21043         the address of an object.
21044         * reflection.c: handle TypeBuilders in mono_type_get_object().
21045
21046 2002-03-01  Martin Baulig  <martin@gnome.org>
21047
21048         * icall.c (ves_icall_System_Array_GetLength): This must throw an
21049         ArgumentOutOfRangeException(), not an ArgumentException().
21050         (ves_icall_System_Array_GetLowerBound): Likewise.
21051         (ves_icall_System_Array_GetValue): Improved argument checking.
21052         (ves_icall_System_Array_SetValue): Improved argument checking.
21053
21054 2002-03-01  Martin Baulig  <martin@gnome.org>
21055
21056         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
21057         called with invalid arguments rather than just dying with g_assert().
21058         (ves_icall_System_Array_SetValue): Likewise.
21059         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
21060         raise a NotImplementedException instead.
21061         (ves_icall_System_Array_GetLength): Added argument checking.
21062         (ves_icall_System_Array_GetLowerBound): Added argument checking.
21063
21064 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
21065
21066         * object.h (mono_assert): new macros mono_assert and
21067         mono_assert_not_reached
21068
21069 2002-02-28  Martin Baulig  <martin@gnome.org>
21070
21071         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
21072         and "System::String::IsInterned" to "System::String::_IsInterned".
21073
21074 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
21075
21076         * icall.c: remove hacks for typebuilder. Added icall to create a
21077         modified type from a tybebuilder.
21078         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
21079         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
21080         to create a backing MonoClass for a TypeBuilder.
21081
21082 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21083
21084         * class.c, class.h: more refactoring of class init.
21085         Export mono_class_setup_mono_type() and mono_class_setup_parent().
21086
21087 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
21088
21089         * marshal.c, marshal.h: start of marshaling interface.
21090
21091 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21092
21093         * icall.c: fix order in assembly qualified name icall.
21094
21095 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21096
21097         * class.c: do not free str, since we store it in the hash table.
21098         * reflection.h: add label field to MonoILExceptionInfo.
21099         * reflection.c: handle references to more than one assembly. Handle
21100         case when there isn't a module created in the assembly.
21101
21102 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21103
21104         * class.c: Fix typo. Start refactoring of class init code.
21105
21106 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21107
21108         * appdomain.c: exit with 1 on error.
21109         * class.c: we already have the name in MonoClassField.
21110         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
21111         MonoStreamHeader instead of an offset of image->raw_metadata.
21112
21113 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
21114
21115         * appdomain.c (mono_init): Be even more descriptive about the error.
21116
21117 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
21118
21119         * appdomain.c: give the user an informative message when corlib can't
21120         be loaded.
21121
21122 2002-02-26  Martin Baulig  <martin@gnome.org>
21123
21124         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21125         New icall to get the time zone data.
21126
21127 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21128
21129         * reflection.c: set virtual and raw size of section correctly.
21130         * threads.c: transfer domain information to newly created threads.
21131
21132 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21133
21134         * class.c: when instancing a class in a domain, load the default
21135         vaules for static fields from the constant table. Fix System.Enum to
21136         not be an enum.
21137         * icall.c: implement Object::GetType() internalcall. Implemented
21138         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
21139         Fixed checking of binding flags in find_members().
21140         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
21141         * reflection.c: handle enumerations when writing to the constant
21142         table. Use a different object cache for types.
21143
21144
21145 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
21146
21147         * object.c (mono_object_isinst): fix for arrays
21148
21149         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
21150
21151 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21152
21153         * object.c: don't use mprotect ()  and fix intern pool hash table
21154         lookup for big endian systems.
21155
21156 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21157
21158         * icall.c: change type_is_subtype_of () signature.
21159
21160 2002-02-21  Mark Crichton  <crichton@gimp.org>
21161
21162         * rand.c, rand.h: Added random number generator for
21163         System.Security.Cryptography classes.
21164
21165         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
21166
21167         * icall.c: Added System.Security.Cryptography calls.
21168
21169 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21170
21171         * class.c, icall.c, metadata.c: better support for pointer types.
21172         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
21173         * reflection.c: Add support for getting custom attrs for properties
21174         and simplify some code.
21175
21176 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21177
21178         * icall.c: change getToken () and add custom attribute GetBlob()helper
21179         method.
21180         * reflection.h: add custom attrs array to the reflection builder structures.
21181         * reflection.c: encode and emit custom attributes for all the relevant
21182         reflection objects. Cache fieldref and methodref tokens. Change
21183         mono_image_create_token() interface to take a MonoDynamicAssembly.
21184         More complete custom attributes decoder. Load custom attributes for
21185         Assembly, Field, Method and Constructor objects, too. Make the
21186         returned array an Attribute[] one, not object[]. Added
21187         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
21188         custom attribute constructor.
21189
21190 2002-02-20  Dick Porter  <dick@ximian.com>
21191
21192         * icall.c:
21193         * rawbuffer.c:
21194         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
21195         problem code out for now).
21196
21197 2002-02-19  Radek Doulik  <rodo@ximian.com>
21198
21199         * object.c (mono_ldstr): use hash table to avoid multiple swapping
21200
21201 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
21202
21203         * icall.c: register the GetCustomAttributes method.
21204         * object.c, object.h: add mono_string_new_len ().
21205         * reflection.h, reflection.c: added mono_runtime_invoke(),
21206         mono_install_runtime_invoke(). Added
21207         mono_reflection_get_custom_attrs () to load custom attributes and
21208         create the attribute objects.
21209
21210 2002-02-19  Dick Porter  <dick@ximian.com>
21211         * threads-dummy-types.c:
21212         * threads-dummy-types.h:
21213         * threads-dummy.c:
21214         * threads-dummy.h:
21215         * threads-pthread-types.c:
21216         * threads-pthread-types.h:
21217         * threads-pthread.c:
21218         * threads-pthread.h:  Deleted obsolete files
21219
21220 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
21221
21222         * class.c (mono_class_vtable): runtime init the class when we
21223         allocate static class data.
21224
21225         * icall.c (ves_icall_System_Array_SetValue): check for null values.
21226
21227         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
21228         and String - but we will need generic marshalling support in the
21229         future. 
21230         (mono_init): set the domain name in a ms compatible way
21231
21232         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
21233         String[].
21234
21235 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
21236
21237         * object.c (mono_array_clone): use alloca() instead of g_malloc  
21238         for sizes
21239
21240         * appdomain.c (mono_domain_unload): impl.
21241
21242 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21243
21244         * appdomain.c, object.c: fix intern pool implementation.
21245         * class.c: fix alignment code.
21246
21247 2002-02-16  Radek Doulik  <rodo@ximian.com>
21248
21249         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
21250         and s2 > s1, just copy lower bytes to be compatible with little
21251         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
21252         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
21253
21254         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21255         force big_endian to be 1 for big endian machines 
21256         (ves_icall_iconv_new_decoder): ditto
21257
21258 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21259
21260         * socket-io.c (convert_sockopt_level_and_name): If the system
21261         doesn't define SOL_IP or SOL_TCP, get them by hand using
21262         getprotobyname() and caching the values (because this could be a
21263         slow operation).
21264         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21265         Use the appropriate struct when the system does support it. Ie,
21266         not all systems have struct ip_mreqn so use struct ip_mreq when
21267         appropriate.
21268
21269 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21270
21271         * reflection.c: handle finally clauses.
21272
21273 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21274
21275         * socket-io.c: use g_snprintf() instead of snprintf.
21276
21277 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21278
21279         * reflection.c (mono_param_get_objects): Cast second argument to
21280         mono_method_get_param_names to a const char** to silence the
21281         compiler warning.
21282
21283         * appdomain.c (mono_domain_assembly_open): Put parens around the
21284         truth statement in the for-loop.
21285
21286         * unicode.c (iconv_convert): Got rid of a compiler warning about
21287         int i being unused when the system has a new iconv.
21288         (iconv_get_length): Same.
21289
21290         * image.c (load_class_names): Cast the second argument to
21291         g_hash_table_insert() to char* to hush compiler warnings about the
21292         arg being a const.
21293         (mono_image_open): Same here.
21294
21295         * socket-io.c: Don't conditionally include sys/filio.h or
21296         sys/sockio.h here anymore since we now get them from
21297         io-layer/io-layer.h
21298         (inet_pton): If the system doesn't support inet_aton, implement
21299         using inet_addr and also #define INADDR_NONE if it isn't defined
21300         by the system.
21301
21302 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21303
21304         * metadata.c, metadata.h: added function to get packing and size info
21305         of a typedef.
21306         * reflection.h, reflection.c: handle field RVA data. Save info about
21307         the table layout if needed. Assign typedef indexes to all the types
21308         before dumping the info about them to avoid forward reference problems.
21309
21310 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21311
21312         * socket-io.c (convert_sockopt_level_and_name): ifdef
21313         SO_ACCEPTCONN because it is not defined on my system (old debian)
21314
21315 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21316
21317         * opcode.c: use stddef.h to get NULL.
21318
21319 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21320
21321         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21322         for FIONBIO, FIONREAD and SIOCATMARK.
21323         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21324         define INADDR_NONE and besides, inet_addr() is deprecated and
21325         should not be used. Use inet_pton() instead - it also has the
21326         added bonus that it can easily handle IPv6 addresses as well.
21327         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21328
21329 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21330
21331         * decimal.c: remove _MSC_VER conditional.
21332
21333 2002-02-13  Dick Porter  <dick@ximian.com>
21334
21335         * socket-io.c: 
21336         * icall.c: Internal calls for Blocking, Select, Shutdown,
21337         GetSocketOption and SetSocketOption
21338
21339 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21340
21341         * assembly.cs: better resolver: use it instead of some kludgy
21342         code.
21343
21344 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21345
21346         * reflection.c: the best way to speed-up the compiler is to avoid
21347         infinite loops.
21348
21349 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21350
21351         * class.c (mono_class_vtable): changed the object layout
21352         (obj->vtable->class). 
21353         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21354
21355 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21356
21357         * assembly.c: look for assemblies in the assembly dir, too.
21358
21359 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21360
21361         * class.c: fix thinko in mono_class_from_type().
21362
21363 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21364
21365         * exception.h, exception.c: added TypeLoadException.
21366         * object.h, object.c: added mono_array_clone ().
21367         * icall.c: handle throwOnError in AssemblyGetType().
21368         Added Array.Clone().
21369         * opcode.h, opcode.c: use a single value for the opcode val.
21370         Compile fix for non-gcc compilers.
21371
21372 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21373
21374         * opcodes.c, opcodes.h: export interesting info about opcodes.
21375
21376 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21377
21378         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21379         icalls. 
21380
21381         * class.c (class_compute_field_layout): set element_class for enums
21382         (mono_class_create_from_typedef): set element_class for normal classes
21383
21384         * icall.c (ves_icall_System_Enum_get_value): impl.
21385
21386         * class.c (mono_class_create_from_typedef): do not set valuetype
21387         flag for System.ValueType and System.Enum
21388
21389 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
21390
21391         * unicode.c (iconv_convert): fix big endian problem.
21392
21393 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21394
21395         * class.c: add asserts if we are ever going to scribble over memory.
21396         * socket-io.c: not all systems have AF_IRDA defined.
21397
21398 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21399
21400         * class.c (class_compute_field_layout): do not consider static
21401         fields to compute alignment
21402
21403 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21404
21405         * appdomain.c (mono_appdomain_get): impl.
21406         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21407
21408 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21409
21410         * icall.c: ignore "file://" prefix when loading an assembly.
21411
21412 2002-01-23  Dick Porter  <dick@ximian.com>
21413
21414         * socket-io.c:
21415         * icall.c:
21416         * Makefile.am: Added socket support
21417
21418 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21419
21420         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21421         code back.  This should return the assemblies that are loaded by
21422         the runtime on behalf of an application domain. 
21423
21424         The current implementation is still broken, it just returns every
21425         assembly loaded, but until we get real applications domain this
21426         will do.
21427
21428 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21429
21430         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21431         AppDomain object.
21432
21433 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21434
21435         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21436         the mono_class_from_name lookup.
21437         (ves_icall_get_parameter_info): ditto.
21438         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21439         method.
21440         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21441
21442 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21443
21444         * class.c: load also nested classes on class init.
21445         System.ValueType instance methods gets passed boxed
21446         values, unless methods in derived classed that get a pointer to the
21447         data.
21448         * icall.c: use better name parsing code in GetType().
21449         * image.c, image.h: add mono_image_loaded ().
21450         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21451         * reflection.c, reflection.h: added mono_reflection_parse_type().
21452
21453 2002-01-22  Veronica De Santis <veron78@interfree.it>
21454
21455         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21456         * threads.c : Added the implementation of internal calls for events
21457         * threads.h : Added prototypes of internal calls for events
21458         
21459 2002-01-21  Radek Doulik  <rodo@ximian.com>
21460
21461         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21462
21463 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21464
21465         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21466         (mono_class_value_size): use min_align
21467
21468 2002-01-20  Dick Porter  <dick@ximian.com>
21469
21470         * threads.h:
21471         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21472         so it compiles on w32.
21473
21474 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21475
21476         * metadata.c (mono_type_stack_size): impl.
21477
21478         * class.c (mono_class_get_field): impl. memberref token
21479
21480 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21481
21482         * icall.h : Added the internal calls mapping for CreateMutex_internal
21483                     and ReleaseMutex_internal.
21484         * threads.h : Added the prototype of mutexes internal calls.
21485         * threads.c : Added the implementations of mutexes internal calls.
21486
21487 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21488
21489         * metaparse.h: removed unused file.
21490         * reflection.c, reflection.h: added stream_data_align () function 
21491         to align data in streams and keep stream aligned. Add support for
21492         exception support in method headers.
21493
21494 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
21495
21496         * unicode.c: make iconv_convert () return the number of bytess written
21497         in the output buffer.
21498
21499 2002-01-15  Dick Porter  <dick@ximian.com>
21500         * threads.c: Make the runtime's idea of infinite timeouts coincide
21501         with the class library's
21502
21503         Fix a particularly egregious bug in mono_thread_cleanup(). That
21504         code was so utterly bogus it must have been written on a Monday.
21505
21506 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21507
21508         * reflection.h: add subtypes field to TypeBuilder.
21509         * reflection.c: encode constants for literal fields.
21510         Handle subtypes. Fix user string token (and add a zero byte)
21511         at the end.
21512         
21513 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
21514
21515         * class.c (mono_class_init): bug fix: assign slot numbers for
21516         abstract methods.
21517
21518 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21519
21520         * reflection.c: don't try to output a code RVA for abstract methods.
21521         Small fixes for method header format. Output parameter info to the
21522         ParamDef table. Save method overriding info to MethodImpl table.
21523         Fix property support. Allow typedef.extends to be a type in the
21524         building assembly.
21525         * verify.c: fix off-by-one error.
21526
21527 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
21528
21529         * class.c: fix mono_class_from_mono_type () for szarray types.
21530         Remove unused cache check in mono_class_from_type_spec().
21531         * icall.c: *type_from_name () functions handle simple arrays and byref.
21532         * reflection.c: handle byref and szarray types. Handle methods without
21533         body (gets P/Invoke compilation working). Handle types and fields in
21534         get_token ().
21535         * reflection.h: add rank to MonoTypeInfo.
21536
21537 2002-01-10  Dick Porter  <dick@ximian.com>
21538
21539         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
21540         internal calls
21541
21542 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21543
21544         * icall.c: initialize class in type_from_handle ().
21545         Loop also in parent classes for get_method ().
21546         * reflection.c: properly encode class and valuetype types.
21547         Start on encoding TypeBuilder types. Handle fieldrefs.
21548         Use correct length when registering a user string.
21549         Handle ConstructorBuilder and MonoMethod in get_token ().
21550         Make mono_type_get_object () aware of cached types.
21551         * object.c: back out change to mono_string_new ().
21552
21553 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
21554         * object.c: mono_string_new should return a NULL when the string 
21555         passed in is NULL -- not try to deference it.
21556         
21557 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21558
21559         * icall.c: hack to make IsSubType work for TypeBuilders.
21560         * reflection.c: emit constructors before methods.
21561         Retrieve param names in mono_param_get_objects().
21562
21563 2002/01/05  Nick Drochak  <ndrochak@gol.com>
21564
21565         * Makefile.am: fix list of headers and sources so automake 1.5
21566         doesn't complain. Removed \# at end of list.
21567
21568 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21569
21570         * reflection.c: get token for a method ref. Set return type of
21571         constructor to void.
21572         * loader.c: debug message.
21573         * class.c: typo fix.
21574
21575 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
21576
21577         * icall.c: fix array init with rank > 1. FindMembers
21578         loops in parent class as well.
21579         * image.c: do not insert nested types in name cache.
21580         * reflection.c: warning fix.
21581         * reflection.h: add override method (for interface impl).
21582
21583 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
21584
21585         * metadata.c: fix customattr decoding.
21586
21587 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
21588
21589         * rawbuffer.cs: Added native Win32 implementation, avoids using
21590         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
21591
21592 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
21593
21594         * class.c: make the low-level routines handle the cache.
21595
21596 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
21597
21598         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
21599
21600 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
21601
21602         * class.c: fix mono_array_element_size() for objects.
21603         * class.h, class.c: add properties to MonoClass and load them
21604         at init time.
21605         * icall.c: check with isinst() when assigning a value to an array
21606         instead of requiring the classes to match exactly.
21607         Implemented icall for System.Type::GetType().
21608         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
21609         enums. Handle bindingflags when looking for methods and fields.
21610         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
21611         and mono_metadata_methods_from_property().
21612         * reflection.h, reflection.c: added structures for propreties,
21613         parameters and enums. Implemented mono_property_get_object() and
21614         mono_param_get_objects().
21615
21616 2001-12-18  Dick Porter  <dick@ximian.com>
21617
21618         * file-io.c: Use mono_string_to_utf16() instead of
21619         mono_string_chars()
21620
21621         * object.c: Added mono_string_to_utf16(), which copies the non
21622         NULL-terminated MonoString into a new double-null-terminated
21623         buffer.
21624
21625 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
21626
21627         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
21628
21629 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
21630
21631         * file-io.c: raise exceptions if handle is invalid.
21632
21633 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
21634
21635         * assembly.c: yet another check for mscorlib.
21636         * class.c, class.h: load nesting info for classes.
21637         * icall.c: many new functions to support the Reflection classes.
21638         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
21639         * reflection.h, reflection.c: mono_image_create_token(),
21640         mono_assembly_get_object(), mono_type_get_object(),
21641         mono_method_get_object(), mono_field_get_object(): methods to return
21642         objects that parallel the C representation of assemblies, types,
21643         methods, fields.
21644
21645 2001-12-11  Dick Porter  <dick@ximian.com>
21646
21647         * icall.c:
21648         * file-io.c: Internal calls for file IO.
21649
21650 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
21651
21652         * tabledefs.h: missing FileAttributes.
21653         * verify.h, verify.c: use is_valid_string () to simplify and check for
21654         valid strings more correctly. Fix warnings and speeling.
21655         Check more tables: Filed, File, ModuleRef, StandAloneSig.
21656         Check code: branches, maxstack, method calls.
21657
21658 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
21659
21660         * object.c (mono_object_allocate): removed static, so that the jit
21661         can allocate value types.
21662
21663         * icall.c (ves_icall_System_DateTime_GetNow): impl.
21664
21665 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21666
21667         * class.c: init enum types right away and register the
21668         token->MonoClass map in mono_class_create_from_typedef ().
21669         * verify.h, verify.c: first cut of the verifier.
21670         * pedump.c: add --verify switch to verify metadata tables.
21671         * tabledefs.h: add some missing enums.
21672
21673 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
21674
21675         * class.c (mono_install_runtime_class_init): impl.
21676         (mono_class_init): renamed mono_class_metadata_init to
21677         mono_class_init, also removed the metadata_inited flag
21678
21679         * object.c (mono_object_isinst): use faster algorithm
21680
21681 2001-11-30  Radek Doulik  <rodo@ximian.com>
21682
21683         * mono-endian.h: reverted last change
21684         added function prototypes
21685
21686         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
21687         add mono-endian.c back
21688
21689         * mono-endian.c: returned back, as Paolo pointed out, it's needed
21690         for unaligned access, I've mistaked it with endianess. I am
21691         sorry.
21692         (mono_read16): fix reverted endianess
21693         (mono_read64): ditto
21694         (mono_read32): ditto
21695
21696 2001-11-30  Dick Porter  <dick@ximian.com>
21697
21698         * exception.c: Implement mono_exception_from_name()
21699
21700 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21701
21702         * metadata.h, metadata.c: remove params_size and locals_size and their
21703         calculation from the metadata code: they are only usefult to the
21704         interp.
21705
21706 2001-11-29  Radek Doulik  <rodo@ximian.com>
21707
21708         * object.c (mono_ldstr): swap bytes here, it's probably not the
21709         best place, but works for me now, I'll redo it once I know mono
21710         better, also note that I add PROT_WRITE and don't reset back, also
21711         note that it's only affects big endians, so x86 should be OK
21712
21713         * mono-endian.h (read16): use just glib macros for both endians
21714
21715         * mono-endian.c: removed as glib macros are used in in
21716         mono-endian.h so we don't need to care about endianess for read
21717         macros as glib does that for us already
21718
21719 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
21720
21721         * class.h, class.h: take minimum alignment into consideration so
21722         that the fields of a class remain aligned also when in an array.
21723
21724 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21725
21726         * loader.h, loader.c: add mono_method_get_param_names().
21727         * class.c: 0-init class fields.
21728
21729 2001-11-26  Dick Porter  <dick@ximian.com>
21730
21731         * icall.c:
21732         * threads-types.h:
21733         * threads.c: New file that handles System.Threading on all platforms
21734
21735         * object.c: 
21736         * object.h: Remove the synchronisation struct from MonoObject,
21737         replace it with a pointer that gets initialised on demand
21738
21739         * Makefile.am: Replace all the system-specific threading code with
21740         a single file that uses the new wrapper library
21741
21742 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
21743
21744         * class.c, class.h: add mono_install_trampoline() so that the runtime
21745         can register a function to create a trampoline: removes the ugly
21746         requirement that a runtime needed to export arch_create_jit_trampoline.
21747         * object.h, object.c: added mono_install_handler() so that the runtime
21748         can install an handler for exceptions generated in C code (with
21749         mono_raise_exception()). Added C struct for System.Delegate.
21750         * pedump.c: removed arch_create_jit_trampoline.
21751         * reflection.c: some cleanups to allow registering user strings and
21752         later getting a token for methodrefs and fieldrefs before the assembly
21753         is built.
21754         * row-indexes.h: updates and fixes from the new ECMA specs.
21755
21756 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
21757
21758         * class.h, class.c: add enum_basetype field to MonoClass.
21759         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
21760         to get index in the constant table reated to a field, param or
21761         property.
21762         * reflection.h, reflection.c: handle constructors. Set public-key and
21763         version number of the built assembly to 0.
21764         * row-indexes.h: update from new ECMA spec.
21765
21766 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21767
21768         * class.h, class.c: add a max_interface_id to MonoClass.
21769         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
21770         since it's used to do that. Added mono_type_type_from_obj().
21771         Make GetType() return NULL instead of segfaulting if the type was not
21772         found. Handle simple arrays in assQualifiedName.
21773         * object.h: add a struct to represent an Exception.
21774         * reflection.c: output call convention in method signature.
21775         Add code to support P/Invoke methods and fixed offsets for fields.
21776
21777 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
21778
21779         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
21780         the value.
21781         * icall.c: use mono_array_addr instead of array->vector: fixes the
21782         reflection image writing.
21783         * reflection.c: init call convention byte to 0 in method signature.
21784         Encode the property signature. Don't output property-related methods
21785         twice. Really process the properties for a type (don't cast a field to
21786         a property, my mom always told me that).
21787         Fix 64 bit issues in pointer alignment in a different and more
21788         readable way.
21789
21790 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
21791
21792         * loader.h: Removed type class from MonoDefaults, added monotype
21793
21794         * loader.c: Loaded MonoType, removed loading of Type
21795
21796         * icall.c (my_mono_new_object): Now returns a System.MonoType,
21797         and fills in System.Type._impl with a RuntimeTypeHandle rather
21798         than the actual MonoClass *
21799
21800         (ves_icall_type_from_handle): change from type_class to
21801         monotype_class
21802
21803         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
21804         implemented
21805
21806         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
21807         implemented
21808
21809         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
21810
21811         (ves_icall_System_Reflection_Assembly_GetType): implemented
21812
21813         (ves_icall_System_MonoType_assQualifiedName): implemented
21814
21815         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
21816
21817 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
21818
21819         * assembly.c (mono_assembly_open): Implement a cache for the
21820         assemblies. 
21821
21822         (mono_assembly_close): only destroy the assembly when the last
21823         reference is gone.
21824         
21825 2001-11-09  Dick Porter  <dick@ximian.com>
21826
21827         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
21828
21829 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
21830
21831         * class.c (mono_class_metadata_init): bug fix: compute the right slot
21832
21833 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21834
21835         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
21836         from Martin Weindel.
21837         * object.h: add mono_string_chars ().
21838
21839 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
21840
21841         * reflection.c (build_compressed_metadata): Eliminates warnings
21842         and uses 64-bit clean code.
21843
21844         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
21845         (mono_type_equal): Change signature to eliminate warnings.
21846
21847 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21848
21849         * icall.c, loader.c: remove the internalcall array constructors.
21850         Changes to match the new MonoArray structure.
21851         * object.h, object.c: an array object doesn't allocate an extra
21852         vector. Add mono_array_new_full () to create jagged arrays easily.
21853
21854 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21855
21856         * metadata.h, metadata.c: add mono_metadata_field_info () to
21857         retreive all the info about a field from vairous tables.
21858         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
21859         * class.h, class.c: augment MonoClassField with more info.
21860         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
21861         policy and load a field's RVA if needed.
21862
21863 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
21864
21865         * class.c (mono_class_metadata_init): create a trampoline for all
21866         virtual functions instead of actually compiling them.
21867
21868 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
21869
21870         * class.h, class.c: include name in MonoClassField.
21871         * class.c: fix fundamental type of System.Object and System.String.
21872         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
21873         tokens in ldtoken.
21874         * icall.c: remove internalcalls for the Reflection stuff that is now
21875         done in C# code.
21876         * loader.c: mono_field_from_memberref () implementation.
21877         * mono-endian.c: thinko (s/struct/union/g).
21878         * object.c, object.h: make the mono_string_* prototypes actually use
21879         MonoString instead of MonoObject.
21880         * reflection.c, reflection.h: updates for changes in the reflection
21881         code in corlib: we use C structures that map to the actual C# classes.
21882         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
21883         fat method header if needed and use the info from the ILGenerator for
21884         methods. Handle fields in types. Misc fixes.
21885
21886 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
21887
21888         * class.c (mono_class_metadata_init): bug fix: always allocate
21889         space for static class data
21890
21891 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
21892
21893         * class.c (mono_compute_relative_numbering): use relative
21894         numbering to support fast runtime type checks.
21895
21896 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
21897
21898         * class.c (mono_class_create_from_typeref): added debugging output
21899         to print class name when MonoDummy is returned instead of real class
21900
21901 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
21902
21903         * class.c (mono_class_metadata_init): interface offset table now
21904         contains pointers into the vtable - this is more efficient for the jit
21905
21906 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
21907
21908         * class.c (mono_class_metadata_init): use a temporary vtable (the
21909         old algorithm only worked for the interpreter, but not for the jit)
21910
21911 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
21912
21913         * loader.c (method_from_memberref): use mono_class_get to get the
21914         class of an array instead of using System.Array directly.
21915         (mono_get_method): also add MEMBERREF methods to the method cache
21916         which usefull for arrays.
21917
21918 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
21919
21920         * pedump.c (arch_compile_method): added to compute vtable entry
21921
21922         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
21923         number of interfaces.
21924         
21925         * class.h: merged MonoArrayClass into MonoClass
21926
21927         * class.c (mono_class_create_from_typedef): compute the vtable size and
21928         allocate space to include the vtable inside MonoClass
21929         (mono_class_metadata_init): initialize the vtable
21930
21931 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
21932
21933         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
21934         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
21935         * image.c: endian fixes by Laurent Rioux.
21936         * object.h, object.c: rename MonoStringObject to MonoString and
21937         MonoArrayObject to MonoArray. Change some function names to conform to
21938         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
21939         guint16* as first argument, so don't use char*.
21940         Provide macros to do the interesting things on arrays in a portable way.
21941         * threads-pthread.c: updates for the API changes and #include <sched.h>
21942         (required for sched_yield()).
21943         * icall.c: updates for the API changes above.
21944         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
21945         platforms that need them.
21946
21947 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
21948
21949         * class.c: set the correct type for all the fundamental
21950         type when loading the class.
21951
21952 2001-10-05  Dick Porter  <dick@ximian.com>
21953
21954         * threads-pthread.c (pthread_mutex_timedlock): Simple
21955         compatibility version for C libraries that lack this call.
21956
21957 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21958
21959         * class.c: MonoTypes stored in MonoClass are stored as
21960         fundamental MonoTypes when the class represents a
21961         fundamental type (System.Int32, ...).
21962         The TypeHandle return by ldtoken is a MonoType*.
21963         * icall.c: ves_icall_get_data_chunk () write out all the
21964         PE/COFF stuff. Implement ves_icall_define_method (),
21965         ves_icall_set_method_body (), ves_icall_type_from_handle ().
21966         * image.c: properly skip unknown streams.
21967         * loader.h, loader.c: add type_class to mono_defaults.
21968         * metadata.c, metadata.h: export compute_size () as
21969         mono_metadata_compute_size () with a better interface.
21970         Typo and C&P fixes.
21971         * pedump.c: don't try to print the entry point RVA if there is no entry point.
21972         * reflection.c, reflection.h: many cleanups, fixes, output method
21973         signatures and headers, typedef and typeref info, compress the metadata
21974         tables, output all the heap streams, cli header etc.
21975         * row-indexes.h: typo fixes.
21976
21977 2001-10-04  Dick Porter  <dick@ximian.com>
21978
21979         * object.h: Add a synchronisation mutex struct to MonoObject
21980
21981         * object.c (mono_new_object): Initialise the object
21982         synchronisation mutexes
21983
21984         * icall.c: System.Threading.Monitor internal calls
21985         
21986         * threads-pthread.h:
21987         * threads-pthread.c: System.Threading.Monitor internal calls
21988
21989         * threads-types.h: New file, includes the system-specific thread
21990         structures
21991         
21992         * threads-pthread-types.h:
21993         * threads-pthread-types.c: New files, handle pthread-specific
21994         synchronisation types
21995
21996         * threads-dummy-types.h: 
21997         * threads-dummy-types.c: New files of dummy support for
21998         thread-specific types
21999
22000         * metadata.c:
22001         * image.c:
22002         * pedump.c: include mono-endian.h not endian.h
22003         
22004         * Makefile.am: More threads files.
22005         Name mono-endian.h not endian.h
22006
22007 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
22008
22009         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
22010         stuff and implement a few more bits.
22011         * icall.c: a field needs to be dereferenced twice. Do not use the same
22012         name for two variables in the same scope.
22013         * image.c, image.h: cleanups.
22014
22015 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
22016
22017         * class.c (mono_class_metadata_init): bug fix: compute the right size
22018
22019 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
22020
22021         * icall.c: implemented some of the Reflection internalcalls.
22022         * image.c, image.h: start writing out the PE/COFF image.
22023         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
22024         that does the reverse than decode_blob_size ().
22025         * object.c: use mono_metadata_encode_value (). Move here
22026         temporary implementation of mono_string_to_utf8 ().
22027         * rawbuffer.c: make malloc_map static.
22028
22029 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22030
22031         * metadata.c: fix type comparison for arrays.
22032         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
22033         Added a couple of new classes to monodefaults.
22034         * icall.c: added a couple of Reflection-related internalcalls.
22035         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
22036         Added a byval_arg MonoType to MonoClass.
22037
22038 2001-09-28  Dick Porter  <dick@ximian.com>
22039
22040         * icall.c:
22041         * threads-pthread.h: 
22042         * threads-pthread.c: Implemented internal calls for
22043         LocalDataStoreSlot operations.  Applied mutexes around all shared
22044         data.  Reworked the thread creation and Start() operations to
22045         avoid a race condition.
22046         
22047         * threads-dummy.h:
22048         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
22049
22050 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
22051
22052         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
22053
22054 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
22055
22056         * class.c, loader.c: warn and return NULL instead of erroring out.
22057         * icall.c: added System.AppDomain::getCurDomain().
22058         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
22059
22060 2001-09-25  Dick Porter  <dick@ximian.com>
22061
22062         * threads-pthread.h:
22063         * threads-pthread.c: Implemented timed thread joining and added
22064         System.Threading.Thread::Join_internal internal call
22065
22066         * icall.c: Added System.Threading.Thread::Join_internal internal call
22067
22068         * threads-dummy.h:
22069         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
22070
22071 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
22072
22073         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
22074         mono_string_intern () to implement the semantics of the ldstr opcode
22075         and the interning of System.Strings.
22076         * icall.c: provide hooks to make String::IsIntern and String::Intern
22077         internalcalls.
22078
22079 2001-09-23  Dick Porter  <dick@ximian.com>
22080
22081         * threads-dummy.c: 
22082         * threads-dummy.h: New files of dummy threading routines
22083
22084         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
22085         support code based on system specifics
22086
22087         Rename PTHREAD_LIBS to THREAD_LIBS
22088         
22089 2001-09-23  Dick Porter  <dick@ximian.com>
22090
22091         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
22092         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
22093         internal calls.
22094         (mono_thread_init): Set up a Thread object instance to return when
22095         the main thread calls Thread.CurrentThread
22096         (mono_thread_cleanup): Wait for all subthreads to exit
22097
22098         * icall.c: New internal calls for System.Threading.Thread::Sleep
22099         (including Schedule) and CurrentThread
22100
22101         * threads.h: New file, to insulate thread-specific stuff from the
22102         rest of the code
22103
22104 2001-09-21  Dick Porter  <dick@ximian.com>
22105
22106         * threads-pthread.h: 
22107         * threads-pthread.c: New file, for handling pthreads-style
22108         threading support.  Start() now starts a new thread and executes
22109         the ThreadStart delegate instance.
22110
22111         * icall.c: Added the internalcall for
22112         System.Threading.Thread::Start_internal
22113
22114         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
22115
22116 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
22117
22118         * loader.c: work around the different signatures for delegates
22119         constructors csc generates in compiled code vs the ones compiled in mscorlib.
22120
22121 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22122
22123         * class.h, class.c: add mono_class_get_field_from_name ().
22124         * *: Fix C comments and other ANSI C issues.
22125
22126 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
22127
22128         * endian.h, assembly.c: fix some endianness issues.
22129
22130 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
22131
22132         * loader.h, load.c: add delegate_class to mono_defaults.
22133         Handle runtime provided methods in mono_get_method ().
22134
22135 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
22136
22137         * loader.c (mono_get_method): use pinvoke for internal call
22138
22139         * icall.c: use pinvoke for internal call
22140
22141         * loader.c (method_from_memberref): set the method name
22142
22143 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
22144
22145         * metadata.c: help the compiler generate better code for
22146         mono_class_from_mono_type ().
22147
22148 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
22149
22150         * class.c (mono_class_metadata_init): delayed computing of the
22151         class size to mono_class_metadata_init ()
22152
22153 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
22154
22155         * class.c, class.h: add an interfaces member to MonoClass.
22156         * image.c, image.h: add assembly_name field to MonoImage
22157         from the assembly table.
22158         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
22159
22160 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22161
22162         * class.c: Handle Array in mono_class_from_mono_type ().
22163         * metadata.c, pedump.c: some endian fixes.
22164
22165 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22166
22167         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
22168         * metadata.c: fix small problem introduced with the latest commit.
22169
22170 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
22171
22172         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
22173         We don't need a MonoMetadata pointer anymore to compare signatures in
22174         mono_metadata_signature_equal (), update callers.
22175         Reduced memory usage an number of allocations for MonoMethodHeader and
22176         MonoMethodSignature.
22177
22178 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
22179
22180         * metadata.c: added compare for szarray.
22181
22182 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
22183
22184         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
22185         and add a couple more types to it and mono_defaults. Give an hint on
22186         classes that need implementing in our corlib and are referenced
22187         in mscorlib.
22188
22189 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
22190
22191         * class.h, class.c: keep track if a class is also an Enum.
22192         * loader.c: Implement a couple more types for use in libffi
22193         marshalling. Gives better diagnostics when failing to dlopen
22194         a library. Set method->klass for P/Invoke methods, too.
22195
22196 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
22197
22198         * class.c, class.h: add a MonoType this_arg to MonoClass that
22199         represents a pointer to an object of the class' type that
22200         can be used by the interpreter and later the type cache.
22201         Add best guess alignment info for valuetype objects.
22202
22203 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
22204
22205         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
22206         into MonoType: one less level of indirection and allocation and
22207         simplifies quite a bit of code. Added cache for MonoTypes that are
22208         used frequently, so that we don't need to allocate them all the time.
22209
22210 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
22211
22212         * class.c (mono_class_create_from_typedef): System.Enum is also a
22213         value type, although it does not derive from System.ValueType
22214         (maybe a bug in the ms compiler?)
22215
22216         * metadata.c (mono_type_size): return the right size for value types
22217
22218         * loader.c (mono_get_method): only initialize method header if not abstract
22219
22220         * class.c (mono_class_from_mono_type): use mono_default values. 
22221
22222 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
22223
22224         * *: use MonoClass pointers instead of <type_tokens>
22225         
22226         * class.h: new flag: metadata_inited.
22227
22228         * class.c (mono_class_metadata_init): impl.
22229         (mono_class_instance_size): impl.
22230         (mono_class_data_size): impl.
22231
22232 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22233
22234         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
22235         MonoClass now has the name and name_space fields. 
22236         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
22237         mono_get_method () takes and optional MonoClass as argument.
22238         Removed mono_typedef_from_name() and added mono_class_token_from_name()
22239         instead that takes advantage of a map from class names to typedef
22240         tokens in MonoImage.
22241
22242 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
22243
22244         * metadata.c: zero is not a valid alignment boundary.
22245         Merge MONO_TYPE_VOID in default decoding code.
22246
22247 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
22248
22249         * image.h: merged MonoMetadata into MonoImage
22250
22251         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
22252         identify the type of elements.
22253
22254 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22255
22256         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22257         * cil-coff.h: split MonoMSDOSHeader and add size info.
22258         * image.c: add some consistency checks.
22259         * metadata.c: fix row size computation: one programmer
22260         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22261         add explanation for the locator routine.
22262         Fix decoding of size in method header.
22263         
22264 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22265
22266         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22267         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22268         function from gnome-libs.  This uses the right path separator
22269         based on the OS, and also works around a bug in some systems where
22270         a double slash is not allowed. 
22271         (default_assembly_name_resolver): Use g_concat_dir_and_file
22272         (mono_assembly_open): ditto.
22273
22274 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22275
22276         * metadata.c (mono_metadata_signature_equal): impl.
22277
22278         * *: void is now a realy MonoType (instead of using NULL)
22279         
22280         * metadata.c (do_mono_metadata_parse_type): use
22281         mono_metadata_parse_type to parse void value.
22282
22283 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22284
22285         * metadata.c, metadata.h: in the signature and method header store
22286         only the space required for holding the loca vars and incoming arguments.
22287
22288 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22289
22290         * metadata.c (do_mono_metadata_parse_type): treat void like any
22291         other type (instead of assigning NULL);
22292
22293 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22294
22295         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22296
22297 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22298
22299         * image.c (do_mono_image_open): added a cache for arrays.
22300
22301 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22302
22303         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22304         decode a single column from a row in a metadata table and changes
22305         to take advantage of it in the typedef locator (gives a nice speed up).
22306         Store offset info for function params.
22307
22308 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22309
22310         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22311
22312 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22313
22314         * assembly.c: how could mono_assembly_close () had ever worked?
22315         * metadata.c, metadata.h: provide offset info for local vars.
22316         Implement mono_type_size () to take care of alignment as well
22317         as size (it was mono_field_type_size in cli/class.c before).
22318
22319 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22320
22321         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22322
22323         * assembly.h (CORLIB_NAME): set to corlib.dll
22324
22325         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22326
22327 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22328
22329         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22330         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22331         tokentype.h: massive namespace cleanup.
22332
22333 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22334
22335         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22336
22337 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22338
22339         * metadata.c (mono_metadata_free_type): added check for type !=
22340         NULL (void) before calling mono_metadata_free_type()
22341
22342 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22343
22344         * metadata.h, row_indexes.h: added header with enumerations to use
22345         to index in the columns from tables in metadata and to decode coded
22346         tokens: we should start using this instead of embedding magic numbers
22347         all over the code.
22348
22349 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22350
22351         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22352         Move metadata_t info from cli_image_info_t to MonoImage, where
22353         it's easily accessible. Changed all the uses accordingly.
22354         Added the method and class caches to MonoImage.
22355         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22356         and mono_metadata_decode_value () signature to be more consistent
22357         with the other parse functions (and simplify code). Taken advantage
22358         of zero-length array allocation with GCC. Removed reduntant (and
22359         wrong) MonoFieldType struct and use MonoParam instead. Changed
22360         mono_metadata_parse_field_type () to use common code for parsing.
22361         Added mono_metadata_typedef_from_field () and
22362         mono_metadata_typedef_from_method () to lookup a typedef index from a
22363         field or method token.
22364         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22365
22366 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22367
22368         * metadata.c (mono_metadata_parse_field_type): Implement. 
22369         (do_mono_metadata_parse_type): Split engine from
22370         mono_metadata_parse_type, so that we can create smaller structures
22371         for things that just have one pointer to the MonoType (look at
22372         the MonoFieldType)
22373
22374 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22375
22376         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22377         as Jan Gray found out, it is incorrect. 
22378
22379 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22380
22381         * assembly.c: Implement asssembly loading.  This loads an image
22382         and loads all the referenced assemblies.  Come to think of it, we
22383         could always do lazy loading of the assemblies. 
22384
22385         * image.c (mono_image_open): Keep loaded images in a hashtable.
22386
22387         * image.h (MonoImage): Add reference count.
22388
22389 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
22390
22391         * assembly.c (mono_assembly_open): Keep track of the file name in
22392         case the assembly has no ASSEMBLY table.
22393
22394         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
22395         from get.c here.
22396
22397 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22398
22399         * metadata.c, metadata.h: decode local vars in method header
22400         parse function. Change callers accordingly.
22401
22402 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22403
22404         * metadata.h, cil-coff.h: protect against multiple inclusion.
22405         Added some new structures to hold information decoded from metadata:
22406         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22407         and relevant decoding/free functions.
22408         * metadata.c: implement decoding functions. Add warning for out of bounds
22409         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22410         all the info about a method signature and invocation. Remove check on
22411         uninitialized local var in parse_mh() and fix memory leak.
22412
22413 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22414
22415         * metadata.h: More macros.
22416
22417         * tokentype.h: New file.
22418
22419 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22420
22421         * assembly.c: added a consistency check and initialize
22422         some structures with g_new0().
22423         * metadata.c: fixed a couple more bugs in table size computation
22424         and add other checks for out-of bound access to metadata.
22425
22426 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22427
22428         * metatada.c: fix bugs computing table sizes. Spew a
22429         warning when index in string heap is out of bounds.
22430
22431 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22432
22433         * metadata.h: Add a couple of macros to manipulate tokens. 
22434
22435 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22436
22437         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22438         cli_section_tables).
22439
22440 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22441
22442         * metadata.c (mono_metadata_user_string): New function, provides
22443         access to the UserString heap. 
22444
22445 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22446
22447         * metadata.c: Add inline documentation.
22448
22449 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22450
22451         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22452         files. 
22453
22454 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22455
22456         * typeattr.h: New file, TypeAttribute flags. 
22457
22458 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22459
22460         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22461         mono_assembly_ensure_section): Section loading code.
22462         (load_section_tables): Load the sections.
22463
22464         * mono/metadata/metadata.c (mono_metadata_locate_token,
22465         mono_metadata_locate): Functions to locate the information
22466         definition given a token or a table and an index.
22467         (mono_metadata_compute_table_bases): New.
22468         (compute_size): New function to compute the sizes of the various
22469         tables.
22470
22471         * mono/metadata/metadata.h: Finish listing the different index
22472         types. 
22473
22474         * mono/metadata/pedump.c: Improve to dump new information.
22475
22476 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22477
22478         * mono/metadata/metadata.c: Entered all the tables matching
22479         Beta2. 
22480
22481         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22482
22483
22484