2007-08-23 Martin Baulig <martin@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-08-23  Martin Baulig  <martin@ximian.com>
2
3         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
4         _mono_debug_init_corlib() and remove it from the header file.
5
6 2007-08-23  Martin Baulig  <martin@ximian.com>
7
8         * mono-debug-debugger.c
9         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
10         don't notify the debugger about it.
11
12         * mono-debug-debugger.h
13         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
14
15 2007-08-23  Robert Jordan  <robertj@gmx.net>
16
17         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
18         Code is contributed under MIT/X11 license.
19
20 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
21
22         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
23
24 2007-08-22  Martin Baulig  <martin@ximian.com>
25
26         * mono-debug.c: Store debugging info on a per-domain basis and
27         free it on domain unload.  Add support for unloading symbol files.
28
29         * mono-debug.h
30         (MonoDebugList): New typedef.
31         (MonoSymbolTable):
32         - add `data_tables and `type_table'.
33         - replace 'symbol_files' and `num_symbol_files' with a
34           `MonoDebugList *'.
35         (mono_debug_data_table): Removed.
36         (mono_debug_list_add): New public function.
37         (mono_debug_list_remove): New public function.
38         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
39         (mono_debug_init_2_memory): Renamed into
40         mono_debug_open_image_from_memory().
41         (mono_debug_close_image): New public function.
42         (mono_debug_domain_create): Likewise.
43         (mono_debug_domain_unload): Likewise.
44         (MONO_DEBUGGER_VERSION): Bump to 60.
45
46         * mono-debug-debugger.h
47         (MonoDebuggerEvent):
48         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
49         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
50         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
51         - rename `THREAD_CREATED' and `THREAD_EXITED' into
52           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
53         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
54           meaning.
55         (mono_debugger_add_symbol_file): Removed.
56         (mono_debugger_add_type): Removed.
57         (mono_debugger_lookup_type): Removed.
58         (mono_debugger_lookup_assembly): Removed.
59
60         * domain.c
61         (mono_domain_create): Call mono_debug_domain_create().
62         (mono_init_internal): Call mono_debug_init_corlib().
63
64         * assembly.c
65         (mono_assembly_close): Call mono_debug_close_image().
66
67 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
68
69         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
70         mmap call.
71
72 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
73
74         * sgen-gc.c: ensure section->pin_queue_end is initialized
75         correctly when non pinning objects in the section have been found.
76
77 2007-08-22  Marek Habersack  <mhabersack@novell.com>
78
79         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
80         containing a list of directories separated by ':'. MSDN docs say
81         the directories should be separated with ';'. Part of a bugfix for
82         bug #81446
83
84 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
85
86         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
87         it should MonoType and not MonoClass.
88
89 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
90
91         * culture-info-table.h : regenerated.
92
93 2007-08-20  William Holmes  <billholmes54@gmail.com>
94
95         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
96          to call ReplaceFile Kernel32 on windows or in io-layer.
97         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
98         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
99          as an internal call.
100
101         Code is contributed under MIT/X11 license.
102
103 2007-08-20  Jb Evain  <jbevain@novell.com>
104
105         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
106         and MONO_EXCEPTION_FIELD_ACCESS.
107
108         * debug-helpers.[c|h]: new mono_field_full_name function.
109
110 2007-08-20  Mark Probst  <mark.probst@gmail.com>
111
112         * class.c: Removed class_security_level() and moved it to
113         security-core-clr.c.
114
115         * security-core-clr.c, security-core-clr.h: class_security_level()
116         is now public and renamed to mono_security_core_clr_class_level().
117         It also looks for security attributes in the classes a class is
118         nested in.
119
120 2007-08-20  Mark Probst  <mark.probst@gmail.com>
121
122         * security-core-clr.c, security-core-clr.h: CoreCLR security
123         utility functions.
124
125         * Makefile.am: Added security-core-clr.[ch].
126
127         * security-manager.c, security-manager.h: Functions and enum for
128         setting and getting the security mode.
129
130         * class.c: CoreCLR security checks.
131
132 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
133
134         * icall-def.h, process.c, process.h: implemented icall to get
135         user/system processor times.
136
137 2007-08-17  Mark Probst  <mark.probst@gmail.com>
138
139         * domain.c, threads.c, class-internals.h, domain-internals.h: New
140         reader-lock-free jit_info_table.
141
142 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
143
144         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
145
146         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
147
148         * object-internals.h (MonoException): Add missing _data member.
149
150 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
151
152         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
153         checking that only methods with matching qname or fqname are picked
154         from implemented interfaces.
155
156 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
157
158         * verify.c (do_newarr):added, do type verification of
159         newarr ops, push the right value on the eval stack.
160         * verify.c (mono_method_verify): use do_newarr
161
162
163 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
164
165         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
166         factored the common code into get_boxable_mono_type, which
167         is now using mono_type_get_full, this fixed byref related tests.
168
169 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
170
171         * class.c: added mono_type_get_full, this function has the same
172         behavior of mono_class_get_full but the returned MonoType has
173         all metadata of the associated token in case of a typespec token.
174         * class.c: added mono_type_retrieve_from_typespec, used by 
175         mono_type_get_full to retrieve the token type.
176         * class.c (mono_class_create_from_typespec): changed to use
177         mono_type_retrieve_from_typespec.
178         * class.c (mono_ldtoken): changed to use mono_type_get_full
179         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
180         * class-internals.h: exported mono_type_get_full for internal use.
181
182 2007-08-16  Jb Evain  <jbevain@novell.com>
183
184         * domain.c (supported_runtimes): add entry for
185         the 'moonlight' runtime version.
186
187 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
188
189         * verify.c (mono_method_verify): small typo sliped in.  
190
191 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
192
193         * verify.c (do_unbox_value): added, do type verification of
194         unboxing ops
195         * verify.c (mono_method_verify): use do_unbox_value
196
197
198 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
199
200         * verify.c (dump_stack_value): fixed typo, was printing string
201         instead of object on stack.
202         * verify.c (do_box_value): moved the byref check up as it leads
203         to invalid code and should be done earlier.
204         * verify.c: improved error messages for and ldobj
205
206 2007-08-15  William Holmes  <billholmes54@gmail.com>
207
208         * marshal.c (emit_marshal_custom): Omit the call to 
209           marshal_native_to_managed when calling native to managed 
210           and the argument is specified as an out argument.
211
212         Code is contributed under MIT/X11 license.
213
214 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
215
216         * verify.c: fixed the type checks for generics, function pointers and vectors.
217         Added type verification for ldobj and ldtoken. The verifier
218         would segfault if header or signature of a method contained references
219         to non-existant types.
220
221 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
222
223         * marshal.c (cominterop_get_ccw): Patch from
224         Bill Holmes to no walk up interface hierarchy. 
225         All parent methods should be present in the interface for COM.
226    
227         Code is contributed under MIT/X11 license.
228
229 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
230
231         * marshal.c (emit_marshal_com_interface): Patch from
232         Bill Holmes to handle COM Interfaces as return values
233         for native->managed calls.
234    
235         Code is contributed under MIT/X11 license.
236
237 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
238
239         * marshal.c (cominterop_get_idispatch_for_object): Implement
240         for runtime callable wrappers.
241    
242         Code is contributed under MIT/X11 license.
243
244 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
245
246         * pedump.c (main): changed from mono_init to mono_init_from_assembly
247         so 2.0 types are accessible
248
249
250 2007-08-13  Miguel de Icaza  <miguel@novell.com>
251
252         * domain.c (mono_init_internal): Call mono_assembly_load_friends
253         once we load mscorlib.   Due to the order in which we initialize,
254         the mono_assembly_load_full routine that loads mscorlib did not
255         load friends.   We now load it once we load the
256         mono_defaults.internals_visible_class class. 
257
258         * assembly.c: Expose the mono_load_friend_assemblies method.
259
260 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
261
262         * verify.c: improved the handling of boxing, better
263         type checking for unary ops and conversion. Fix bug
264         regarding managed pointer compatibility checking
265
266 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
267
268         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
269
270         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
271
272 2007-08-09  Raja R Harinath  <rharinath@novell.com>
273
274         * reflection.c (dup_type): Remove.
275         * class.c (dup_type): Remove.
276         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
277         instead of the dodgy 'dup_type'.
278         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
279         handle the case where 'dup_type' needed the second argument.
280
281 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
282
283         * domain.c: Fix a warning.
284
285 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
286
287         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
288         checking that methods with the same fqname are not overridden
289         with a method from an ancestor.
290
291 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
292
293         * threads.c (free_thread_static_data_helper): Avoid a crash if
294         thread->static_data is not yet set.
295
296 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
297
298         * marshal.c: Use correct image when emitting
299         native wrapper for COM calls.
300    
301         Code is contributed under MIT/X11 license.
302
303 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
304
305         * icall-def.h, security.c, security.h :
306           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
307
308 2007-08-07  Martin Baulig  <martin@ximian.com>
309
310         * mono-debug-debugger.h
311         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
312
313         * domain.c (mono_domain_free): Call
314         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
315
316 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
317
318         * verify.c (check_underflow, check_overflow): error message now returns IL offset
319         * verify.c (in_same_block): code should test if either offset is inside the clauses
320         * verify.c (mono_method_verify): push the exception into the eval stack of exception
321         and filter blocks
322
323 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
324
325         * image.c (mono_image_close): Fix a leak.
326
327         * object.c (mono_runtime_invoke_array): Avoid using alloca.
328
329         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
330
331 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
332
333         * domain.c, threads.c, threads-types.h: fix memory retention issue
334         with thread static variables not being cleared on domain unload.
335         Reuse thread static slots after domain unload.
336
337 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
338
339         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
340         nullable type.
341
342         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
343         now done in mono_runtime_invoke_array.
344
345         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
346         receiver is a nullable type.
347
348         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
349         generic parameter.
350
351 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
352
353         * marshal.c: Implement COM Objects as return type for 
354         managed->unmanaged calls. Added Release calls for COM Object
355         out/return values in managed->unmanaged calls.
356
357         Code is contributed under MIT/X11 license.
358
359 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
360
361         * threads.h, threads-type.h: move the hazard pointer declarations
362         to the private header.
363
364 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
365
366         * file-io.c, appdomain.c: memory leak fixes.
367
368 2007-08-02  Dick Porter  <dick@ximian.com>
369
370         * socket-io.c
371         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
372         SO_REUSEADDR setting into io-layer/sockets.c.
373
374 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
375
376         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
377         from Object when called on a generic parameter. Fixes #82211.
378
379 2007-08-01  Dick Porter  <dick@ximian.com>
380
381         * file-io.c (convert_share): Test FileShare values bit-by-bit.
382         Fixes bug 79250 yet again.
383
384 2007-07-30  Martin Baulig  <martin@ximian.com>
385
386         Merged the `debugger-dublin' branch.
387
388         * mono-debug.h
389         (MonoDebugDataTable): New typedef.
390         (MonoDebugMethodAddressList): New typedef.
391         (MonoDebugWrapperData): Removed.
392         (MonoDebugSymbolTable): Removed `current_data_table',
393         `current_data_table_size', `current_data_table_offset'.
394         (MonoDebugDataItemType): Moved into mono-debug.c.
395         (MonoDebugMethodJitInfo): Remove `address'.
396         (mono_debug_data_table): New global variable.
397         (mono_debug_lookup_method_addresses): New public function.
398         (mono_debug_find_method): Take a `MonoMethod *', not a
399         `MonoDebugMethodInfo *'.
400
401         * mono-debug.c: Drop support for the old symbol tables.
402
403 2007-06-28  Martin Baulig  <martin@ximian.com>
404
405         * mono-debug.c (mono_debug_debugger_version): New public variable.
406
407 2007-07-31  William Holmes  <billholmes54@gmail.com>
408
409         * metadata.c Changed mono_type_create_from_typespec to not insert
410           the type into the hash map until after
411           do_mono_metadata_parse_type has completed.
412         Fixes Bug #82194
413         Code is contributed under MIT/X11 license.
414
415 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
416
417         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
418         generic parameter. Fixes #82211.
419
420 2007-07-27  Jb Evain  <jbevain@novell.com>
421
422         * pedump.c (dump_metadata, dump_metadata_header): dump
423         versions contained in the metadata header.
424
425 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
426
427         * threads.c: register small_id_table with the GC.
428
429 2007-07-27  Mark Probst  <mark.probst@gmail.com>
430
431         * threads.c, threads.h, class-internals.h, object-internals.h:
432         Hazard pointers, to be used by lock-free parallel algorithms.
433
434 2007-07-26  Dick Porter  <dick@ximian.com>
435
436         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
437         routine on non-windows platforms, as I've not managed to think of
438         a non-kludgy way of doing this.  Finishes off bug 78739.
439
440 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
441
442         * object.c: properly setup interface_bitmap in proxy vtables.
443
444 2007-07-25  Marek Habersack  <mhabersack@novell.com>
445
446         * appdomain.c (get_shadow_assembly_location): do not use TickCount
447         to create unique shadow copy target directories, use the domain's
448         serial number instead. Each domain gets a unique target directory
449         that way.
450
451         * domain.c (mono_domain_create): added code to increment domain
452         shadow copy serial number and cache the value in the current
453         domain structure.
454
455         * domain-internals.h (struct _MonoDomain): added a new field -
456         shadow_serial to hold the serial number used in generation of
457         shadow-copy directories. This is to make sure that the directory
458         name is unique for each and every domain created. We avoid a race
459         condition with overriding assemblies already in use by other app
460         domains.
461
462 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
463
464         * class.c (mono_bounded_array_class_get): fixed memory leak when 
465         binding generic parameters.
466
467 2007-07-24  Raja R Harinath  <rharinath@novell.com>
468
469         * metadata.c (do_mono_metadata_parse_generic_class): Use
470         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
471         error.
472
473 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
474
475         * loader.c, class-internals.h, reflection.c: removed the per-method
476         generics hashtable: we use the global one through the call of
477         mono_class_inflate_generic_method ().
478
479 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
480
481         * class.c, metadata.c, class-internals.h: introduce yet another
482         generics global cache for inflated methods (fixes 98% of the perf
483         issue in bug #81806).
484
485 2007-07-23  Raja R Harinath  <rharinath@novell.com>
486
487         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
488         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
489         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
490         return a MonoGenericInst containing (a copy) of those types.
491         (mono_metadata_inflate_generic_inst): Update to changes.
492         (mono_metadata_parse_generic_inst): Likewise.
493         (mono_get_shared_generic_inst): Likewise.
494         * reflection.c (mono_class_bind_generic_parameters): Likewise.
495         (mono_reflection_bind_generic_method_parameters): Likewise.
496         * metadata-internals.h: Likewise.
497         * icall.c (free_generic_context): Kill.
498         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
499
500         * reflection.c (reflection_methodbuilder_to_mono_method): Use
501         mono_metadata_type_dup.
502         * marshal.c (mono_mb_create_method): Likewise.
503
504         * metadata.c (mono_metadata_type_dup): Rename from
505         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
506         MonoImage.  Handle a few more cases, esp. when no mempool is given.
507         * marshal.c, metadata-internals.h: Update to changes.
508
509 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
510
511         * class.c: fixed a small leak for array classes and removed warning.
512
513 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
514
515         * loader.c (mono_method_get_param_token): Make this work on generic methods.
516         Return 0x8000000 for return parameters. Fixes #82161.
517
518 2007-07-21  Marek Habersack  <grendello@gmail.com>
519
520         * appdomain.c (get_shadow_assembly_location): append the current
521         ticks value to the path. Avoids overwriting the same assemblies by
522         several threads at the same time.
523
524 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
525         and Raja R Harinath  <rharinath@novell.com>
526
527         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
528         Simplify slightly.
529         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
530         property for testing if a method is a generic method definition.
531
532 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
533
534         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
535
536 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
537
538         * verify.c: used function from private branch, reverted to the one in class.h 
539
540 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
541
542         * verify.c: a typo slipped in and the code wont compile
543
544 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
545
546         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
547         disabled box instruction as it is doing the wrong thing
548         improved stack dump messages, now it is easier to debug type related issues
549
550
551 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
552
553         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
554
555 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
556
557         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
558         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
559         grouped with class and valuetype. This change will simply 
560         the code as it should be handled just like unmanaged pointers.
561
562 2007-07-19  Mark Probst  <mark.probst@gmail.com>
563
564         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
565
566 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
567
568         * verify.c: several stack merge issues fixed, reference comparisons now
569         check the type size. strict type check now works correctly.
570         added more uses of IS_MANAGED_POINTER macro.
571         fixed issues pointed by running the test suite against .net.
572         
573
574 2007-07-19  Mark Probst  <mark.probst@gmail.com>
575
576         * class.c, loader.c, class-internals.h: Removed the
577         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
578         defines.
579
580         * icall.c: Better error checking in some internal reflection
581         methods.
582
583 2007-07-18  William Holmes  <billholmes54@gmail.com>
584
585         * filewatcher.c : removed unused variable 'filename' in 
586           ves_icall_System_IO_FSW_SupportsFSW
587
588 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
589
590         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
591         obsolete, removed.
592
593 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
594
595         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
596         
597         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
598
599 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
600
601         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
602         Implement generics support.
603         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
604
605         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
606         type_args and method_args arguments.
607         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
608         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
609         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
610
611 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
612
613         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
614           It adds a rootimage parameter to mono_reflection_get_type_internal,
615           adds new function mono_reflection_get_type_with_rootimage and use
616           the rootimage to resolve the types instead of the current image
617
618 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
619
620         * culture-info-table.h: Forgot to update after r78304.
621
622 2007-07-13  Raja R Harinath  <rharinath@novell.com>
623
624         * class.c (mono_class_is_open_constructed_type)
625         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
626
627 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
628
629         * class.c (mono_bounded_array_class_get):  method fails if used with
630         an incomplete TypeBuilder enum (no basetype field), fixed it by 
631         avoiding calculating the size for such array as it cannot be instantiated.
632         Fix bug #82015
633
634 2007-07-12  Raja R Harinath  <rharinath@novell.com>
635
636         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
637         field.
638         * metadata.c, reflection.c: Update to changes.
639
640 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
641
642         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
643         mono_class_is_valid_enum, they are used to valide a enum when loading.
644         * reflection.c: used new functions to throw TypeLoadException when and
645         invalid enum is build with TypeBuilder. Fixes #82018
646   
647 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
648
649         * object.c: forgot commit of mono_class_setup_methods () to access
650         iface->methods.
651         * object-internals.h: added a few more handy fields to
652         MonoIMTCheckItem.
653
654 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
655
656         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
657         iface->methods.
658
659 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
660
661         * class-internals.h, object-internals.h, object.c: IMT-based
662         interface invocation core from Massimiliano Mantione
663         (massi@ximian.com) with a reworked arch-specific interface,
664         bsearch implementation and a few bugfixes and memory savings by me.
665
666 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
667
668         * class.c (mono_class_create_from_typedef): mono would segfault if 
669         an enum did not have a __value field. It now throws a TypeLoadException
670         for such cases. Fix bug #82022
671
672 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
673
674         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
675
676 2007-07-09  Mark Probst  <mark.probst@gmail.com>
677
678         * class.c (mono_class_init): If a class is already inited but has
679         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
680
681 2007-07-09  Mark Probst  <mark.probst@gmail.com>
682
683         * class.c: Properly handle the case of an unimplemented interface
684         method.  Fixes: 81673.
685
686 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
687
688         * class-internals.h, object.c: cleanup patch from massi: use
689         MonoVTable->interface_bitmap since the vtable interfaces offset array
690         is going away.
691
692 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
693
694         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
695         GetMDStreamVersion icall instead.
696
697 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
698
699         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
700         not use mono_dl_build_path() with a full library name: makes
701         fallbacks to libgaim and libfam work.
702
703 2007-07-06  William Holmes  <billholmes54@gmail.com>
704
705         * assembly.c: Added a continue statement in probe_for_partial_name when
706          parse_assembly_directory_name fails.  Fixes : 82002
707
708 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
709
710         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
711         and added a verification  for TYPEDBYREF.
712         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
713         make native int interchangeable with int32 and some small cleanup and formating.
714         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
715         handle byref of byref.
716         * verify.c (push_local): handle byref of byref.
717         * verify.c (do_binop): invalid mix of values is unverifiable
718         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
719         added visibility checks
720         * verify.c (field related method): added visibility checks
721         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
722
723 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
724
725         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
726         string.
727
728 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
729
730         * profiler.c (mono_profiler_load): Fix an off-by-one error.
731
732         * marshal.c (emit_marshal_string): When returning a string from managed code,
733         allways make a copy even for unicode strings. Fixes #81990.
734
735 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
736
737         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
738         of byref generic inst types (bug #81997).
739
740 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
741
742         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
743         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
744
745 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
746
747         * marshal.c (emit_marshal_string): Add support for unicode strings in
748         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
749
750 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
751
752         * verify.c: field load/store are now verified, missing only access checks now
753
754 2007-06-28  Martin Baulig  <martin@ximian.com>
755
756         * mono-debug.c (mono_debug_debugger_version): New public variable.
757
758 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
759
760         * locales.c: When constructing DateTimeFormat or NumberFormat for
761         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
762         MonoCultureInfo contructed from the current locale is always
763         read-only and has UseUserOverride set to true. All MonoCultureInfo
764         instances returned for GetCultures have both IsReadOnly and
765         UseUserOverride set to true. Fixes part of bug #81930.
766
767 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
768
769        * icall-def.h: Update System.__ComObject icalls
770        * marshal.c: Avoid managed transition (and object creation)
771        when looking up COM interface in RCW.
772        * marshal.h: Ditto.
773        
774        Code is contributed under MIT/X11 license.
775
776 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
777
778         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
779         to avoid crashes during assembly unloading.
780
781 2007-06-22  Raja R Harinath  <rharinath@novell.com>
782
783         Fix MethodInfo.IsGenericMethodDefinition
784         * reflection.c (mono_reflection_bind_generic_method_parameters):
785         Rearrange code to ensure we always uses a generic method definition.
786         * class.c (mono_class_inflate_generic_method_full): Set
787         'generic_container' field only for generic method definitions.
788         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
789         Use presense of 'generic_container' field as indication of being a
790         generic method definition.
791
792 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
793
794         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
795
796         * object-internals.h: Reflect changes in the layout of the managed Delegate
797         class.
798         
799         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
800         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
801         runtime memory used by the dynamic method. Fixes #77146.
802
803 2007-06-21  Dick Porter  <dick@ximian.com>
804
805         * file-io.h: 
806         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
807         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
808         81767.
809
810 2007-06-21  Raja R Harinath  <rharinath@novell.com>
811
812         * reflection.c (method_encode_methodspec): Add a tripwire.
813         * class.c (inflate_generic_type): The fully open generic type is
814         not the same as the generic type definition.
815
816 2007-06-21  Martin Baulig  <martin@ximian.com>
817
818         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
819
820         * mono-debug-debugger.h
821         (MonoDebuggerBreakpointInfo): Removed.
822         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
823         (mono_debugger_remove_breakpoint): Likewise.
824         (mono_debugger_breakpoint_callback): Likewise.
825         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
826
827 2007-06-21  Raja R Harinath  <rharinath@novell.com>
828
829         * metadata.c (mono_metadata_lookup_generic_class): The fully open
830         generic type is not the same as the generic type definition.
831         * class.c (mono_generic_class_get_class): Likewise.
832
833 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
834
835         * icall.c: The second argument to 
836         System.Reflection.MethodBase.GetMethodFromHandleInternalType
837         is a MonoType not a MonoClass.
838
839 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
840
841         * verify.c: support for function pointers in the verifier
842
843 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
844
845         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
846
847 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
848
849         * assembly.c: removed Mono.Data.SqliteClient from the list of
850         forward-compatible assemblies as it breaks the ABI (bug #81899).
851
852 2007-06-19  Raja R Harinath  <rharinath@novell.com>
853
854         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
855         lookup/update with the loader lock.
856         * reflection.c (mono_class_bind_generic_parameters): No need to
857         protect mono_metadata_lookup_* with the loader lock.
858         * class.c (inflate_generic_type): Likewise.
859         
860         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
861         on a generic instantiated type.
862
863 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
864
865         *verify.c: produce meanfull error messages on verification error
866         *verify.c: fixed some cases of verification errors reported as validation errors
867         *pedump.c: fixed the error name array, now it shows validation errors properly
868         *verify.h: fixed the contant that should be used for verification errors
869
870 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
871
872         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
873         for bug #77596, 81858 and 80743 (generics data structures on domain
874         unload).
875
876 2007-06-15  Raja R Harinath  <rharinath@novell.com>
877
878         Avoid allocating 'MonoGenericContext' on the heap.
879         * class-internals (_MonoMethodInflated::context): Make field
880         inline, not a pointer.
881         * loader.c (method_from_methodspec): Allocate 'new_context' on the
882         stack.  Use the context embedded within the inflated method as the
883         hash key, rather than 'new_context'.
884         * class.c (inflate_generic_context): Simplify.  Return a struct
885         rather than allocating on the heap.
886         (mono_class_inflate_generic_method_full): Update to changes.  Now,
887         doesn't salt away a copy of the context -- simplifying the
888         lifetime rules of a 'MonoGenericContext *'.
889         (mono_method_get_context): Return pointer to embedded context.
890         (setup_generic_array_ifaces): Allocate temporary context on stack.
891         * reflection.c (inflate_mono_method): Likewise.
892         (mono_reflection_bind_generic_method_parameters): Likewise.
893         Use the context embedded within the inflated method as the hash key.
894
895         Avoid a source of allocation of 'MonoGenericContext'.
896         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
897         and 'cached_context' fields into embedded 'MonoGenericContext' field.
898         * class.c: Update to changes.
899         (mono_generic_class_get_context): Simplify drastically.  Now just
900         returns a pointer to the field.
901         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
902         argument as a const pointer.
903         (mono_metadata_generic_context_equal): Likewise.
904         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
905         Update to changes.
906
907 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
908
909         * verify.c improved the handling of brtrue/brfalse, factored out common code
910
911 2007-06-14  Raja R Harinath  <rharinath@novell.com>
912
913         Kill MonoGenericMethod.
914         * class-internals.h (MonoGenericContext::method_inst): Rename from
915         'gmethod' and convert to a MonoGenericInst.
916         (MonoGenericMethod): Remove.
917         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
918         * loader.c (method_from_methodspec): Update to changes.  Use a
919         MonoGenericContext as the key to the hashtable.
920         * metadata.c (mono_metadata_generic_context_equal): Rename from 
921         'mono_metadata_generic_method_equal' and take MonoGenericContext.
922         (mono_metadata_generic_context_hash): Likewise from
923         'mono_metadata_generic_method_hash'.  Change hash function.
924         (mono_metadata_load_generic_params): Update to changes.
925         (mono_get_shared_generic_method): Remove.
926         * metadata-internals.h (mono_get_shared_generic_method): Remove.
927         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
928         (inflate_generic_context): Likewise.
929         (mono_class_inflate_generic_method_full): Likewise.
930         (setup_generic_array_ifaces): Likewise.
931         (mono_class_create_from_typespec): Likewise.
932         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
933         (method_encode_methodspec): Update callsite.
934         (reflection_methodbuilder_to_mono_method): Update to changes.
935         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
936         MonoGenericContext as the key to the hashtable.
937         (inflate_mono_method): Update to changes.
938
939         * class-internals.h (MonoGenericMethod::container): Remove.
940         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
941
942 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
943
944         * profiler-private.h, profiler.c, profiler.h: added API to profile
945         exception events.
946
947 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
948
949         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
950
951 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
952
953         * verify.c: method invocation is now validated, now we verify parameter types on stack.
954         Fixed overflow and underflow not aborting the verification process.
955
956 2007-06-13  Mark Probst  <mark.probst@gmail.com>
957
958         * class-internals.h (MonoStats): Added stats entries for dynamic
959         code allocations.
960
961 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
962
963         * loader.c (mono_free_method): Free header->locals and header->clauses.
964
965         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
966         dynamic case.
967
968         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
969
970         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
971
972 2007-06-12  Raja R Harinath  <rharinath@novell.com>
973
974         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
975         the tables.
976
977 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
978
979         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
980
981 2007-06-11  Raja R Harinath  <harinath@gmail.com>
982
983         MonoGenericMethod on a diet
984         * class-internals.h (_MonoMethodInflated::reflection_info): Move
985         here ...
986         (_MonoGenericMethod::reflection_info): ... from here.
987         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
988         Update to changes.
989         * reflection.c (inflate_mono_method): Likewise.
990         (mono_reflection_bind_generic_method_parameters): Likewise.
991
992 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
993
994         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
995         *verify.c: factored long ldarg forms to share code with short forms
996
997 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
998
999         *verify.c: fixed code formating factored some duplicate code
1000         into a new function
1001
1002         *verify.h: fixed binary incompatibility introduced earlier
1003
1004         *pedump.c: fixed formating
1005
1006 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1007
1008         Fix assertion when disassembling Mono.C5.dll
1009         * loader.c (method_from_methodspec): Avoid inflating a method
1010         twice with the same context.  If the methodref is inflated, use
1011         the declaring method instead.
1012
1013         * class.c (mono_class_from_generic_parameter): Fix case similar to
1014         bug #81830 handled below, but for method containers.
1015
1016 2007-06-10  Raja R Harinath  <harinath@gmail.com>
1017
1018         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
1019         get_shared_generic_class.  Directly inflate the instance.
1020         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
1021         (inflate_generic_class): Delete.
1022         (get_shared_generic_class): Delete.  Move setting of
1023         'cached_class' and 'cached_context' ...
1024         * metadata.c (mono_metadata_lookup_generic_class): ... here.
1025
1026         * metadata.c (mono_metadata_lookup_generic_class): Change
1027         signature to take the components of a MonoGenericClass rather than
1028         an allocated MonoGenericClass.  Change semantics to be intern-like.
1029         * reflection.c (mono_class_bind_generic_parameters): Update to
1030         changes.  Make locking region tighter.
1031         * class.c (inflate_generic_class): Update to changes.
1032         (get_shared_generic_class): Likewise.
1033         * metadata-internals.h: Likewise.
1034
1035         * reflection.c (mono_class_bind_generic_parameters): Take and
1036         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
1037         (mono_reflection_bind_generic_parameters): Use
1038         'mono_class_bind_generic_parameters' rather than duplicate the code.
1039         * class.c (mono_bounded_array_class_get): Update to changes.
1040         * object-internals.h: Likewise.
1041
1042         * reflection.c (mono_class_bind_generic_parameters): Only support
1043         parameterizing generic type definitions.  Remove support for other
1044         open types.
1045
1046 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
1047
1048         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
1049
1050         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
1051         in the dynamic case.
1052
1053 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
1054
1055         * threads.c: When cleaning up thread, reset the Background bit.
1056         Fixes bug #81720.
1057
1058 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
1059
1060        * metadata.c: Move variable declarations to top of scope.
1061        * verify.c: Move variable declarations to top of scope.
1062
1063        Code is contributed under MIT/X11 license.
1064
1065 2007-06-08  Raja R Harinath  <rharinath@novell.com>
1066
1067         * reflection.c (mono_class_bind_generic_parameters): Replace
1068         open-coded loop with mono_metadata_inflate_generic_inst.
1069
1070         * class.c (get_shared_generic_class): Don't call
1071         mono_get_shared_generic_inst.  Use the container's own
1072         'class_inst'.
1073
1074         * metadata.c (mono_metadata_load_generic_params): Move
1075         initialization of 'context' field here from ...
1076         * class.c (mono_class_create_from_typedef): ... here, and ...
1077         * loader.c (mono_get_method_from_token): ... here.
1078
1079         * class.c (get_shared_generic_class): Rename from
1080         mono_get_shared_generic_class and make static.
1081         (mono_get_shared_generic_inst): Move to metadata.c.
1082         * loader.c (mono_get_shared_generic_method): Likewise.
1083         * class-internals.h, metadata-internals.h: Update to changes.
1084
1085         Fix #81830
1086         * class.c (mono_class_from_generic_parameter): Don't assume a
1087         generic container owner exists.  Generic containers from monodis
1088         don't have any.
1089
1090 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
1091
1092         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
1093         * verify.h: new typedefs to returns the non-verifiable status
1094         * verify.c: initial implementation of generics, stack merging and object compatibility check
1095
1096 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1097
1098         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1099         a MonoInternalHashTable again (fixed bug in internal hash table
1100         code).
1101
1102 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1103
1104         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1105         MonoInternalHashTable again (fixed bug in internal hash table
1106         code).
1107
1108 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1109
1110         * class.c, image.c, class-internals.h, domain.c,
1111         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
1112         changes.  Have to figure out what makes them break the SWF
1113         regression.
1114
1115 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1116
1117         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1118         a MonoInternalHashTable now.
1119
1120 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1121
1122         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1123         MonoInternalHashTable now.
1124
1125 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
1126
1127         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
1128         invoke_impl code.
1129
1130         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
1131
1132         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
1133         dependent trampoline.
1134
1135         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1136
1137         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
1138
1139 2007-05-29  Robert Jordan  <robertj@gmx.net>
1140
1141         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
1142
1143 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
1144
1145         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
1146
1147 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
1148
1149        * marshal.c: Fix interface lookup loops for
1150        cominterop_get_com_slot_for_method and 
1151        cominterop_get_method_interface. Only need to lookup
1152        if type is a class, else use interface type method is on.
1153
1154        Code is contributed under MIT/X11 license.
1155
1156 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1157
1158         * reflection.c: HasSecurity can be present even if no specially 
1159         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
1160         SecurityAttribute). Fix CAS regression tests on buildbot.
1161
1162 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
1163
1164        * appdomain.c: Add configure checks for header files.
1165        * image.c: Add configure checks for header files.
1166        * file-io.c: Add configure checks for header files.
1167        * debug-mono-symfile.c: Add configure checks for header files.
1168        * threadpool.c: Add configure checks for header files.
1169        * console-io.c: Add configure checks for header files.
1170        * profiler.c: Add configure checks for header files.
1171        * rawbuffer.c: Add configure checks for header files.
1172        * icall.c: Add configure checks for header files.
1173        * rand.c: Add configure checks for header files.
1174        * socket-io.c: Add configure checks for header files.
1175
1176        Code is contributed under MIT/X11 license.
1177
1178 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
1179
1180         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1181         assertion as it breaks the build.
1182         
1183         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1184
1185         * reflection.c (lookup_custom_attr): Make a copy here too.
1186
1187         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1188         dynamic images.
1189
1190         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1191         images.
1192
1193         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1194         info.
1195
1196 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1197
1198         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1199         (load_cattr_value): Ditto.
1200
1201 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1202
1203         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1204
1205 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1206
1207         * threads.c: In "start_wrapper", set apartment_state to MTA if
1208         apartment_state is Unknown and we're running on 2.0 profile or
1209         higher.
1210         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1211         to main method, then set apartment_state to Unknown on 1.0 profile,
1212         and MTA on 2.0 profile.
1213
1214 2007-05-16  Jb Evain  <jb@nurv.fr>
1215
1216         * class-internals.h (MonoDefaults): Add an attribute_class and
1217           customattribute_data_class.
1218         * domain.c (mono_init_internal): Populate them.
1219         * reflection.c: Use them to remove duplicates. Make a vew
1220         MonoClass variables `static'.
1221
1222 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1223
1224         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1225         step in implementing IMT, so that all isinst checks now can go
1226         through the bitmap.
1227         This was needed because vtables for TransparentProxy need to look
1228         like the vtable of the "target" class, so they need to point to
1229         its interface bitmap directly.
1230
1231         * object.c: inside "mono_class_create_runtime_vtable" and
1232         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1233
1234 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1235
1236         * object-internals.h
1237           culture-info.h : added territory field in MonoCulture and
1238           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1239         * locales.c : fill territory field above too.
1240         * culture-info-table.h : regenerated.
1241
1242 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1243
1244         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1245         Fixes #81599.
1246
1247 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1248
1249         * object.c: Always initialize apartment, even if 
1250         there is no custom attributes on entry point.
1251         
1252         Code is contributed under MIT/X11 license.
1253
1254 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1255
1256         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1257         * metadata.c: If no encoding is set, check for unicode
1258         on class.
1259         
1260         Code is contributed under MIT/X11 license.
1261
1262 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1263
1264         * threads.c: Handle if mono_thread_current returns NULL 
1265         
1266         Code is contributed under MIT/X11 license.
1267
1268 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1269
1270         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1271         in start_wrapper. Added mono_thread_init_apartment_state and
1272         mono_thread_cleanup_apartment_state.
1273         * object.c: Initialize thread apartment state on main thread
1274         by checking for STAThreadAttribute on entry point.
1275         * object-internals.h: Add apartment_state field to MonoThread.
1276         * threads-types.h: Add unmanaged definition of 
1277         System.Threading.ApartmentState, MonoThreadApartmentState.
1278         
1279         Code is contributed under MIT/X11 license.
1280         
1281 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1282
1283         * class.c: Fix windows build.
1284         * class-internals.h: Fix windows build.
1285         
1286         Code is contributed under MIT/X11 license.
1287
1288 2007-05-08  Robert Jordan  <robertj@gmx.net>
1289
1290         * process.c (CreateProcess_internal):
1291         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1292         .CreateNoWindow was specified. Fixes #81496.
1293
1294 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1295
1296         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1297         step in implementing IMT, replaced it with two compact arrays
1298         (interfaces_packed and interface_offsets_packed) and a bitmap that
1299         is used for isinst checks (interface_bitmap).
1300
1301         * class.c: (compare_interface_ids): compare function to pass to
1302         bsearch when looking for an interface with a given id.
1303         (mono_class_interface_offset): reimplemented using bsearch on
1304         interfaces_packed, getting the offset from interface_offsets_packed.
1305         (print_implemented_interfaces): utility debugging function.
1306         (setup_interface_offsets): reworked to initialize interfaces_packed,
1307         interface_offsets_packed and interface_bitmap.
1308
1309         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1310         with uses of interfaces_packed and interface_offsets_packed.
1311
1312 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1313
1314         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
1315         mono_class_interface_offset prototype to wrap all accesses to
1316         "MonoClass.interface_offsets".
1317
1318         * class.c: Implemented mono_class_interface_offset, and wrapped all
1319         accesses to "MonoClass.interface_offsets".
1320
1321         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
1322         "MonoClass.interface_offsets".
1323
1324 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1325
1326         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1327         GetMethodFromHandle overloads (bug #78637).
1328
1329 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1330
1331         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1332         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1333
1334 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1335
1336         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1337         #81498.
1338
1339         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1340         gracefully.
1341         (mono_custom_attrs_from_index): Ditto.
1342
1343         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1344         Fixes #81501.
1345
1346 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1347
1348         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1349         is now allocated from a mempool.
1350
1351 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1352
1353         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1354         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1355
1356 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1357
1358         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1359         mono_loader_clear_error () too late. Fixes #81463.
1360
1361 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1362
1363         * culture-info-table.h : regenerated.
1364
1365 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1366
1367         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1368         is missing.
1369
1370 2007-04-25  Dick Porter  <dick@ximian.com>
1371
1372         * Makefile.am: Put the mingw enforced-optimisation back into the
1373         PLATFORM_WIN32 section.
1374
1375 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1376
1377         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1378         patch.
1379
1380         * image.c (mono_image_load_module): New API function to load a module reference.
1381
1382         * image.c (load_modules): Load modules lazily. Fixes #80812.
1383
1384         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1385         
1386         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1387
1388         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1389         to mono_image_load_module_dynamic.
1390
1391 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1392
1393         * marshal.c: Fix calling convention for CCW on non-windows
1394         platforms. STDCALL on windows, CDECL everywhere else to work 
1395         with XPCOM and MainWin COM.
1396         
1397         Code is contributed under MIT/X11 license.
1398
1399 2007-04-23  Martin Baulig  <martin@ximian.com>
1400
1401         Fix #80969.
1402
1403         * loader.c
1404         (method_from_memberref): Added `gboolean *used_context' argument.
1405         (mono_get_method_from_token): Likewise.
1406         (mono_get_method_full): Don't insert the method in the cache when
1407         `used_context' is true.
1408
1409 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1410
1411         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1412
1413         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1414         create new MonoTypes for returned types.
1415         * class.c (mono_generic_class_get_class): Export mono-internal.
1416         * class-internals.h: Update to changes.
1417
1418 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1419
1420         * threadpool.c, threadpool.h, icall-def.h: patch from
1421         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
1422
1423 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
1424
1425         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
1426         
1427         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
1428
1429         * threads.c (mono_thread_get_stack_bounds): New helper function.
1430
1431         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
1432         Correctly compute stack bounds when attaching. Fixes #81394.
1433
1434 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
1435
1436         * reflection.c: fix handling of doubles in custom attributes
1437         for the arm-fpa format (bug #81368).
1438
1439 2007-04-18  Raja R Harinath  <rharinath@novell.com>
1440
1441         * reflection.c (assembly_add_win32_resources): Mildly relax an
1442         bounds check to let the end pointer point just past the end of the
1443         allocated buffer.  (may fix #81384)
1444
1445 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1446
1447         * culture-info-table.h : regenerated.
1448
1449 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
1450
1451         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
1452         the thread is aborted early.
1453
1454 2007-04-05  Dick Porter  <dick@ximian.com>
1455
1456         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
1457         FindFirstFile()/FindNextFile() to find entries.  This lets the
1458         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
1459         81038.
1460
1461         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
1462         the parameters of
1463         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
1464
1465 2007-04-04  Martin Baulig  <martin@ximian.com>
1466
1467         * debug-helpers.c
1468         (mono_method_desc_full_match): Add support for nested classes.
1469
1470 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
1471
1472         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
1473
1474 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
1475
1476         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
1477         waiting for too many threads.
1478
1479 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1480
1481         * environment.c: Fix return value check on uname so we can get the 
1482         executing version on Solaris operating systems.
1483
1484 2007-03-28  Jb Evain  <jbevain@gmail.com>
1485
1486         * class.c (mono_type_get_name_recurse): Complete the
1487         fix for the creation of assembly qualified names for
1488         pointer types. Fixes #81208.
1489
1490 2007-03-27  Dick Porter  <dick@ximian.com>
1491
1492         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
1493         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
1494         changed.
1495
1496         * threads.c
1497         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
1498         the value of ReleaseMutex().
1499
1500 2007-03-27  Dick Porter  <dick@ximian.com>
1501
1502         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
1503         in little-endian order, not network endian, so must be converted
1504         to host endian here.  Fixes bug 80593.
1505
1506 2007-03-22  Jb Evain  <jbevain@gmail.com>
1507
1508         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
1509         qualified names for pointer types. Fixes #81208.
1510
1511 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
1512
1513         * marshal.c: Add support for PreserveSigAttribute. 
1514         
1515         Code is contributed under MIT/X11 license.
1516
1517 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
1518
1519         * process.c: Fix endianness issues. Fixes #81126.
1520
1521         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
1522         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
1523
1524         * image.c (mono_image_lookup_resource): Make this work on big-endian
1525         machines.Change API contract so the caller needs to free the return value.
1526         
1527         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
1528         API change.
1529         
1530 2007-03-14  Martin Baulig  <martin@ximian.com>
1531
1532         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
1533         mono_type_get_desc() as well.
1534
1535 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
1536
1537         * icall.c:  Fix environ access in VS.  
1538         
1539 2007-03-13  Alp Toker  <alp@atoker.com>
1540
1541         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1542         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1543         #63841.
1544
1545 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
1546
1547         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
1548         circular references among dynamic methods. Fixes #81091.
1549
1550         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
1551
1552 2007-03-09  Martin Baulig  <martin@ximian.com>
1553
1554         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
1555
1556 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
1557
1558         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
1559         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
1560         
1561         Code is contributed under MIT/X11 license.
1562         
1563 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
1564
1565         * loader.c: Reapply patch for bug #79424.
1566
1567 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1568
1569         * metadata.c (mono_type_to_unmanaged): Only convert object to
1570         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
1571
1572 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
1573
1574         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
1575         (and incorrectly set) is_reference field from MonoGenericInst.
1576
1577 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1578
1579         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
1580         a little earlier.
1581
1582         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
1583
1584         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
1585
1586 2007-03-05  Miguel de Icaza  <miguel@novell.com>
1587
1588         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
1589         FileOptions.1 value to mean "temporary", map that to
1590         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
1591
1592         Fixes 80688
1593
1594 2007-03-03  Marek Habersack  <mhabersack@novell.com>
1595
1596         * appdomain.c: implement MS .Net style shadow copying. Copies of
1597         the assemblies are made in a subdirectory of the dynamic base
1598         directory, the assembly names are preserved.
1599         Copy .mdb and .config files along with the assemblies being shadowed.
1600
1601 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1602
1603         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
1604         (emit_marshal_handleref): Ditto.
1605
1606         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
1607         on Visual C++. Fixes #80671.
1608
1609 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
1610
1611         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
1612         for clone operations.
1613
1614 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1615
1616         * marshal.c: Fix warnings.
1617
1618 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
1619
1620         * loader.c: allow case-insensitive matching of the dll name
1621         in dllmap handling when prefixed with "i:".
1622
1623 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
1624
1625         * threads.c: Fix #ifdef for dummy_apc function for VS.
1626
1627 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
1628
1629         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
1630
1631 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
1632         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
1633         giving precedence to the methods with a fully qualified name
1634         (InterfaceName.MethodName) when building the interface sections
1635         of the vtable.
1636
1637 2007-02-16  Dick Porter  <dick@ximian.com>
1638
1639         * threadpool.c (append_job): Fix fast-path array handling, so it's
1640         less likely the array will grow exponentially when the load is
1641         heavy.
1642
1643 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1644
1645         * metadata-internals.h, loader.c: fix dllmap lookup order
1646         for non-function maps, too, and prepare for fallback code.
1647
1648 2007-02-12  Robert Jordan  <robertj@gmx.net>
1649
1650         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
1651         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
1652         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
1653         GlobalFree. Fixes a part of bug #77075.
1654
1655 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
1656
1657         * loader.c: implemented typedef parent in field memberref.
1658
1659 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
1660
1661         * marshal.c: Fix warnings and remember to call Release on
1662         IUnknown of RCW.
1663         
1664         Code is contributed under MIT/X11 license.
1665
1666 2007-02-10  Miguel de Icaza  <miguel@novell.com>
1667
1668         * class-internals.h: Add MonoHandleRef definition, and
1669         handleref_class to mono_defaults. 
1670
1671         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
1672         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
1673
1674         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
1675         (do nothing on this stage)
1676         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
1677         (emit_marshal_handleref): New method, used for argument handling
1678         of HandleRefs. 
1679
1680 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
1681
1682         * class.c (mono_class_setup_parent): Lazily init com types.
1683         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
1684         init com types.
1685         * object.c (mono_remote_class_vtable): Lazily init com types.
1686         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
1687         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
1688         * domain-internals.h: Expose mono_init_com_types.
1689         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
1690         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
1691         Add support for COM Callable Wrapper marshalling.
1692         * marshal.h: Add icall definitions.
1693         * gc.c: Handle freeing of CCWs in finalizer code.
1694         
1695         Code is contributed under MIT/X11 license.
1696
1697 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
1698
1699         * reflection.c: changed all the signature encoding code to use
1700         a variable-sized buffer.
1701
1702 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1703
1704         * marshal.c: locking fixes: never take the loader lock
1705         or other runtime locks when holding the marshal lock
1706         (fixes bug#80664).
1707
1708 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
1709
1710         * marshal.c: make the delegate function pointer mapping
1711         work for the moving GC.
1712
1713 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
1714
1715         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
1716         for bug #80618.
1717
1718 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1719
1720         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
1721         gmodule.
1722
1723 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
1724
1725         * threadpool.c: made the code moving-GC safe.
1726
1727 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1728
1729         * assembly.c, boehm-gc.c, class-internals.h, class.c,
1730         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
1731         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
1732         warning cleanup.
1733         * reflection.c: warning cleanup, some threading and moving GC fixes.
1734
1735 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
1736
1737         * class.c, loader.c: create the needed Set/Get/Address array methods
1738         as well as the .ctors in mono_class_init (), fixes bug #80567.
1739
1740 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
1741
1742         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
1743         we doesn't decrease its alignment. Should fix the sparc build.
1744
1745 2007-01-24  Dick Porter  <dick@ximian.com>
1746
1747         * socket-io.c
1748         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
1749         Create the returned object if we need to ignore an unsupported
1750         socket option.  Fixes a segfault reported by Atsushi.
1751
1752 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
1753
1754         * class.c, object.c: restrict GC-tracked fields to
1755         UIntPtr fields used inside corlib, so we provide better
1756         type info to the GC and also allow broken packing as in
1757         bug #80580.
1758
1759 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
1760
1761         * sgen-gc.c: removed duplicated function.
1762
1763 2007-01-19  Miguel de Icaza  <miguel@novell.com>
1764
1765         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
1766         value that means that the value is not supported, but that we
1767         should not return a failure, but instead report this as a
1768         successful operation.
1769
1770 2007-01-19  Raja R Harinath  <rharinath@novell.com>
1771
1772         Fix tests/bug79956.2.il
1773         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
1774         (mono_generic_class_get_class): If the generic definition in an
1775         enum, copy over other fields related to it.
1776
1777 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
1778
1779         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
1780         genericinst enums (bug #79215).
1781
1782 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
1783         * class.c: Fix bug 80307.
1784
1785 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
1786
1787         * image.c: if the file table is not present, try to load
1788         all the modules, since we don't have info about them
1789         having or not metadata (bug #80517).
1790         * assembly.c: allow mono_assembly_load_references () to
1791         work for netmodules.
1792
1793 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1794
1795         * image.c, metadata-internals.h, object.c: execute module
1796         cctors when running on the 2 runtime if present (bug #80487).
1797
1798 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
1799
1800         * icall.c: optimized InitializeArray() on bigendian.
1801
1802 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
1803
1804         * icall.c: fix for the broken ARM FPA double format.
1805
1806 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
1807
1808         * icall.c: handle endian issues for r4 and r8 types, too, in
1809         the InitializeArray() icall.
1810
1811 2007-01-15  Miguel de Icaza  <miguel@novell.com>
1812
1813         * loader.c (mono_loader_error_prepare_exception): Clear the error
1814         once we have extracted the information from it, do this before we
1815         call into the JIT's class loading mechanisms.
1816
1817         * object.c (mono_class_create_runtime_vtable): Do not clear the
1818         loader error before calling mono_class_get_exception_for_failure
1819         as the loader error is needed inside
1820         mono_class_get_exception_for_failure to throw the error (thinko).
1821
1822         Fixes #80521
1823         
1824 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
1825
1826         * reflection.c: align fields rva data so it's faster to load at
1827         runtime.
1828
1829 2007-01-12  Raja R Harinath  <rharinath@novell.com>
1830
1831         Prepare to simplify GenericMethod handling.
1832         * class-internals.h (mono_method_get_context): New accessor function.
1833         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
1834         rather than directly accessing '->context' field.
1835
1836         * class-internals.h (_MonoGenericParam.method): Move ...
1837         (_MonoGenericContainer): ... here.  Add into union with klass field.
1838         * class.c, icall.c, loader.c, metadata.c, reflection.c:
1839         Update to changes.
1840
1841 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
1842
1843         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
1844         the wrapper type enum and reduce relocations.
1845
1846 2007-01-12  Raja R Harinath  <rharinath@novell.com>
1847
1848         * reflection.c (inflate_mono_method): Reuse method instantiation
1849         from the generic method, if available.
1850
1851 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1852
1853         * marshal.c (emit_marshal_variant): Fix conv_arg
1854         type in last commit, based on whether parameter is byref.
1855         
1856 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1857
1858         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
1859         marshalling.
1860         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
1861         MONO_TYPE_OBJECT back for VARIANT support.
1862
1863 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1864
1865         * marshal.c, marshal.h, icall-def.h: Implement 
1866         Marshal.ReAllocCoTaskMem.
1867
1868 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
1869
1870         * marshal.c: memory retention fixes: use the proper
1871         image cache for runtime_invoke method lookups.
1872
1873 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
1874
1875         * mempool.c: added code to help debug mempool allocations.
1876
1877 2007-01-11  Dick Porter  <dick@ximian.com>
1878
1879         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
1880         support (experimenting with faking it with IP_MTU_DISCOVER for
1881         systems that don't have IP_DONTFRAGMENT.)
1882         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
1883         icall.
1884
1885         * icall-def.h: new System.Net.Sockets.Disconnect icall.
1886
1887         * socket-io.h: Add new fields to MonoSocketAsyncResult
1888         corresponding to the new ones in Socket.cs.
1889
1890 2007-01-11  Raja R Harinath  <rharinath@novell.com>
1891
1892         Fix IronPython regression mentioned in #80249
1893         * metadata.c (do_mono_metadata_parse_generic_class): Clear
1894         'cached_context' field, since it may have been initialized as a
1895         side-effect of metadata parsing.
1896
1897         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
1898         (_MonoGenericClass.cached_class): Move here and rename from lone
1899         remaining field of ...
1900         (_MonoInflatedGenericClass): ... this.  Remove.
1901         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
1902         to changes.
1903
1904         Fix mcs/tests/test-128.cs regression.
1905         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
1906         2007-01-10 change below.
1907         [MONO_TYPE_OBJECT]: Recurse into array case.
1908
1909 2007-01-11  Raja R Harinath  <harinath@gmail.com>
1910
1911         * class-internals.h (mono_get_inflated_generic_class): Remove.
1912         * class.c (mono_get_inflated_generic_class): Remove.
1913         (mono_generic_class_get_class): Rename from
1914         mono_class_create_generic.
1915         (mono_class_from_mono_type) [GENERICINST]: Use it.
1916         * reflection.c, metadata.c: Update to changes.  Use
1917         'mono_class_from_mono_type'.
1918
1919 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
1920
1921         * reflection.c: use passed type when encoding an array element
1922         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
1923
1924 2007-01-09  Robert Jordan  <robertj@gmx.net>
1925
1926         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
1927         result arguments (someDelegate.EndInvoke (unrelatedAres)).
1928         Fixes bug #80392.
1929
1930 2007-01-09  Raja R Harinath  <rharinath@novell.com>
1931
1932         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
1933
1934         * object.c (set_value): Avoid aliasing between type->data.klass
1935         and type->data.generic_class.
1936
1937         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
1938
1939 2007-01-08  Raja R Harinath  <rharinath@novell.com>
1940
1941         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
1942         between type->data.klass and type->data.generic_class.
1943
1944 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
1945
1946         * marshal.c: In MS.NET, StringBuilder objects are not copied by
1947         value in out parameters.
1948
1949 2007-01-08  Raja R Harinath  <rharinath@novell.com>
1950
1951         Simplify invariant for MonoGenericClass::klass field.
1952         * class.c (mono_class_create_generic): Verify 'klass' is null.
1953         * metadata.c (do_mono_metadata_parse_generic_class): Don't
1954         initialize 'klass' field.
1955
1956 2007-01-05  Raja R Harinath  <rharinath@novell.com>
1957
1958         Ongoing work to avoid redundant data and simplify invariants.
1959         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
1960         'generic_class', and change type to a GenericInst.
1961         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
1962         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1963
1964 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
1965
1966         * class.c : skip io-layer under PLATFORM_WIN32.
1967
1968 2007-01-03  Tor Lillqvist  <tml@novell.com>
1969
1970         Fix #80305: In a bundled executable, look in the bundled exe
1971         assembly to determine the runtime version. Add the possibility to
1972         bundle also the machine.config file.
1973         
1974         * assembly.c (mono_assembly_open_from_bundle): Make
1975         non-static. Allow being called even if we have no bundled
1976         assemblies, and return NULL right away in that case.
1977
1978         * domain-internals.h: Declare mono_assembly_open_from_bundle()
1979         here.
1980
1981         * domain.c (app_config_parse): Take an assembly exe file name as
1982         parameter instead of a config file name. Check for a bundled
1983         config file for that assembly by calling
1984         mono_config_string_for_assembly_file() (see below) before looking
1985         for one in the file system.
1986         (get_runtimes_from_exe): Corrsponding change to call of
1987         app_config_parse().
1988         (get_runtimes_from_exe): Check for bundled assembly exe file first
1989         by calling mono_assembly_open_from_bundle(). If no bundled
1990         assembly exe file is found, call mono_image_open() as before to
1991         look it up in the file system.
1992
1993         * mono-config.c: Add variable bundled_machinec_onfig.
1994         (mono_config_string_for_assembly_file): New function.
1995         (mono_config_for_assembly): Move code snippet that looks for a
1996         bundled assembly .config file into the above new function. Call
1997         it.
1998         (mono_register_machine_config, mono_get_machine_config): New
1999         functions to set and retrieve
2000
2001         * assembly.h: Declare mono_register_machine_config().
2002
2003         * mono-config.h: Declare mono_get_machine_config() and
2004         mono_config_string_for_assembly_file().
2005
2006         * icall.c: No declaration of environ necessary on Win32. It is
2007         declared (as a macro expanding to a function call) in stdlib.h.
2008         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
2009         New internal mono function. Returns the value of
2010         mono_get_machine_config() as a Mono string.
2011
2012         * icall-def.h: Add get_bundled_machine_config().
2013
2014 2007-01-04  Raja R Harinath  <rharinath@novell.com>
2015
2016         Remove redundant field
2017         * class-internals.h (_MonoGenericContext.container): Remove field.
2018         * loader.c (mono_method_get_signature_full): Don't parse a
2019         "container" for a signature parse when the signature is inflated
2020         immediately.
2021         (method_from_methodspec): Likewise, for a generic_inst.
2022         * class.c, metadata.c, reflection.c: Update to changes.
2023
2024 2006-01-04  Raja R Harinath  <rharinath@novell.com>
2025
2026         * class-internals.h (_MonoGenericClass): Rename 'context' field to
2027         'cached_context', and change semantics -- it starts off NULL, and
2028         is initialized on demand.
2029         * class.c (mono_generic_class_get_context): New accessor to
2030         replace 'context' field accesses.
2031         (mono_class_get_context): New helper.
2032         (*): Update to changes.
2033         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
2034
2035 2007-01-03  Miguel de Icaza  <miguel@novell.com>
2036
2037         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
2038         before the memcpy.   Fixes Marshal2 regression.
2039
2040 2007-01-02  Jb Evain  <jbevain@gmail.com>
2041
2042         * blob.h: add a MONO_TYPE_ENUM definition
2043         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
2044         fix the encoding of arrays of enums in custom attributes.
2045
2046         Fixes #79666.
2047
2048 2007-01-01  Miguel de Icaza  <miguel@novell.com>
2049
2050         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
2051         string is null terminated, but only cut the string short if it
2052         overflows the buffer.   
2053         
2054         (mono_string_to_byvalstr): Also fix this routine.   The code here
2055         was not properly terminating a string (it was only terminated
2056         because of the previous catch-all memset). 
2057
2058         I left the memset, because I do not know if applications expect
2059         the runtime to clear this region. 
2060
2061         Fixes #79944.
2062
2063         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
2064         Clear the error before returning to unmanaged code to prevent the
2065         runtime from being confused later on (fixes  80420).
2066         (ves_icall_type_from_name): Always call mono_loader_clear_error
2067         after parsing a type that could have failed.
2068         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
2069
2070         * loader.c (mono_loader_clear_error): Fix indentation.
2071
2072 2006-12-28  Martin Baulig  <martin@ximian.com>
2073
2074         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
2075
2076 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2077
2078         * reflection.c: patch from Rolf Bjarne Kvinge to fix
2079         getting a token for an EnumBuilder.
2080
2081 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2082
2083         * reflection.c: be more careful in case resource generation
2084         fails to create the data array.
2085
2086 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2087
2088         * sgen-gc.c: write barrier for clone and fix unregister handles.
2089
2090 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2091
2092         * reflection.c: some fixes needed in the generics code for the moving GC.
2093
2094 2006-12-22  Robert Jordan  <robertj@gmx.net>
2095
2096         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
2097         account. Fixes bug #80299.
2098
2099 2006-12-21  Raja R Harinath  <rharinath@novell.com>
2100
2101         Fix WaitHandle usage in delegates.
2102         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
2103         * object.c (mono_wait_handle_new): Use the property set method to
2104         initialize the handle.
2105         (mono_wait_handle_get_handle): New.
2106         * threadpool.c (mono_async_invoke): Use it.
2107         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
2108         Likewise.
2109         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
2110
2111 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
2112
2113         * marshal.c (emit_marshal): Call emit_marshal_variant and
2114         emit_marshal_com_interface when applicable.
2115         (emit_marshal_variant, emit_marshal_com_interface): Add
2116         methods for this case and remove if's from emit_marshal_object.
2117         
2118 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
2119
2120         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
2121
2122 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
2123
2124         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
2125         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
2126         and GlobalFree on Windows. Remove FIXME.
2127
2128 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2129
2130         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
2131         implementation for managed objects.
2132
2133 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
2134
2135         * object.c: implemented code to be used for checking
2136         that no reference field overlaps with non-references.
2137
2138 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2139
2140         * threadpool.c: fix queue code to be compatible with the
2141         moving GC.
2142
2143 2006-12-18  Miguel de Icaza  <miguel@novell.com>
2144
2145         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
2146         in structures by throwing ArgumentNullException.
2147
2148         (emit_marshal_safehandle): Also when they are null parameters.
2149
2150         (emit_marshal_safehandle): Add support for ref
2151         SafeHandles parameters
2152
2153 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2154
2155         * profiler.c: updated to use the mono-dl API instead of
2156         gmodule.
2157
2158 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2159
2160         * profiler.c: updated to use the mono-dl dynamic loading
2161         API instead of gmodule.
2162
2163 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2164
2165         * profiler.c: use readlink, older versions of glib don't have
2166         g_file_read_link ().
2167
2168 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2169
2170         * profiler.c: try to detect the path to mono if libc fails to provide
2171         a useful name (bug #80286).
2172
2173 2006-12-16  Raja R Harinath  <rharinath@novell.com>
2174
2175         Fix #80242
2176         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
2177         instance, use the generic type definition instead.
2178         (ves_icall_Type_GetNestedTypes): Likewise.
2179         * class.c (mono_class_create_generic): Always set the
2180         nested_classes of a generic instance to NULL, even if the generic
2181         type definition has nested types.
2182
2183 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2184
2185         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2186         and fix on Linux.
2187         
2188 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2189
2190         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2191         my arguments were in the wrong order.   I also fixed the Windows
2192         version which seems to have had the same issue.
2193
2194         (mono_free_bstr): On Unix, this is g_free.
2195         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2196         conversions (for the tests in corlib to pass).
2197
2198 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2199
2200         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2201         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2202         exception if a ref SafeHandle in a struct has changed).
2203         
2204         (emit_struct_conv): Do not perform layout checks for classes
2205         derived from SafeHandle, as those are specially handled. 
2206
2207         (emit_object_to_ptr_conv): Add support for
2208         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2209
2210         (emit_marshal_safehandle): Implement conversion of return values
2211         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2212         
2213         * threads.c: WaitHandle now is compiled with two different handles
2214         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2215         for 2.0.
2216         
2217         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2218         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2219         these routines to cope with both kinds of fields.
2220
2221 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2222
2223         * metadata.c (mono_type_to_unmanaged): Handle the case where
2224         type->data.klass is a SafeHandle, and in that case, return the
2225         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2226         MONO_MARSHAL_CONV_SAFEHANDLE. 
2227
2228 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2229
2230         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2231         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2232         calling emit_marshal_object.
2233
2234         (emit_marshal_safehandle): Implement marshalling of
2235         SafeHandle parameters (no ref support yet).
2236
2237         (MarshalAction): Document the defines as I implement
2238         them for SafeHandle.
2239
2240         (emit_marshal_object): indentation police.
2241
2242         * class-internals.h: Define MonoSafeHandle.
2243         Add safehandle_class to MonoDefaults type.
2244
2245         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2246         list of classes to check for fields. 
2247
2248         * domain.c (mono_init_internal): Add SafeHandle to the list of
2249         mono_defaults loaded.
2250
2251 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2252
2253         Fix #80253
2254         * reflection.c (mono_reflection_bind_generic_parameters): If the
2255         generic type definition is a type builder, ensure that it is fully
2256         initialized before instantiating it.  Kill some dead code.
2257
2258 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2259
2260         * object.c: clear the loader_error () before loading
2261         more metadata stuff (bug #80258).
2262
2263 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2264
2265         * icall.c, icall-defs.h: type modifiers icalls for
2266         parameters and properties.
2267
2268 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2269
2270         * object.c, icall.c: fixed warnings.
2271
2272 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2273
2274         * marshal.c: fixed a couple of leaks and coding style in a few places.
2275
2276 2006-12-08  Dick Porter  <dick@ximian.com>
2277
2278         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2279         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2280         80173.
2281
2282 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2283
2284         * process.c: ProcessStartInfo may have only filename set and
2285         arguments can be NULL.
2286
2287 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2288
2289         * icall.c: fix leak found by Robert Jordan.
2290
2291 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2292
2293         * marshal.c, marshal.h: generate managed method to access an element
2294         of a multi-dimensional array.
2295
2296 2006-11-30  Paolo Molaro (lupus@ximian.com)
2297
2298         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2299
2300 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2301
2302         * icall.c: back out GetFields () fix until the serialization code is
2303         fixed to not depend on the incorrect behaviour.
2304
2305 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2306
2307         * profiler.c: provide defaults if none are set.
2308
2309 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2310
2311         * Makefile.am, attrdefs.h: new public header file with
2312         constants for attributes for use by embedders.
2313
2314 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2315
2316         * icall.c: GetFields () fix for bug #80064.
2317
2318 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
2319
2320         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
2321         removed long unused icalls.
2322
2323 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2324   
2325         * marshal.c: 
2326                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2327                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2328                 can be generated without a delegate class.
2329                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2330         
2331         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2332
2333 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2334
2335         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2336         #80069.
2337
2338 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2339
2340         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2341         icall-def.h: added icalls needed by System.GC.
2342
2343 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2344
2345         * loader.c: ensure the class in catch clauses is handled
2346         correctly for generics methods (fixes bug#79980).
2347
2348 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2349
2350         * monitor.h, monitor.c: added mono_locks_dump () function
2351         to help debug deadlocks involving managed locks.
2352
2353 2006-11-13  Dick Porter  <dick@ximian.com>
2354
2355         * file-io.c (get_file_attributes): If the file is a symlink try
2356         and get the stat data for the target, but also add the
2357         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2358         the specs for the windows symlink support, but will probably have
2359         to be reworked when I have test data from a vista machine.  Fixes
2360         bug 79887.
2361
2362 2006-11-13  Dick Porter  <dick@ximian.com>
2363
2364         * gc.c (mono_domain_finalize): 
2365         * marshal.c (mono_delegate_begin_invoke): 
2366         * threadpool.c (socket_io_init, mono_thread_pool_init)
2367         (mono_thread_pool_finish): 
2368         * monitor.c (mono_monitor_try_enter_internal): 
2369         * threads.c (mono_thread_resume, mono_thread_init)
2370         (mono_thread_suspend_all_other_threads)
2371         (mono_thread_execute_interruption): 
2372         * appdomain.c (mono_domain_unload): Check for NULL error returns
2373         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2374         75733.
2375
2376 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2377
2378         * process.c
2379         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2380         Only close the handle if the value of the handle is not
2381         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2382         robust.
2383
2384         Improvement for #75733, so that we do not run into this problem. 
2385
2386         
2387         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2388         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2389         internal variables.  Fixes #79462 
2390         
2391
2392 2006-11-09  Dick Porter  <dick@ximian.com>
2393
2394         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2395         Use poll() not select().  Fixes bug 79397.
2396
2397 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2398
2399         Fix #79872
2400         * assembly.c (mono_assembly_load_from_full): Check that the given
2401         image has an assembly manifest.
2402
2403 2006-11-09  Ankit Jain  <jankit@novell.com>
2404
2405         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2406         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2407         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2408
2409 2006-11-07  Dick Porter  <dick@ximian.com>
2410
2411         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2412         Put the old resolver behaviour back for pre-2.0 profiles.
2413
2414 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2415
2416         * threadpool.c: precise GC and locking fixes.
2417
2418 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2419
2420         * class.c: don't load types that have an explicit unaligned
2421         managed reference. Provide better info in the TypeLoad exception.
2422         Part of the fix for bug #79744.
2423         * object.c: use the correct check for class type load issues.
2424
2425 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2426
2427         * class.c: enforce alignment of fields with managed references
2428         even when Pack=1 is forced by the user (bug #77788).
2429
2430 2006-11-03  Dick Porter  <dick@ximian.com>
2431
2432         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2433         If the address reverse lookup fails, return it as the hostname
2434         anyway.  Fixes bug 79721.
2435
2436 2006-11-03  Dick Porter  <dick@ximian.com>
2437
2438         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
2439         Fix build on Windows.
2440
2441 2006-11-02  Dick Porter  <dick@ximian.com>
2442
2443         * icall-def.h: 
2444         * object-internals.h: 
2445         * exception.c (mono_get_exception_thread_interrupted): 
2446         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
2447         Fixes bug 74525.
2448
2449         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
2450         Check for pending Thread.Interrupt.
2451
2452 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
2453         * loader.c: Fixed bug 79684.
2454
2455 2006-10-27  Dick Porter  <dick@ximian.com>
2456
2457         * file-io.c (get_file_attributes): Force symlinks to directories
2458         to be returned as a regular file.  Fixes bug 79733.
2459 2006-10-26  Dick Porter  <dick@ximian.com>
2460
2461         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
2462         CreateFile to open a directory then we need to set the
2463         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
2464
2465 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
2466
2467         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
2468         friends.
2469
2470 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2471
2472         * sgengc.c: small cleanup of timer code.
2473
2474 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2475
2476         * sgen-gc.c: fix some warnings and start adding support for
2477         complete object removal on domain unload.
2478
2479 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
2480
2481         * assembly.c: build_assembly_name should not consider a version
2482         number without build or revision number invalid. Fixes bug #79715.
2483
2484 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
2485
2486         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
2487         call kernel32 function OutputDebugString directly.
2488         
2489         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2490         
2491 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
2492
2493         * reflection.c: small cleanup, using a function to insert a MonoString
2494         in the string heap.
2495
2496 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
2497
2498         * reflection.c: moving GC fixes.
2499
2500 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
2501
2502         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
2503         all the objects with finalizers belonging to an unloading appdomain.
2504
2505 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
2506
2507         * sgen-gc.c: added ability to allocate even when the nursery is fully
2508         pinned and fixed a couple of bugs.
2509
2510 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2511
2512         * threads.h: Revert the last change for now.
2513
2514         * threads.h (mono_thread_get_pending_exception): Rename this to
2515         mono_thread_get_undeniable_exception ().
2516
2517 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
2518
2519         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
2520         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
2521         when fname does not refer to valid assembly. This result in a more
2522         meaningful error message.
2523         * exception.c: added mono_get_exception_bad_image_format2 which 
2524         constructs a BadImageFormatException using the ctor taking a custom
2525         message and the file name. Passing in a NULL msg results in a default
2526         message.
2527         * exception.h: define mono_get_exception_bad_image_format2 function.
2528         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
2529         when file name pointed to an invalid IL image. Use 
2530         mono_get_exception_file_not_found2 to construct FileNotFoundException,
2531         as this results in a more meaningful error message.
2532
2533 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2534
2535         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
2536         #79465.
2537
2538 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
2539
2540         * metadata.c (mono_type_size): Change the align parameter to guint32 for
2541         consistency with the other _size functions.
2542         (mono_type_stack_size): Ditto.
2543
2544         * class.c object.c icall.c: Fix warnings caused by the above change.
2545
2546         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
2547
2548         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
2549
2550         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
2551
2552 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2553
2554         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
2555         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
2556         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
2557         threadpool.h, threads-types.h: mark more internal functions.
2558
2559 2006-10-11  Dick Porter  <dick@ximian.com>
2560
2561         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2562         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
2563         reproduce the bug even before applying the fix.)
2564
2565 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
2566
2567         * reflection.c: allow retrieving attributes for arguments in generic
2568         methods (bug #79241).
2569
2570 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
2571
2572         * debug-mono-symfile.c: properly check fopen () result (found by
2573         coverity).
2574
2575 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
2576
2577         * reflection.c: make error message clearer and fixed two
2578         issuelets found by Coverity.
2579
2580 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
2581
2582         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
2583
2584 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2585
2586         * object-internals.h, gc-internal.h, profiler-private.h:
2587         mark internal functions.
2588
2589 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2590
2591         * reflection.c: put data in the text section.
2592         * icall.c: recognize more types in type_from_typename ().
2593         * process.c, marshal.c: added some GC FIXMEs.
2594
2595 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2596
2597         * loader.c: check for NULL before initializing.
2598
2599 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
2600
2601         * gc.c (finalizer_thread): Use a non-alertable wait here.
2602
2603         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
2604         until the correct solution is found.
2605
2606 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2607
2608         * reflection.c (mono_module_get_object): Avoid an assert when operating on
2609         modules with no metadata. Fixes #79596.
2610
2611         * image.c (load_metadata_ptrs): Put back the error message when
2612         the #- heap is encountered since the support is not complete yet.
2613
2614 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2615
2616         * gc.c: do not allow the user to SuppressFinalize () a
2617         delegate because it would leak the trampoline if present.
2618
2619 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2620
2621         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
2622         PropertyPtr table.
2623
2624 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
2625
2626         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
2627
2628         * metadata.c (mono_metadata_get_param_attrs): Ditto.
2629
2630         * row-indexes.h: Add definitions for *Ptr tables.
2631
2632         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
2633
2634         * metadata.c (mono_metadata_translate_token_index): New helper function to
2635         translate table indexes used in uncompressed metadata.
2636         (mono_metadata_decode_table_row): Ditto.
2637         (mono_metadata_decode_table_row_col): Ditto.
2638
2639         * metadata.c: Add table schema for *Ptr tables.
2640
2641         * class.c loader.c: Use the new helper function to access the affected metadata
2642         tables.
2643         
2644         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
2645         #38532.
2646         
2647 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
2648
2649         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
2650         sequences which can be unbounded in size. Fixes #79583.
2651
2652 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
2653
2654         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
2655         static initialization.
2656
2657         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
2658
2659         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
2660
2661         * domain.c (mono_domain_free): Free up type_init_exception_hash.
2662
2663         * object.c (mono_runtime_class_init): Implement correct semantics when a static
2664         ctor fails, i.e. throw the same exception on subsequent accesses.
2665         
2666 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
2667
2668         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
2669         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
2670         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
2671         Handle marshalling of interfaces and VARIANTs contained in structs.
2672         
2673         Code is contributed under MIT/X11 license.
2674         
2675 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
2676
2677         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
2678         
2679         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
2680         mempool.
2681
2682 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2683
2684         * console-io.c: ignore previous SIGINT handler.
2685
2686 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
2687
2688         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
2689         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
2690         #79460, #79461, #79485.
2691
2692         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
2693
2694         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
2695         #79217.
2696
2697 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
2698
2699         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
2700         could be generated from it.
2701
2702 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
2703
2704         * rand.c: fix read loop to correctly handle EINTR.
2705
2706 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2707
2708         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
2709         internal calls are defined to keep methods closer to the declaring
2710         type and allow a significant reduction in runtime relocations and
2711         memory usage.
2712
2713 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
2714
2715         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
2716         exception message to have FileNotFoundException use the default
2717         assembly load error message. Fixes bug #79426.
2718         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
2719
2720 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2721
2722         * threadpool.c: (start_thread_or_queue) use the root domain when
2723         creating the thread instead of the async object one.
2724
2725 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
2726
2727         * class.c, object.c, class-internals.h, reflection.c:
2728         for arrays, store element_size inside MonoClass (speedup
2729         for array object creation).
2730
2731 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
2732
2733         * icall.c: fixed CodeBase to use the file name and not the module
2734         name (bug #79365).
2735
2736 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
2737
2738         * mono-debug.c, mono-debug.h: export find_method as
2739         mono_debug_find_method ().
2740
2741 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2742
2743         * debug-helpers.c, class-internals.h: added a few functions useful
2744         when debugging under gdb.
2745
2746 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2747
2748         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
2749         characters that need special handling.
2750
2751 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
2752
2753         * mono-config.c: make the os/cpu specification more flexible,
2754         allowing lists and negation.
2755
2756 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
2757
2758         * marshal.c: COM Interop fixes. Handle case where method->klass.
2759         is interface. Handle BSTR/MonoString when null. Use CDECL as 
2760         calling convention on non-windows platforms. This is for
2761         compatibility with XPCOM and MainWin COM.
2762         
2763         Code is contributed under MIT/X11 license.
2764         
2765
2766 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
2767
2768         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
2769         correctly. Fixes #79217.
2770
2771         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
2772
2773 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
2774
2775         * mono-config.c: allow both an os and cpu attribute for dllmap
2776         and dllentry elemnets to enable a single config file to be used
2777         for multiple architectures.
2778
2779 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
2780
2781         * loader.c: MonoLoaderError was cleared too soon on load failure.
2782         Fixes bug #79424.
2783
2784 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
2785
2786         * icall.c: use the defining class vtable when accessing a
2787         static field, not a pobblibly derived class.
2788
2789 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
2790
2791         * icall.c string-icalls.c: Remove references to unicode.h.
2792
2793         * unicode.h unicode.c Makefile.am: Remove these unused source files.
2794
2795         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
2796
2797         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
2798         indicating the image where custom marshaller types should be looked up.
2799         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
2800         custom marshallers, instead of corlib. Fixes #79425.
2801
2802 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
2803
2804         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
2805
2806 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
2807
2808         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
2809         Implement Environment.ProcessorCount.
2810         
2811         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
2812         Implement Environment.ProcessorCount.
2813         
2814         * icall.c: 
2815         Add Environment.ProcessorCount icall.
2816         
2817         Patch by Jason McFall.
2818
2819 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2820
2821         * assembly.c: don't append .exe/.dll when the filename already contains
2822         one of those extensions.
2823
2824 2006-09-12  Martin Baulig  <martin@ximian.com>
2825
2826         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
2827         to array interfaces.
2828
2829 2006-09-11  Martin Baulig  <martin@ximian.com>
2830
2831         * reflection.c (mono_image_build_metadata): Create the
2832         MethodImpl's after emitting all types and methods, so we don't
2833         need another fixup pass for them.
2834
2835 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
2836
2837         * class.c (mono_class_from_name_case): Fix regression introduced by the last
2838         change.
2839
2840 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
2841
2842         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
2843         unload.
2844
2845 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
2846
2847         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
2848         args is not set. Fixes #78926.
2849
2850 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
2851
2852         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
2853
2854         * image.c (load_class_names): Move this to class.c, and rename it to 
2855         'mono_image_init_name_cache'.
2856         (load_modules): Fix a warning.
2857
2858         * class.c icall.c image.c: Initialize image->name_cache lazily.
2859
2860         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
2861         on its name using information in the AOT file.
2862
2863         * class.c (mono_class_from_name): Use the new hook function.
2864
2865 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
2866
2867         * reflection.c (mono_param_get_objects): Handle enum default parameter values
2868         correctly.
2869
2870         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
2871         Fixes #79289.
2872         
2873 2006-09-06  Martin Baulig  <martin@ximian.com>
2874
2875         * icall.c (mono_lookup_internal_call): Small fix.
2876
2877 2006-09-05  Raja R Harinath  <rharinath@novell.com>
2878
2879         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
2880         double g_free.
2881
2882 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
2883
2884         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
2885         when --debug is specified.
2886
2887 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
2888
2889         * class.c (setup_generic_array_ifaces): Fix a warning.
2890
2891 2006-09-04  Miguel de Icaza  <miguel@novell.com>
2892
2893         * Temporarily remove the patch to assemly.c that checks the
2894         assembly versions as it breaks our gacutil.
2895
2896 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
2897
2898         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
2899
2900         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
2901         a net 1.0 runtime.
2902
2903         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
2904         created using the default ctor. Fixes #79152.
2905         (mono_string_builder_to_utf16): Ditto.
2906
2907 2006-09-01  Martin Baulig  <martin@ximian.com>
2908
2909         Fix handling of the generic array interfaces.
2910
2911         * class-internals.h
2912         (MonoDefaults): Removed `generic_array_class' and added
2913         `generic_ilist' class.
2914
2915         * class.c
2916         (mono_bounded_array_class_get): Add the new generic array interfaces.
2917         (setup_generic_array_ifaces): New static method; create vtable
2918         entries for each method in the generic array interfaces.
2919
2920         * metadata.c
2921         (select_container): Allow "parent-less" generic methods.
2922
2923         * marshal.c
2924         (mono_marshal_get_generic_array_helper): New public method.
2925
2926         * icall.c
2927         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
2928         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
2929         moved the interncall into System.Array.
2930
2931 2006-09-01  Raja R Harinath  <rharinath@novell.com>
2932
2933         A few more cases of avoiding work on types with ->byref set.
2934         Has the real fix for #79238
2935         * icall.c (is_generic_parameter): New helper.
2936         (ves_icall_Type_GetGenericParameterPosition): Use it.
2937         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
2938         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
2939         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
2940         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
2941         reference types.
2942         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
2943         reference types.
2944         (ves_icall_Type_get_IsGenericInstance): Likewise.
2945         (ves_icall_Type_get_IsGenericType): Likewise.
2946
2947 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
2948
2949         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
2950         class if possible.
2951
2952         * mempool.h (mono_mempool_get_allocated): New helper function.
2953
2954         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
2955         change.
2956
2957         * mempool.c: Fix warnings and the calculation of stats.
2958
2959         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
2960
2961         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
2962
2963         * loader.c (mono_get_method_from_token): Update method_count stat.
2964
2965         * class-internals.h (MonoStats): Add some stats.
2966
2967 2006-08-31 Robert Jordan  <robertj@gmx.net>
2968
2969         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
2970         with managed variants.
2971         All code is contributed under the MIT/X11 license.
2972         
2973 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
2974
2975         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
2976         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
2977
2978         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
2979
2980         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
2981         with cycles in classes.
2982
2983         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
2984
2985         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
2986         missing a [MarshalAs] directive. Fixes #79203.
2987
2988         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
2989         klass->marshal_info. Fixes #79217.
2990
2991 2006-08-30  Martin Baulig  <martin@ximian.com>
2992
2993         Committing a patch from Joachim Ante <joe@otee.dk>:
2994         Add support for binary data symbol stores.
2995
2996         * debug-mono-symfile.c
2997         (mono_debug_open_mono_symbol_file): Renamed into
2998         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
2999         arguments.
3000
3001         * mono-debug.c
3002         (mono_debug_open_image): Added `raw_contents' and `size' args.
3003         (mono_debug_init_2_memory): New public function.
3004
3005 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
3006
3007         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
3008
3009 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3010
3011         * appdomain.c: implement support for ShadowCopyFiles.
3012
3013 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3014
3015         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
3016         when value is NULL (and should remove CID #51).
3017
3018 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3019
3020         * image.c: moved 2 functions to ../utils.
3021
3022 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3023
3024         * gc.c: cope with the target object of a GC handle being NULL
3025         (bug #78877).
3026
3027 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
3028
3029         * class.c: recursively check parent's explicit implementations
3030         of interface methods (fixes bug #79125).
3031
3032 2006-08-19  Miguel de Icaza  <miguel@novell.com>
3033
3034         * filewatcher.c: Avoid warnings when building, do not redefine
3035         constants that are defined.
3036
3037         Remove warnings.
3038
3039 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3040
3041         * image.c: don't fail when the link points to an absolute path.
3042
3043 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
3044
3045         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
3046         Fix CID #3.
3047
3048 2006-08-17  Miguel de Icaza  <miguel@novell.com>
3049
3050         * image.c (full_path): A new method used to obtain the actual path
3051         of an assembly even in the presence of symbolic links.  
3052
3053         This is necessary for the case where we are running a binary that
3054         has been GACed, but we are using the "published" path name
3055         ($prefix/mono/1.0/blah.exe) which happens to point to the real
3056         file in the GAC.
3057
3058         This was the source of the failure for the `xsp' command with the
3059         recent AppDomain changes, as far as the runtime was concerned,
3060         there were two different assemblies: $prefix/mono/1.0/blah.exe and
3061         $prefix/mono/gac/blah/version/blah.exe.
3062
3063         (do_mono_image_open): use full path
3064
3065 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3066
3067         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
3068
3069 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
3070
3071         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
3072         domain_id is supplied. Fix CID #241 and corlib's unit tests.
3073
3074 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3075
3076         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
3077         small structures. Fixes #78990.
3078
3079 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3080
3081         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
3082
3083         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
3084
3085 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3086
3087         * appdomain.c:
3088         * marshal.c: don't load all the assemblies from a domain into newly
3089         created ones. The new domains might have different rules and load
3090         assemblies from different locations. Fixes bug #76757.
3091
3092         Patch by Lluis. Conflicts resolved by Brian Crowell.
3093
3094 2006-08-16  Alp Toker  <alp@atoker.com>
3095
3096         * socket-io.c: First half of the fix for #79084.
3097         Set sa_size to the length of the content, not that of the struct.
3098         Don't add NULL suffix to the content, this should be done in
3099         managed code if needed.
3100
3101 2006-08-14  Raja R Harinath  <rharinath@novell.com>
3102
3103         Fix part of #79012
3104         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
3105         mono_metadata_parse_type returns NULL.
3106
3107 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
3108
3109         * normalization-tables.h : new file for string normalization data.
3110         * locales.c, locales.h, icall.c :
3111           added load_normalization_resource() for string normalization,
3112           and icall as well.
3113         * Makefile.am : added normalization-tables.h to the sources.
3114
3115 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
3116
3117         * marshal.c: Add more helper functions to reduce code duplication and use them
3118         everywhere.
3119
3120 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
3121
3122         * marshal.c: Fix non-x86 stdcall warnings.
3123         
3124         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
3125         them everywhere.
3126
3127 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
3128
3129         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
3130         type check on multi-dimensional arrays. Fixes #79000.
3131
3132 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
3133
3134         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
3135         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
3136         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
3137         * class-internals.h: add is_com_object to class structure.
3138         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
3139         null checks to COM object marshalling. Fix .ctor call on RCW.
3140         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
3141         
3142         All code is contributed under the MIT/X11 license.
3143
3144 2006-08-09  Dick Porter  <dick@ximian.com>
3145
3146         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
3147         racing mono_monitor_allocator_lock() somewhere, so don't delete
3148         the critical section for now.  Found by running and exiting
3149         monodevelop.
3150
3151 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
3152
3153         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
3154         (ves_icall_System_ComObject_FindInterface): Ditto.
3155         (ves_icall_System_ComObject_CacheInterface): Ditto.
3156
3157         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
3158         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
3159
3160 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3161
3162         * threadpool.c: treat pipes from process asynchronous reads as sockets
3163         when reading from them, so we get select/poll or epoll to wait for
3164         data.
3165
3166 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
3167
3168         * loader.c: Fix a typo (CID #233) in the null check.
3169
3170 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
3171
3172         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
3173         Hopefully fixes #78949.
3174         
3175         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
3176         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
3177         bytes. Fixes #78972.
3178
3179 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3180
3181         * filewatcher.c: we need to set errno here.
3182
3183 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3184
3185         * filewatcher.c: let Win32Exception get the error value.
3186
3187 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3188
3189         * filewatcher.c: translate errno into win32 errors for Win32Exception
3190         to know what happened.
3191
3192 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3193
3194         * threadpool.c: Fix more warnings.
3195
3196         * assembly.c (search_loaded): Fix warnings.
3197
3198         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3199         (mono_async_invoke): Ditto.
3200
3201 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3202
3203         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3204         entries for __ComObject type in addition to ComImport types.
3205         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3206         about hash table.
3207         
3208         All code is contributed under the MIT/X11 license.
3209
3210 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3211
3212         * image.c: avoid tentative loading of modulerefs that contain
3213         no metadata (P/Invoke library names).
3214
3215 2006-07-28  Dick Porter  <dick@ximian.com>
3216
3217         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3218         mono_loader_lock() somewhere, so don't delete the critical section
3219         for now.  Found by running and exiting monodevelop.
3220
3221 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3222
3223         * filewatcher.c: define the inotify syscalls when we're building on
3224         linux and have sys/syscall.h. The build system might not have support
3225         for inotify but the target system might have it.
3226
3227 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3228
3229         * domain.c: Documentation updates.
3230
3231         * loader.c (mono_free_method): Do not release the method
3232         information if we are being profiled, as profilers will use this
3233         information at shut down to present some data to the user.
3234
3235         This is needed so that the profiler does not crash, as the
3236         profiler tends to keep MonoMethods around, and they might become
3237         invalid if we free these.
3238
3239         (mono_get_method_constrained): Return the original CIL stream
3240         method as well, so verification can be performed against it.
3241
3242 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3243
3244         * filewatcher.[ch]: support for inotify file system watcher.
3245         * icall.c: add new internal calls for the inotify file system watcher.
3246
3247 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3248
3249         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3250         #78888.
3251
3252 2006-07-20  Dick Porter  <dick@ximian.com>
3253
3254         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3255         warning.
3256
3257 2006-07-20  Dick Porter  <dick@ximian.com>
3258
3259         * threads.c (start_wrapper): Do the thread cleanup while we still
3260         hold a reference to its object.  Fixes bug 78123.
3261
3262 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3263
3264         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3265         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3266           "managed-to-managed".
3267         * icall.c: Redirect string constructors that take sbyte* to
3268           ves_icall_System_String_ctor_RedirectToCreateString.
3269         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3270           to CreateString () methods with matching signature.
3271         * reflection.c: Use original security informations for
3272           MONO_WRAPPER_MANAGED_TO_MANAGED.
3273         * security-manager.c: Use original security informations for
3274           MONO_WRAPPER_MANAGED_TO_MANAGED.
3275         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3276           that is a placeholder and only its address should be used.
3277         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3278           that is a placeholder and only its address should be used.
3279
3280 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3281
3282         Begin implementing COM Interop.
3283         * appdomain.c: Increment corlib version.
3284         * class.c: Set ComImport classes' parent to __ComObject.
3285         * loader.c: Mark cominterop methods as such.
3286         * domain.c: Add __ComObject class to MonoDefaults structure.
3287         * image.c: Add 2 hashtables to the image for COM Interop related methods
3288         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3289         using the mempool allocator
3290         
3291         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3292         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3293         declaration for mono_metadata_type_dup_mp.
3294         
3295         * debug-helpers.c: Added strings for two additional wrapper types
3296         * object.c: Create proxy objects for ComImport classes
3297         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3298         and added __ComObject class to MonoDefaults structure.
3299         
3300         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3301         MonoComInteropProxy and MonoComObject.
3302         
3303         * marshal.c: Added support for COM Interop
3304         (signature_cominterop): Converts managed signature to corresponding
3305         unmanaged COM signature.
3306         (cominterop_get_function_pointer): gets unmanaged function pointer via
3307         COM object vtable
3308         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3309         (cominterop_get_method_interface): returns interface type that method is defined on
3310         (mono_mb_emit_cominterop_call): emits native call to function pointer
3311         gotten from vtable
3312         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
3313         that matches signature of unmanaged function.
3314         (cominterop_get_native_wrapper): wrapper around adjusted method call.
3315         (cominterop_get_invoke): forwards call from proxy to __ComObject
3316         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
3317         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
3318         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
3319         
3320         * marshal.h: Added Marshal icall declarations.
3321         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
3322         so we can access them in finalizer
3323         
3324 2006-07-14  Dick Porter  <dick@ximian.com>
3325
3326         * object.c (mono_type_initialization_cleanup): Fix a race
3327         condition by temporarily commenting out the critical section
3328         deletion.
3329
3330 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3331
3332         * reflection.c (create_custom_attr): Fix some warnings.
3333         (create_custom_attr_data): Ditto.
3334         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3335         types. Fixes #78855.
3336
3337 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3338
3339         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3340
3341         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3342
3343 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3344
3345         * reflection.c (resolve_object): Add support for DynamicMethod.
3346
3347         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3348         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3349
3350 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3351
3352         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3353         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3354
3355 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3356
3357         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3358         Fixes #77888.
3359
3360 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3361
3362         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3363         slightly: remove a shadow local variable.
3364
3365 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3366
3367         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3368         definition that introduces the virtual function slot.
3369         Also fix Coverity #105.
3370
3371 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3372
3373         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3374         for dynamic assemblies. Fixes #78724.
3375
3376 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3377
3378         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3379         Fixes #78722.
3380
3381 2006-06-21  Martin Baulig  <martin@ximian.com>
3382
3383         * reflection.c
3384         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3385         fixes #76484.
3386
3387 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3388
3389         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3390
3391 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3392
3393         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3394         nor TYPEREFs.
3395         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3396         Inflate result if necessary.
3397         (mono_class_get_full): Remove old version.  Rename from
3398         'mono_class_get' and add 'context' argument.  Pass it to
3399         ..._create_from_typespec.
3400         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3401         (mono_ldtoken): Revert change below.
3402
3403 2006-06-20  Martin Baulig  <martin@ximian.com>
3404
3405         * class.c (mono_ldtoken): Don't pass the generic context to
3406         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3407
3408 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3409
3410         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3411         and later freeing it. Fixes #78638.
3412
3413 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3414
3415         * icall.c (mono_class_get_throw): Revert over-zealous error
3416         throwing, the caller for mono_class_get_throw will cope with
3417         errors when classes are not properly initialized already.
3418
3419         The code still copes with loader exceptions though.
3420
3421         Fixes the regression in reftype1 and reftype3 from the CAS tests.
3422         
3423 2006-06-14  Miguel de Icaza  <miguel@novell.com>
3424
3425         Fixes the `make run1' version of RuntimeAbort (to be commited,
3426         source is in Bugzilla).
3427         
3428         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
3429         FALSE on class loading failure instead of returning true.
3430
3431         * class.c (mono_class_create_from_typedef): It is possible for
3432         mono_metadata_interfaces_from_typedef_full to fail if a class is
3433         not found, cope with this.
3434         
3435
3436 2006-06-14  Dick Porter  <dick@ximian.com>
3437
3438         * socket-io.c: 
3439         * process.c: Fix a bunch of signed/unsigned warnings from gcc
3440         4.1.1
3441
3442 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
3443
3444         * culture-info-table.h : oops, forgot to make it nsync with r61548.
3445
3446 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3447
3448         * icall.c: Another fix for building mono in Visual Studio.
3449
3450 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3451
3452         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
3453         
3454 2006-06-09  Martin Baulig  <martin@ximian.com>
3455
3456         * debug-mono-symfile.c: Put this back and really fix it this
3457         time. Sorry for all the trouble.
3458
3459 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
3460
3461         * icall.c (mono_class_get_throw): Fix a warning.
3462         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
3463         ReflectionTypeLoadException if needed. Fixes #78606.
3464
3465         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
3466         (mono_class_init): Ditto.
3467
3468         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
3469         ref_only exceptions.
3470         (mono_loader_clear_error): Make this work even if there is no error.
3471
3472 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
3473
3474         * object-internals.h marshal.c marshal.h icall.c: Implement method 
3475         Marshal.GetComSlotForMethodInfo using internal call.
3476
3477 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
3478
3479         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
3480         a function for signalling it.
3481
3482         * class.c (mono_class_from_typeref): Use the new kind of loader error when
3483         a referenced assembly is not found.
3484
3485         * loader.c (mono_loader_error_prepare_exception): Add support for 
3486         LOADER_ERROR_ASSEMBLY. Fix formatting.
3487
3488 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3489
3490         * domain.c appdomain.c class-internals.h marshal.c: Add support 
3491         for VARIANT marshalling on windows and increment corlib version
3492         since Variant struct was added.
3493
3494 2006-06-03  Miguel de Icaza  <miguel@novell.com>
3495
3496         * debug-mono-symfile.c: Revert Martin's previous patch which broke
3497         stack trace line information:
3498
3499         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
3500         (Martin) when looking up B which is between A and C, return A not C.
3501
3502         Bug is #78573.
3503
3504         Thanks to Alexander Olk for tracking this down.
3505
3506 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
3507
3508         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
3509         
3510         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
3511         avoid clobbering its value.
3512         (mono_string_to_lpstr): Fix a warning on windows.
3513
3514 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3515
3516         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
3517
3518         * reflection.c loader.c: Removed references to 'dummy' flag.
3519
3520         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
3521
3522         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
3523         it gets GC tracking.
3524
3525         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
3526         GC tracking.
3527         
3528         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
3529
3530         * marshal.c threadpool.c: Update callers of mono_async_result_new.
3531
3532         * appdomain.c: Bump corlib version.
3533
3534 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3535
3536         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3537         CEE_STIND_REF when working with object references.
3538
3539 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3540
3541         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
3542         Fixes #78539.
3543
3544 2006-05-30  Miguel de Icaza  <miguel@novell.com>
3545
3546         * loader.c (method_from_memberref): Fix argument value for
3547         mono_loader_set_error_method_load (I was passing the MonoClass
3548         instead of the class name char *).
3549
3550 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3551
3552         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3553         CEE_STIND_REF when working with object references.
3554
3555 2006-05-30  Martin Baulig  <martin@ximian.com>
3556
3557         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
3558         mono_method_full_name() change and replace the ':' with a '.'
3559         here.
3560
3561 2006-05-30  Martin Baulig  <martin@ximian.com>
3562
3563         * debug-mono-symfile.c
3564         (mono_debug_symfile_lookup_location): Fix the algorithm:
3565         when looking up B which is between A and C, return A not C.
3566
3567 2006-05-29  Martin Baulig  <martin@ximian.com>
3568
3569         * mono-debug.h
3570         (MonoDebugMethodInfo): Make the typedef public.
3571         (MonoDebugSourceLocation): New public struct.
3572
3573         * mono-debug.c
3574         (mono_debug_source_location_from_address): Removed.
3575         (mono_debug_source_location_from_il_offset): Removed.
3576         (mono_debug_il_offset_from_address): Removed.
3577         (mono_debug_address_from_il_offset): Removed.
3578         (mono_debug_lookup_method): New public function.
3579         (mono_debug_lookup_source_location): New public function; replaces
3580         the old mono_debug_source_location_from_*() functions; see the
3581         inline documentation.
3582         (mono_debug_free_source_location): New public function.
3583         (mono_debug_print_stack_frame): New public function; see the
3584         inline documentation.
3585
3586         * debug-mono-symfile.c
3587         (mono_debug_find_source_location): Renamed into
3588         mono_debug_symfile_lookup_location(); only take a
3589         `MonoDebugMethodInfo *' and an `offset' argument; added inline
3590         documentation.
3591         (mono_debug_find_method): Renamed into
3592         mono_debug_symfile_lookup_method().
3593
3594 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
3595
3596         * assembly.c (mono_assembly_open_full): Dont overwrite the status
3597         returned by mono_image_open_full ().
3598
3599         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
3600         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
3601         #78517.
3602
3603         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
3604         #78518.
3605
3606 2006-05-27  Miguel de Icaza  <miguel@novell.com>
3607
3608         * class.c (mono_class_from_typeref): handle missing images
3609         earlier, deals with bug #78418.   Refactor code; 
3610
3611         Fix a warning introduced in my previous commit (some stale code
3612         from before I revisited my patch).
3613
3614         * class.c (mono_class_create_from_typedef): On failure, remove the
3615         class from the MonoImage->class_cache as the class is not
3616         initialized;   Fixes the leak pointed out by Paolo.
3617
3618 2006-05-25  Dick Porter  <dick@ximian.com>
3619
3620         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
3621         DeleteCriticalSections until I figure out which one may still be
3622         sometimes locked when mono_thread_cleanup is called.
3623
3624 2006-05-24  Dick Porter  <dick@ximian.com>
3625
3626         * threads.c (mono_thread_cleanup): Move the threading cleanup out
3627         of mono_thread_manage and back into its own function, so it can be
3628         called after the finalizer thread has finished.
3629
3630         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
3631
3632 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
3633
3634         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
3635         Fixes #78495.
3636
3637         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
3638         with non-blittable elements.
3639         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
3640
3641 2006-05-24  Martin Baulig  <martin@ximian.com>
3642
3643         * mono-debug-debugger.h (MonoDebuggerEvent): Added
3644         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
3645
3646         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
3647         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
3648         `mono_debugger_event_handler' to NULL.
3649
3650 2006-05-24  Martin Baulig  <martin@ximian.com>
3651
3652         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
3653
3654 2006-05-24  Martin Baulig  <martin@ximian.com>
3655
3656         * mono-debug-debugger.h
3657         (mono_debugger_create_notification_function): Added
3658         `MonoCodeManager *' argument.
3659
3660 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
3661
3662         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
3663
3664 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
3665
3666         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
3667         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
3668         implementation.
3669
3670 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
3671
3672         * icall.c: precise GC support: objects can't be stored in unmanaged
3673         memory anymore, even if they are kept alive by other references: since
3674         they can move the GC needs to be able to always find them.
3675
3676 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
3677
3678         * object.c: precise GC support for static fields. Support
3679         for moving GCs: write barriers and pinned allocation for interned
3680         strings.
3681
3682 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3683
3684         * domain.c, domain-internals.h: precise GC support for the MonoDomain
3685         structure.
3686
3687 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3688
3689         * class.c, gc.c: sgen and precise GC updates.
3690
3691 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
3692
3693         * marshal.h, marshal.c: added write barrier wrapper and precise type
3694         fixes.
3695
3696 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
3697
3698         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
3699         support.
3700
3701 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
3702
3703         * reflection.c: precise and sgen GC updates.
3704
3705 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
3706
3707         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
3708
3709 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
3710
3711         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
3712
3713 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
3714
3715         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
3716         MONO_TYPE_OBJECT. Fixes #78462.
3717
3718 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
3719
3720         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
3721         and blittable types.
3722
3723 2006-05-17  Miguel de Icaza  <miguel@novell.com>
3724
3725         * class.c (mono_class_get_exception_for_failure): Implement parts
3726         of a TODO: if the loader error is set (instead of the class
3727         error), we return a Loader exception that can be properly thrown
3728         elsewhere.
3729
3730         This was exposed by some Winforms 2.0 code that I tried to run
3731         (Atsushi pointed me to it).
3732
3733 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
3734
3735         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
3736         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
3737         
3738         * marshal.c (emit_marshal_vtype): Add limited support for 
3739         UnmanagedType.LPStruct. Fixes #78427.
3740
3741         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
3742         Applied a patch from kangaroo to fix #77523.
3743
3744 2006-05-17  Martin Baulig  <martin@ximian.com>
3745
3746         * threads.c
3747         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
3748         (debugger_thread_created): Removed.
3749         (debugger_thread_exited): Removed.
3750
3751 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
3752
3753         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3754
3755         * object-internals.h (MonoReflectionResource): Sync with managed version.
3756
3757 2006-05-12  Wade Berrier <wberrier@novell.com>
3758
3759         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
3760
3761 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
3762
3763         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
3764         functions try to allocate from the image mempool.
3765
3766 2006-05-12  Dick Porter  <dick@ximian.com>
3767
3768         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
3769
3770 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
3771
3772         * object.c: The FieldGetter and FieldSetter methods require the full
3773         name of the class, not only the name. Fixes bug #78277.
3774
3775 2006-05-11  Miguel de Icaza  <miguel@novell.com>
3776
3777         * loader.c (method_from_memberref): Do not pass the NULL klass to
3778         mono_loader_set_error_() methods.  Pass the non-NULL value
3779         (class). 
3780
3781 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
3782
3783         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
3784         (mono_assembly_close): Null out assembly->image->references after freeing it.
3785
3786         * image.c (mono_image_close): Free image->references.
3787         
3788         * reflection.c (mono_image_basic_init): Fix a small memory leak.
3789
3790 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3791
3792         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
3793         before checking if it's NULL (g_assert).
3794
3795 2006-05-10  Martin Baulig  <martin@ximian.com>
3796
3797         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
3798         I thought I already killed that two months ago, but now it somehow reappeared.
3799
3800 2006-05-10  Martin Baulig  <martin@ximian.com>
3801
3802         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
3803
3804 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
3805
3806         * reflection.c: Allocate memory for dynamically created methods in the image
3807         mempools.
3808
3809 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3810
3811         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
3812         don't use the ad pointer before checking if it's NULL (g_assert).
3813
3814 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
3815
3816         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
3817         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
3818
3819         * marshal.c: Allocate all signatures from mempools.
3820
3821         * marshal.c: Allocate some more signatures from mempools.
3822
3823 2006-05-09  Miguel de Icaza  <miguel@novell.com>
3824
3825         * object.c (mono_load_remote_field): The code used to provide a
3826         temporary variable for returning results if the user did not
3827         provide a result pointer.  But our temporary variable was allocted
3828         on the satck.
3829
3830         Fix calling code to always pass a result area.   Coverity ID 103.
3831
3832 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
3833
3834         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
3835         value, not the old. Fixes #78312.
3836         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
3837
3838         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
3839         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
3840         per-image cache.
3841
3842         * assembly.c (mono_assembly_close): Free image->references.
3843
3844         * assembly.c (mono_assembly_names_equal): Fix a warning.
3845         (mono_assemblies_cleanup): Cleanup more global data.
3846
3847         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
3848
3849         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
3850         ptr_cache and image->modules.
3851
3852         * image.c (mono_image_init): Allocate array_cache lazily.
3853         
3854 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3855
3856         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
3857         behavior was changed recently and has bad side effects.
3858
3859 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
3860
3861         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
3862         
3863         * assembly.c (mono_assembly_close): Remove a debug printf.
3864
3865         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
3866
3867         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
3868         to also allow for temporary references between mono_image_open ()/close ().
3869
3870         * domain.c (get_runtimes_from_exe): Add a FIXME.        
3871
3872 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
3873
3874         * marshal.c: Fix support for dynamic methods.
3875
3876         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
3877
3878         * marshal.c (mono_marshal_cleanup): New cleanup function.
3879
3880         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
3881         image mempools.
3882
3883         * class.c (mono_class_init): Fix leaking class->nested_classes.
3884
3885         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
3886
3887         * image.c (mono_image_init): Initialize the new cashes.
3888
3889         * image.c (mono_image_close): Destroy the new cashes.
3890
3891         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
3892
3893         * mempool.c (mono_mempool_strdup): New helper function.
3894
3895         * class-internals.h: Add prototype for mono_loader_unlock ().
3896
3897         * domain.c (mono_jit_info_table_find): Fix a warning.
3898         (mono_debugger_check_runtime_version): Ditto.
3899
3900         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
3901         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
3902         functions to these modules.
3903
3904         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
3905         metadata modules.
3906         
3907         * marshal.c (mono_free_bstr): Fix a warning.
3908
3909         * assembly.c (mono_assembly_open_full): Fix another small leak.
3910
3911         * object.c: Fix some unload leaks in the remoting code.
3912
3913         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
3914         function.
3915
3916         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
3917
3918         * reflection.c: Fix some unload leaks in dynamic assemblies.
3919
3920 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
3921
3922         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
3923         * marshal.h: Add BSTR support on Win32
3924         * icall.c: Add BSTR icalls
3925         * metadata.h: Add BSTR enums
3926
3927 2006-04-28  Miguel de Icaza  <miguel@novell.com>
3928
3929         Work to catch the crash from #76795 and turn it into an
3930         exception.   As I stubbed out pieces of the VisualBasic support,
3931         I found a number of places where the code was failing and I added
3932         checks to those places. 
3933         
3934         * metadata.c (do_mono_metadata_parse_generic_class): Make this
3935         function return a status code.  If we fail to parse the signature
3936         from mono_metadata_parse_generic_inst, return FALSE.
3937
3938         * loader.c (mono_get_method_from_token): If we fail to load the
3939         method (mono_class_get) return NULL.   
3940
3941         * (method_from_memberref): Return NULL if we are unable to parse
3942         the method signature
3943
3944         (mono_loader_error_prepare_exception): Since we now use the
3945         loader_error flag internally to stop processing, and obtaining
3946         exceptions that might be thrown will walk this code path the
3947         proper way of going from a MonoLoaderError into a
3948         MonoException was convoluted.   This new routine encapsulates the
3949         process of turning the error into an exception and *clearing* the
3950         error afterwards.
3951         
3952 2006-04-27  Miguel de Icaza  <miguel@novell.com>
3953
3954         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
3955         with missing assemblies), and to cope with:
3956
3957                 * Missing fieldref from a non-existing assembly.
3958                 * Missing methodref from a non-existing assembly.
3959
3960         The first batch of work to address *some* of the issues from 76661.
3961         
3962         * object.c (mono_class_create_runtime_vtable): If we fail to
3963         initialize the class raise the exception here. 
3964
3965         * metadata.c (mono_class_get_overrides_full): If any methods fail
3966         to load return the failure to the caller.
3967
3968         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
3969         flagging assemblies that failed to load.   
3970
3971         Do not crash if we are unable to load the assembly.
3972
3973         (mono_assembly_close): Do nothing with REFERENCE_MISSING
3974         assemblies. 
3975
3976         * loader.c (mono_loader_set_error_type_load): Change the
3977         convention to always pass unallocated strings, so we make our own
3978         copies (I know our own code had duplicated strings before, but
3979         this keeps the normal conventions).
3980         (method_from_memberref): Call mono_loader_set_error_method_load
3981         for all possible failures of loading the class. 
3982         Remove assert, turn into a loader error.
3983
3984         (mono_loader_error_to_exception): Move this routine from mini
3985         (mini_loader_error_to_exception) there was no need to have that in
3986         mini. 
3987
3988         * class.c (mono_class_from_typeref): If we were not able to load
3989         the assembly with mono_assembly_load_reference, call the
3990         mono_loader_set_error_type_load to register the problem.
3991
3992         (mono_class_setup_fields): If we fail to load the type from
3993         mono_metadata_parse_type_full, call mono_class_set_failure and
3994         break from the loop.
3995
3996         If class->exception_type is set, we do not layout the fields as
3997         that might crash the runtime, and instead return (from breaking
3998         from the previous loop).
3999
4000         (mono_class_setup_vtable): This now returns a boolean indicating
4001         whether the table was properly setup.   The decision is driven by
4002         mono_class_get_overrides_full which might run into non-existing
4003         methods. 
4004         
4005         (mono_class_init): Returns TRUE on success or FALSE if there was a
4006         problem in loading the type (incorrect assemblies, missing
4007         assemblies, methods, etc).
4008
4009         When we call mono_class_setup_fields we also check for a potential
4010         error inside this call (either a class exception or a general
4011         loader exception).
4012
4013         (mono_class_create_from_typedef): If the parent fails to load
4014         (calling mono_class_get_full) return NULL.
4015         
4016         ** Important **
4017
4018         calls to mono_metadata_parse_type_full should be checked
4019         everywhere and set the mono_class_set_failure
4020         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
4021
4022         The current patch checks the places where my manually constructed
4023         tests show the errors are showing up, but we should do it
4024         everywhere. 
4025
4026         ** Important2 **
4027
4028         mono_class_init return values should be tested everywhere, like
4029         the previous case this is something that we should audit
4030         everywhere and not only on the cases exposed by the tests I
4031         created. 
4032
4033 2006-04-26  Miguel de Icaza  <miguel@novell.com>
4034
4035         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
4036         boolean parameter and instead pass the information on `options'
4037         parameter (FileOptions).
4038
4039         * icall.c: Register the new signature for MonoIO.Open.
4040
4041         * debug-helpers.c (dis_one): Trying to understand how coverity
4042         works.  Fix Run 5, item 78.
4043
4044 2006-04-26  Dick Porter  <dick@ximian.com>
4045
4046         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
4047         dereference.
4048
4049 2006-04-25  Martin Baulig  <martin@ximian.com>
4050
4051         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
4052
4053         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
4054         debugger_thread_created().
4055         (debugger_gc_push_all_stacks): Don't handle the main thread in any
4056         special way.
4057         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
4058         (mono_debugger_finalize_threads): New function; undo the effects
4059         of mono_debugger_init_threads().
4060         (mono_debugger_create_all_threads): Removed.
4061
4062 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
4063
4064         * image.c (mono_image_close): Tidy up trace messages.
4065
4066         * assembly.c (mono_assembly_close): Ditto.
4067
4068         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
4069         no longer references an already freed assembly. Fixes #78168.
4070
4071 2006-04-21  Dick Porter  <dick@ximian.com>
4072
4073         * threads.c (mono_thread_detach): Fix reference counting when
4074         detaching threads.
4075
4076 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
4077
4078         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
4079         #78155.
4080
4081 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
4082
4083         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
4084         (mono_type_to_stind): Ditto.
4085
4086         * marshal.c: Use the new helper functions to simplify code.
4087
4088         * image.c (mono_image_close): Add some code for help debug assembly unloading
4089         problems.
4090
4091         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
4092         image mempool.
4093
4094         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
4095         assembly was already loaded in another appdomain. Fixes #78083.
4096
4097 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
4098
4099         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
4100         referenced assemblies.
4101         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
4102
4103         * domain.c (mono_domain_free): Add a trace message.
4104
4105         * appdomain.c (add_assemblies_to_domain): Ditto.        
4106
4107         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
4108         field.  
4109
4110 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4111
4112         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
4113
4114 2006-04-12  Martin Baulig  <martin@ximian.com>
4115
4116         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
4117         `USE_INCLUDED_LIBGC'.   
4118
4119 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4120
4121         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
4122         the patch contains ../ and a small directory name later. Hopefully fixes
4123         #78035.
4124
4125 2006-04-10  Martin Baulig  <martin@ximian.com>
4126
4127         Clean up the debugger's thread-handling code.
4128
4129         The debugger's thread-handling code has been moved from
4130         ../mini/debug-debugger.c to threads.c.  We now iterate directly
4131         over the `threads' hash, keep track of exiting threads and also
4132         use proper locking.
4133
4134         We can now debug XSP and XSP based applications with the debugger.
4135
4136         * object-internals.h (MonoThread): Added `gpointer end_stack'.
4137
4138         * threads.h
4139         (MonoThreadCallbacks): Removed; this was only used by the debugger.
4140         (mono_install_thread_callbacks): Likewise.      
4141
4142         * threads.c (mono_thread_callbacks): Removed.
4143         (debugger_thread_created, debugger_thread_exited): New static functions.
4144         (start_wrapper): Call debugger_thread_created().
4145         (thread_cleanup): Call debugger_thread_exited().
4146         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
4147         (mono_debugger_init_threads): New public function.
4148         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
4149         iterate directly over the `threads' hash and also use proper locking.
4150
4151         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
4152
4153         * mono-debug-debugger.h
4154         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
4155
4156 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
4157
4158         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
4159         argument type=array. Fixes #78057.
4160
4161 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4162
4163         * culture-info-table.h : regenerated. Fixed bug #69652.
4164
4165 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
4166
4167         * loader.c metadata.c: Reapply a variant r59116.
4168         
4169         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
4170
4171         * class.c (mono_class_setup_interface_offsets): New internal function.
4172
4173         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
4174         interfaces too. Fixes #77398.
4175
4176         * reflection.c (encode_cattr_value): Add support for 
4177         parameter type=object, argument type=array.
4178         (load_cattr_value): Ditto. Fixes #77916.
4179
4180         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4181         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4182
4183         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4184         a byval char array and CharSet is Ansi.
4185
4186         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4187
4188 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4189
4190         * metadata.c: Add some locking comments.
4191         
4192         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4193         mempool.
4194         (mono_metadata_free_method_signature): Don't free the signature itself.
4195
4196         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4197
4198         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4199         reference the same MonoImage.
4200         (mono_assembly_load_from_full): Add an assert.
4201
4202 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4203
4204         * image.c (mono_image_close): Don't put the image we are about to free into the
4205         loaded_images_guid_hash.
4206
4207         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4208         to reduce code duplication.
4209
4210         * marshal.c: Register the native functions called by this module as icalls, to
4211         somewhat centralize the creation of MonoMethodSignature's.
4212
4213         * loader.c (mono_method_signature): Add a cache for method signatures.
4214
4215         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4216         the parameter attributes of a method.
4217         (mono_metadata_parse_method_signature_full): Refactored the computation of
4218         parameter attributes into a separate function. Also avoid one allocation in
4219         most cases.
4220
4221         * assembly.c (mono_assembly_close): Ditto.
4222
4223         * image.c (mono_image_close): Log trace messages with INFO level.
4224
4225         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4226
4227         * image.c reflection.c: Correct reference counting of image modules.
4228         
4229         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4230         of this function from the image mempool.
4231         
4232         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4233         to allow more cached types to be used.
4234
4235         * mono-debug.c (mono_debug_add_method): Appled patch from
4236         David S. Miller  <davem@sunset.davemloft.net>: Access 
4237         minfo->lexical_blocks[] entry elements using read32().
4238
4239 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4240
4241         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4242         methods as it is allocated from the mempool.
4243
4244         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4245         image mempool.
4246
4247         * metadata-internals.h: Add comments describing the reference counting scheme
4248         used for MonoImage and MonoAssembly.
4249
4250         * image.c assembly.c reflection.c: Rework reference counting of images and 
4251         assemblies so they are freed when the runtime is shut down. Free some 
4252         additional memory structures when an image is unloaded.
4253         
4254 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4255
4256         * class.c loader.c reflection.c: Allocate more data structures in
4257         the image mempool.
4258
4259 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4260
4261         * icall.c
4262         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4263         build on pre glib 2.4 systems.
4264
4265 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4266
4267         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4268
4269         * icall.c: Fix some warnings.
4270
4271 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4272
4273         * culture-info-table.h : regenerated.
4274
4275 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4276
4277         * threads.c, object-internals.h, verify.c: changed the culture caching
4278         code to use a normal MonoArray for storage so the GC can keep track of
4279         them easily. Fixed bits of the cache logic, too and simplified the
4280         code.
4281
4282 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4283
4284         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4285         thread for non-Boehm GCs.
4286
4287 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4288
4289         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4290         needed to keep track of the data for static fields.
4291
4292 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4293
4294         Fix #75172
4295         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4296         for interface classes.  Use 'num_methods' instead.
4297         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4298         before using '->vtable_size' field.
4299
4300 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4301
4302         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4303         doesn't contain managed pointers, so use a normal hashtable.
4304
4305 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4306
4307         * reflection.c, class-internals.h, domain.c: fixed handling of types
4308         used as values for objects in custom attributes (bug #77915):
4309
4310 2006-03-24  Martin Baulig  <martin@ximian.com>
4311
4312         * class.c (mono_class_setup_fields): Added support for generic
4313         instances; fixes #77580.
4314
4315 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4316
4317         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
4318
4319 2006-03-24  Dick Porter  <dick@ximian.com>
4320
4321         * file-io.c (get_file_attributes): More stat macro breakage.
4322         Fixes bug 77759.
4323
4324 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4325
4326         * profiler.c: added the file=filename option in the default profiler
4327         to output the profile data to filename.
4328
4329 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4330
4331         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4332         bug #77877.
4333
4334 2006-03-22  Martin Baulig  <martin@ximian.com>
4335
4336         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4337         allocated `MonoClassField *' in `fb->handle'.
4338
4339 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4340
4341         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4342         allocate interface ID to save memory and allow better ID reuse on
4343         appdomain unload. setup_generic_vtable () removal from Martin.
4344
4345 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4346
4347         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4348         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4349         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4350         write barriers for reference stores with managed objects accessed with
4351         C structures in the runtime and in embedding programs.
4352
4353 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4354
4355         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4356         'interface_id' and 'max_interface_id' fields of MonoClasses
4357         representing open generic types.
4358
4359 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4360
4361         * object.h, object.c, icall.c: added functions to deal with
4362         storing valuetypes that contain references in managed objects.
4363         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4364         fixes and comments around uses of mono_array_addr ().
4365
4366 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4367
4368         * object.h, icall.c, monitor.c: object.GetHashCode ()
4369         implementation that supports the moving garbage collector.
4370
4371 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4372
4373         * icall.c, threads-types.h, threads.c: implemented finalizer for
4374         LocalDataStoreSlot.
4375
4376 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4377
4378         * metadata.c (mono_type_size): Add a fixme.
4379         (mono_type_stack_size): Ditto.
4380
4381         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4382         'type_forwarders' field.
4383
4384         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4385         attribute from net 2.0.
4386
4387         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4388         from class.c.
4389
4390         * class.c (mono_class_setup_fields): Fix a warning.
4391         
4392         * class.c (mono_class_from_name): Add support for assemblyref entries
4393         in the EXPORTEDTYPE table.
4394
4395         * reflection.c: Add support for handling type forwarders under net 2.0.
4396
4397         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4398         
4399 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4400
4401         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4402         overwriting entries in ModuleBuild->types, also clean up the code
4403         a little. Fixes #77774.
4404
4405 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4406
4407         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4408         load friend assembly info when present.
4409
4410 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4411
4412         Fix crasher on gtest-158.cs.
4413         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4414         the return value if the MonoClass we want is yet in an
4415         inconsistent state.
4416         * class.c (mono_class_create_from_typedef): Add an comment
4417         explaining an order dependency between mono_class_setup_parent and
4418         mono_class_setup_mono_type.
4419
4420 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
4421
4422         * class.c: documentation updates and events bug fix.
4423
4424 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4425
4426         * class.c: some cleanup, locking fixes.
4427
4428 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
4429
4430         * class.c: fix the generics code to setup nested
4431         type info to the instantiated type (bug #77770).
4432
4433 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4434
4435         * marshal.c: fixed a few type correctness issues.
4436
4437 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4438
4439         * loader.c: the Set/Get/Addrtess array methods should be public.
4440
4441 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
4442
4443         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
4444         
4445         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
4446         info->wrapper.
4447
4448 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
4449
4450         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
4451
4452         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
4453
4454         * mempool.c (mono_mempool_alloc): Speed this up a bit.
4455         (mono_mempool_alloc0): Ditto.
4456
4457 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4458
4459         * socket-io.c:
4460         (create_object_from_sockaddr): it was allocating 4 extra bytes
4461         for the AF_UNIX data. Fixes bug #77747.
4462
4463 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
4464
4465         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
4466
4467 2006-03-09  Dick Porter  <dick@ximian.com>
4468
4469         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
4470         Fixes bug 76966 again.
4471
4472 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
4473
4474         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
4475         names from r57532
4476         * appdomain.c: Bumped corlib version to 48 (due to r57532)
4477
4478 2006-03-07  Martin Baulig  <martin@ximian.com>
4479
4480         * object.c
4481         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
4482
4483 2006-03-07  Martin Baulig  <martin@ximian.com>
4484
4485         * class.c
4486         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
4487         regression introduced in r56970; see gtest-252.cs.
4488
4489         * loader.c (mono_get_method_constrained): Correctly handle generic
4490         methods; see gtest-253.cs.
4491
4492 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
4493
4494         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
4495
4496 2006-03-04  Martin Baulig  <martin@ximian.com>
4497
4498         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
4499         compute the parent type at runtime, just like we're already doing
4500         it for interfaces.
4501
4502         * reflection.c
4503         (mono_reflection_bind_generic_parameters): Don't compute the
4504         parent type anymore.
4505
4506         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
4507
4508 2006-03-04  Martin Baulig  <martin@ximian.com>
4509
4510         * mono-debug-debugger.h
4511         (mono_debugger_create_notification_function): Allocate memory at
4512         runtime and return a pointer to it.
4513
4514 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
4515
4516         * assembly.c: Fix windows build.
4517         
4518         * assembly.c: Fix build.
4519
4520         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
4521
4522         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
4523         
4524 2006-03-03  Dick Porter  <dick@ximian.com>
4525
4526         * process.c
4527         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4528         Check parameters before dereferencing them.  Fixes Aaron's part of
4529         bug 77393.
4530
4531 2006-03-03  Raja R Harinath  <rharinath@novell.com>
4532
4533         Fix performance regression.
4534         * loader.c (find_method_in_class): Add 'from_class' argument.
4535         Rename 'klass' argument to 'in_class'.  The signature is compared
4536         against the method in 'in_class', and the corresponding method is
4537         returned from 'from_class'.
4538         (find_method): Walk both 'in_class' and 'from_class' in parallel.
4539         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
4540         type definition and generic instantiation in parallel.
4541         (mono_get_method_constrained): Update to changes.
4542
4543 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
4544
4545         * threads.c: make sure the domain is correct, too when doing
4546         mono_thread_attach ().
4547
4548 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
4549
4550         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
4551         windows. Fixes #77683.
4552
4553 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
4554
4555         * object.h, *: introduced specific way to set elements of an array
4556         of references to be used as write barrier. Still need to audit the
4557         uses of mono_array_addr.
4558
4559 2006-03-01  Miguel de Icaza  <miguel@novell.com>
4560
4561         * object-internals.h: New field to cache the assmebly name, patch
4562         from Tambet Ingo (tambet@ximian.com)
4563
4564 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4565
4566         * decimal.h, class-internals.h, metadata-internals.h,
4567         file-io.h: mark a few function declarations as internal, to
4568         reduce the number of PLT entries.
4569
4570 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4571
4572         * file-io.c: fix typo in warning message.
4573
4574 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
4575
4576         * loader.c: on unix, lookup the "*A" version of a function
4577         if charset is auto as a second option before failing.
4578
4579 2006-02-28  Raja R Harinath  <rharinath@novell.com>
4580
4581         * class.h (mono_class_inflate_generic_method): Revert to two
4582         argument version.
4583         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
4584         (mono_class_inflate_generic_method_full): Add.
4585         * class.c (mono_class_inflate_generic_method_full): Rename from
4586         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
4587         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
4588         * loader.c, reflection.c: Update to changes.
4589
4590 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
4591
4592         * icall.c: const fixes and small improvements.
4593
4594 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4595
4596         * threadpool.c: for asynchronous connect(), enable the same workaround
4597         for BSD 6 as for the Mac. Fixes bug #77637.
4598
4599 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
4600
4601         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
4602         formatted classes. Fixes #77524.
4603
4604 2006-02-24  Raja R Harinath  <rharinath@novell.com>
4605
4606         * class.c (inflate_generic_type): Add a couple more
4607         micro-optimizations.
4608         (inflate_generic_context): Don't use the 'gmethod' from
4609         'inflate_with'.
4610         (mono_class_inflate_generic_method): If the method has generic
4611         parameters, but the passed-in context doesn't have a 'gmethod',
4612         create one.  Use the possibly simplified generic instantiation
4613         from the declaring class instead of the one passed in.
4614
4615 2006-02-24  Raja R Harinath  <harinath@gmail.com>
4616
4617         Make generic method signature and method header handling lazy.
4618         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
4619         (inflate_generic_header): Likewise.
4620         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
4621         parameter to avoid inflating types.
4622         (mono_get_inflated_method): Empty out.
4623         * class.h (mono_class_inflate_generic_method): Update to changes.
4624         * loader.c (mono_get_method_from_token): Don't parse signature for
4625         generic methods, nor methods of generic classes.
4626         (mono_method_signature): Rename from 'mono_method_signature'.
4627         Inflate signature on demand.
4628         (mono_method_get_header): Inflate method header on demand.
4629         * reflection.c: Update to changes.
4630
4631 2006-02-23  Raja R Harinath  <rharinath@novell.com>
4632
4633         * metadata.c (mono_metadata_inflate_generic_inst): If the
4634         instantiation is closed, don't bother expanding it in the new
4635         context.
4636         * class.c (inflate_generic_class): If the generic instantiation
4637         doesn't change after inflation, return the argument itself.
4638         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
4639         Add bounds checks.
4640         (inflate_generic_context): If neither the generic class nor the
4641         generic method instantiations change, return the original context.
4642         * reflection.c (mono_method_get_object): Do
4643         'mono_get_inflated_method' before accessing the ->klass field.
4644         (inflate_mono_method): Don't create a MonoGenericMethod unless
4645         necessary.
4646         (inflate_method): Don't pass a constructed type as the declaring
4647         type of a methodbuilder.
4648
4649 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
4650
4651         * object.c: fix memory overwrite.
4652
4653 2006-02-22  Dick Porter  <dick@ximian.com>
4654
4655         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
4656         it doesn't work any more.
4657         (mono_threads_request_thread_dump): Fix unused variable warnings.
4658
4659 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4660
4661         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
4662         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
4663         the public header file.
4664
4665 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
4666
4667         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
4668
4669 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
4670
4671         * class-internals.h, object.c: reduce the size of MonoVTable
4672         and store the interface_offsets array at negative offsets.
4673
4674 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
4675
4676         * metadata.c: tweak table descriptors data structures to reduce
4677         size and runtime relocations.
4678
4679 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4680
4681         * marshal.c: fix some types and opcodes to be type-safe
4682         in marshaling wrappers.
4683
4684 2006-02-21  Ankit Jain  <jankit@novell.com>
4685
4686         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
4687
4688 2006-02-21  Raja R Harinath  <rharinath@novell.com>
4689
4690         * metadata.c (get_constraints): Relax debugging checks for monodis.
4691
4692 2006-02-21  Ankit Jain  <jankit@novell.com>
4693
4694         * metadata.c (mono_metadata_load_generic_params): Move the code
4695         checking for ambiguous generic params from here to mono/dis/get.c
4696         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
4697
4698 2006-02-21  Raja R Harinath  <harinath@gmail.com>
4699
4700         Fix assertion triggered when compiling nemerle.
4701         * class.c (mono_get_shared_generic_inst): Rename from
4702         get_shared_inst and make non-static.
4703         * loader.c (mono_get_shared_generic_method): New.  Used to create
4704         the MonoGenericContext-equivalent of a MonoGenericContainer.
4705         (mono_get_method_from_token): Initialize the 'context' field of
4706         the created MonoGenericContainer.
4707         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
4708         * metadata.c (get_constraints): Add sanity check.
4709         * class-internals.h: Add new internal methods.
4710
4711         * reflection.c (verify_safe_for_managed_space): New sanity check.
4712         Currently checks that owner-less generic parameters aren't allowed
4713         in managed space.
4714         (mono_type_get_object): Use it.
4715         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
4716         that are now in mono_type_get_object.
4717         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
4718
4719 2006-02-19  Raja R Harinath  <harinath@gmail.com>
4720
4721         * metadata.c (mono_type_create_from_typespec): Rename from
4722         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
4723         argument and caching of types in the generic container.
4724         (unwrap_arrays, find_generic_param): Remove.
4725         * metadata-internals.h: Update.
4726         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
4727
4728 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
4729
4730         * class.c (mono_class_get_exception_for_failure): Fix a warning.
4731
4732         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
4733         return values. Fixes #77581.
4734
4735         * class.c (mono_fnptr_class_get): Switch name and name_space.
4736
4737         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
4738         classes and add support for [In, Out] attributes.
4739         (mono_marshal_free_asany): Ditto. Fixes #77524.
4740
4741 2006-02-18  Raja R Harinath  <harinath@gmail.com>
4742
4743         * class.c (mono_class_from_generic_parameter): Make more robust to
4744         incomplete MonoGenericContainers from monodis.
4745
4746 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4747
4748         * class-internals.h: added some more exception types.
4749         * class.c, metadata.c: added a few checks to handle missing
4750         types.
4751
4752 2006-02-17  Raja R Harinath  <rharinath@novell.com>
4753
4754         Use owner-less generic-params some more.
4755         * class.c (my_mono_class_from_generic_parameter): Remove.
4756         (mono_class_from_generic_parameter): Handle null image,
4757         param->name and param->owner.
4758         (mono_class_from_mono_type): Update.
4759         (mono_class_create_from_typespec): Remove 'container' parameter.
4760         If that parameter is non-null, the result is always inflated by
4761         'mono_class_get_full' anyway.
4762         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
4763         parameter.
4764         (mono_class_get_full): Update.
4765
4766         * class.c (inflate_generic_type) [GENERICINST]: If the generic
4767         instance is not open, don't bother inflating.
4768         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
4769         parse metadata for inflated classes.
4770         (_mono_class_get): Change GenericContext* parameter to
4771         GenericContainer*.
4772         (mono_class_create_from_typespec): Likewise.  Simplify, and
4773         implement trivially.  All the cases are handled in
4774         mono_class_from_mono_type.  Don't inflate returned class.
4775         (mono_class_get_full): Delegate GENERICINST optimization to
4776         inflate_generic_type.
4777         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
4778
4779 2006-02-16  Dick Porter  <dick@ximian.com>
4780
4781         * socket-io.c (create_object_from_sockaddr): Fix typo.
4782         (create_sockaddr_from_object): Check array lengths before
4783         potentially accessing items off the end.
4784         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
4785         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
4786         (ves_icall_System_Net_Sockets_Socket_Send_internal)
4787         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
4788         length checks to avoid wraparound overflows.
4789         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
4790         contents of the array of sockets
4791         (hostent_to_IPHostEntry2)
4792         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
4793         Check return value of inet_ntop ().
4794         (addrinfo_to_IPHostEntry): Fix typo
4795
4796 2006-02-16  Raja R Harinath  <rharinath@novell.com>
4797
4798         Type metadata parsing doesn't use generic-instantiation information.
4799         * metadata.c (mono_metadata_parse_array_full): Change
4800         MonoGenericContext* parameter to MonoGenericContainer*.
4801         (mono_metadata_parse_type_full): Likewise.
4802         (mono_type_create_from_typespec_full): Likewise.
4803         (mono_metadata_parse_mh_full): Likewise.
4804         (mono_metadata_parse_generic_inst): Likewise.
4805         (do_mono_metadata_parse_generic_class): Likewise.
4806         (do_mono_metadata_parse_type): Likewise.
4807         * metadata-internals.h: Update to changes.
4808         * class.c (mono_class_find_enum_basetype): Likewise.
4809         (mono_class_setup_fields): Likewise.
4810         (mono_class_create_from_typespec): Likewise.
4811         * loader.c (method_from_methodspec): Likewise.
4812         (mono_get_method_from_token): Likewise.
4813         (mono_method_get_header): Likewise.
4814
4815 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4816
4817         * marshal.c: handle additional GENERICINST case (patch from
4818         Thong Nguyen <tum@veridicus.com>).
4819         Fix a few cases where LDIND_I/STIND_I was used for references.
4820
4821 2006-02-16  Raja R Harinath  <rharinath@novell.com>
4822
4823         * reflection.c (mono_reflection_get_token): Remove unused variable.
4824
4825 2006-02-16  Martin Baulig  <martin@ximian.com>
4826
4827         * reflection.c (mono_reflection_get_token): Add support for fields
4828         in instantiated generic types.
4829
4830         * icall.c
4831         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
4832
4833 2006-02-15  Martin Baulig  <martin@ximian.com>
4834
4835         * icall.c
4836         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
4837         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
4838         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
4839         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
4840
4841 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
4842
4843         * class.c, metadata.c, metadata.h, object.c, icall.c,
4844         marshal.c: changed mono_type_get_underlying_type () to do
4845         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
4846         Fixed handling of instantiated generic valuetypes (bug #75479).
4847
4848 2006-02-15  Raja R Harinath  <rharinath@novell.com>
4849
4850         * metadata.c (mono_metadata_decode_signed_value): Simplify.
4851         Delegate to mono_metadata_decode_value, and work on the returned value.
4852
4853         * icall.c (ves_icall_MonoType_GetGenericArguments):
4854         Add consistency check here too.
4855         
4856 2006-02-15  Ankit Jain  <jankit@novell.com>
4857
4858         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
4859         char/short etc.
4860
4861 2006-02-15  Ankit Jain  <jankit@novell.com>
4862
4863         * metadata.c (mono_metadata_decode_signed_value): New function to decode
4864         signed values, used only for representing lower bounds of arrays.
4865         (mono_metadata_parse_array_full): Use new
4866         mono_metadata_decode_signed_value to decode lower bounds.
4867
4868 2006-02-14  Martin Baulig  <martin@ximian.com>
4869
4870         * reflection.c
4871         (mono_reflection_get_token): Support "MonoGenericMethod" and
4872         "MonoGenericCMethod" and allow generic instances / methods.
4873
4874 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
4875
4876         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
4877         to obtain the terminal size using an ioctl.
4878
4879         * object.c (mono_nullable_init): Revert this as nullable reference
4880         types are not valid.
4881         (mono_nullable_box): Ditto.
4882
4883 2006-02-09  Dick Porter  <dick@ximian.com>
4884
4885         * threads.c (mono_thread_detach): Drop a reference to the thread
4886         we're detaching.
4887
4888 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
4889
4890         * object.c (mono_nullable_init): Handle nullable reference types.
4891         (mono_nullable_box): Ditto. Fixes #77446.
4892
4893 2006-02-07  Martin Baulig  <martin@ximian.com>
4894
4895         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
4896
4897 2006-02-07  Ankit Jain  <jankit@novell.com>
4898
4899         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
4900         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
4901         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
4902         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
4903         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
4904         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
4905
4906 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
4907
4908         * class.c (mono_class_create_generic): Set type_token as well.
4909
4910         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
4911         compatible with MS.
4912
4913 2006-02-02  Martin Baulig  <martin@ximian.com>
4914
4915         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
4916         has never been used so far.
4917
4918 2006-02-02  Martin Baulig  <martin@ximian.com>
4919
4920         * mono-debug-debugger.h: Changed comment at the top of this file;
4921         the header is not installed, but it's safe to #include it from
4922         within the JIT.
4923
4924         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
4925         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
4926
4927 2006-02-02  Martin Baulig  <martin@ximian.com>
4928
4929         * mono-debug.h
4930         (MonoSymbolTable): Removed the `metadata_info' field.
4931
4932         * mono-debug.c
4933         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
4934
4935         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
4936         (mono_debugger_add_builtin_types): Removed.
4937         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
4938         (mono_debugger_create_notification_function): We now operate on a
4939         pre-allocated area; take a `gpointer' and return `void'.
4940
4941         * mono-debug-debugger.c
4942         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
4943         (mono_debugger_add_builtin_types): Removed.
4944
4945 2006-02-02  Martin Baulig  <martin@ximian.com>
4946
4947         * threads.c (mono_debugger_create_all_threads): New public method.
4948
4949 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4950
4951         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
4952         breaks on several platforms.
4953
4954 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
4955
4956         * assembly.c: the VS.NET build doesn't supply default values for
4957         MONO_ASSEMBLIES and MONO_CFG_DIR.
4958
4959 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
4960
4961         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
4962         helper function.
4963
4964         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
4965
4966         * loader.c (method_from_memberref): Fix a warning.
4967
4968         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
4969
4970         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
4971         with explicit layout. Fixes #77433.
4972
4973 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
4974
4975         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
4976         max_interface_id is initialized before using it. Fixes #77398.
4977         (ves_icall_Type_GetInterfaces): Ditto.
4978
4979 2006-01-30  Raja R Harinath  <rharinath@novell.com>
4980
4981         * metadata.c (mono_metadata_parse_method_signature_full): Don't
4982         allocate memory for parameter attributes when parsing memberref
4983         signatures.
4984         * loader.c (mono_loader_set_error_method_load): Don't warn.
4985         (method_from_memberref): Ensure MissingMethodException gets thrown
4986         if method is not found.  Make warning more informative.
4987
4988 2006-01-29  Raja R Harinath  <harinath@gmail.com>
4989
4990         Fix #77397
4991         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
4992         return true if is byref.
4993         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
4994         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
4995         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
4996
4997 2006-01-27  Raja R Harinath  <rharinath@novell.com>
4998
4999         Fix tests/find-method.2.il
5000         * loader.c (find_method, find_method_in_class): Remove is_inflated
5001         argument.  Revert 2006-01-18 change.
5002         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
5003         is generic, search for method in its generic definition.
5004         * class.c (mono_class_setup_vtable_general): Print generic
5005         arguments of generic types in debugging printf.
5006
5007 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
5008
5009         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
5010
5011         * threads.c (mono_threads_request_thread_dump): New helper function.
5012
5013 2006-01-25  Raja R Harinath  <rharinath@novell.com>
5014
5015         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
5016
5017 2006-01-25  Ankit Jain  <jankit@novell.com>
5018
5019         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
5020         move definition to ..
5021         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
5022         
5023 2006-01-25  Ankit Jain  <jankit@novell.com>
5024             Raja R Harinath  <rharinath@novell.com>
5025
5026         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
5027         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
5028         as necessary.
5029
5030 2006-01-25  Martin Baulig  <martin@ximian.com>
5031
5032         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
5033         `MonoDebuggerThread' into debug-debugger.c.
5034
5035 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
5036
5037         * profiler.c: fix printing of data.
5038
5039 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
5040
5041         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
5042           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
5043
5044 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5045
5046         * object.c: fix deadlock related to string interning.
5047
5048 2006-01-23  Martin Baulig  <martin@ximian.com>
5049
5050         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5051
5052         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
5053
5054 2006-01-23  Martin Baulig  <martin@ximian.com>
5055
5056         * mono-debug.h: Moved the prototypes of some functions which are
5057         used by the JIT here from mono-debug-debugger.h.
5058
5059 2006-01-21  Martin Baulig  <martin@ximian.com>
5060
5061         * Makefile.am: Don't install mono-debug-debugger.h.
5062
5063 2006-01-21  Martin Baulig  <martin@ximian.com>
5064
5065         * mono-debug-debugger.h: Enforce the private status of this header
5066         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
5067         Moved some stuff from mono-debugger-jit-wrapper.h here.
5068
5069 2006-01-20  Raja R Harinath  <rharinath@novell.com>
5070
5071         * class.c (mono_class_from_typeref): Add a sanity test to help
5072         catch lack of assembly load/search hooks.
5073
5074 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
5075
5076         * marshal.c (emit_struct_conv): Relax the fields with same offset
5077         check even more. Fixes #77230.
5078
5079 2006-01-18  Martin Baulig  <martin@ximian.com>
5080
5081         * loader.c (find_method_in_class): Added `gboolean is_inflated'
5082         argument; if false, we compare the uninstantiated signatures.
5083         (method_from_memberref): Compare the uninstantiated signatures;
5084         fixes #76417.
5085
5086 2006-01-18  Robert Jordan  <robertj@gmx.net>
5087
5088         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
5089         Clear the weak link. Fixes bug #77170.
5090
5091         * gc.c (mono_gchandle_free):
5092         Reflect *-gc.c changes (tiny optimization).
5093
5094 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
5095
5096         * metadata.c (mono_metadata_signature_dup): Applied patch from
5097         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
5098         Fixes #77288.
5099
5100 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
5101
5102         * marshal.c (emit_struct_conv): Allow fields with the same offset when
5103         marshalling from native to managed code. Fixes #77230.
5104
5105 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5106
5107         * threadpool.c: fix problem (Mac only) when more than one asynchronous
5108         connect. Fixes bug #77020.
5109
5110 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5111
5112         * class.c: fixed id assignement for nested interfaces (bug #77275).
5113         Added also better info for --print-vtable debugging.
5114
5115 2006-01-12  Martin Baulig  <martin@ximian.com>
5116
5117         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
5118         interfaces on-the-fly; fixes #76625.
5119
5120         * class-internals.h
5121         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
5122         don't need that anymore.
5123
5124 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5125
5126         * socket-io.c
5127         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5128         To avoid initing the nested_classes when not needed I turned the
5129         PeerCredData as a toplevel internal class, as it has to be shared
5130         anyways. 
5131
5132         Fixes the CASA issue.
5133
5134 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
5135
5136         * domain.c: Accessors for MonoJitInfo
5137
5138         * profiler-private.h: Add jitinfo to the end jit hook
5139
5140         * profiler.[ch]: Define new hooks, called after jitting which give
5141         the MonoJitInfo that was compiled
5142
5143 2006-01-10  Martin Baulig  <martin@ximian.com>
5144
5145         * class.c (mono_class_setup_events): Add support for generic
5146         classes; fixes #76440.
5147
5148 2006-01-06  Raja R Harinath  <rharinath@novell.com>
5149
5150         Fix #77160.
5151         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
5152         on passed-in method.
5153
5154 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5155
5156         * object.c (mono_runtime_invoke_array): Add Nullable support.
5157
5158         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
5159
5160 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
5161
5162         * file-io.c: Don't consider sockets as directory and avoid an endless
5163         loop. Fix bug #76966.
5164
5165 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5166
5167         * object.c (mono_nullable_init): New helper function.
5168         (mono_nullable_box): Ditto.
5169
5170         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
5171
5172         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
5173
5174         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
5175         
5176 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
5177
5178         * class.c (mono_class_is_assignable_from): Make T assignable to 
5179         Nullable<T>.
5180
5181 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5182
5183         * appdomain.c: Bump corlib version to 46.
5184         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5185         serialization purpose) and changed ves_icall_System_Reflection_
5186         Assembly_get_code_base signature to accept a boolean (to escape, or 
5187         not, the assembly code base).
5188
5189 2005-12-23  Dick Porter  <dick@ximian.com>
5190
5191         * icall.c: 
5192         * threads-types.h: 
5193         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5194         CreateEvent icall now returns "created" boolean parameter.
5195
5196 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5197
5198         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5199         #76967.
5200
5201         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5202         when attr_klass is an interface. Fixes #77045.
5203
5204 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5205
5206         * marshal.c (emit_struct_conv): Fix previous patch.
5207         
5208         * marshal.c (emit_struct_conv): Add a check for fields with the same
5209         offset.
5210
5211 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5212
5213         Fix regression in Mono.C5.
5214         * class.c (mono_class_create_generic): If 'klass' is an interface
5215         set up the interface offsets.
5216         (mono_class_is_assignable_from): Don't throw away generic arguments.
5217
5218 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5219
5220         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5221         type parameters.
5222
5223 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5224
5225         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5226         dead store.
5227         (do_mono_metadata_parse_generic_class): Don't pass the current
5228         generic context when parsing the type being instantiated: it
5229         cannot use it, anyway.
5230
5231         * loader.c (method_from_memberref): Don't inflate a signature if
5232         it doesn't contain any type parameters.
5233
5234 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5235
5236         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5237
5238 2005-12-14  Martin Baulig  <martin@ximian.com>
5239
5240         * class.c
5241         (mono_type_get_name_recurse): Don't return null for type
5242         parameters and open generic classes.
5243         (mono_class_setup_methods): Don't exclude generic instances.
5244         (mono_get_unique_iid): Use different IDs for different
5245         instantiations of the same generic type.
5246         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5247         open generic instances; create a normal vtable for closed generic
5248         instances.
5249         (mono_class_setup_vtable_general): We're now also called for
5250         closed generic instances.
5251
5252         * reflection.c
5253         (mono_reflection_bind_generic_parameters): Correctly use
5254         mono_metadata_lookup_generic_inst() everywhere.
5255
5256 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5257
5258         * object.c (mono_class_create_runtime_vtable): Call 
5259         mono_class_setup_vtable ().
5260
5261         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5262         function.
5263         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5264         #76959.
5265
5266         * loader.c (mono_loader_set_error_type_load): Print the type load
5267         warnings to the console so they are more visible to the user.
5268         (mono_loader_set_error_method_load): Ditto.
5269
5270         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5271         is still broken.
5272         
5273         * reflection.c (ensure_runtime_vtable): Fix build.
5274
5275         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5276         doesn't work in all cases.
5277
5278 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5279
5280         * object.c (mono_array_new_full): Treat a single dimensional array
5281         with 0 lower bounds as an szarray. Fixes #76973.
5282
5283         * reflection.c (custom_attr_visible): Really fix this.
5284
5285 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5286
5287         * reflection.c (custom_attr_visible): Allow nested public attributes
5288         as well.
5289
5290         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5291         interface check.
5292
5293 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5294
5295         * class.c (set_generic_param_owner): Delete.
5296         (mono_class_create_from_typedef): Don't set ->owner field of
5297         generic parameters to "param containers" of enclosing classes.
5298         * reflection.c (mono_reflection_initialize_generic_parameter):
5299         Likewise.
5300
5301 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5302
5303         * reflection.c (custom_attr_visible): Fix build.
5304
5305 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5306
5307         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5308         private attributes.
5309         
5310         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
5311         handling of null parameter defaults.
5312
5313 2005-12-09  Raja R Harinath  <rharinath@novell.com>
5314
5315         * class.c (mono_class_from_generic_parameter): Don't set
5316         klass->generic_container.
5317         (my_mono_class_from_generic_parameter): Likewise.
5318
5319 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
5320
5321         * reflection.c (load_public_key): Fix a warning.
5322         (method_encode_code): Fix unaligned accesses.
5323
5324 2005-12-07  Martin Baulig  <martin@ximian.com>
5325
5326         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5327
5328         * reflection.c
5329         (write_generic_param_entry): Encode our custom attrs.
5330
5331         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5332
5333 2005-12-07  Martin Baulig  <martin@ximian.com>
5334
5335         * reflection.c (encode_new_constraint): Removed; we don't use the
5336         `NewConstraintAttribute' anymore.
5337
5338 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5339
5340         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5341         not fire a TypeResolve event when Assembly.GetType () is called.
5342
5343 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5344
5345         Beginning of support for nullable types in the runtime. Parts of
5346         this patch are from Martin.
5347
5348         * appdomain.c (MONO_CORLIB_VERSION): Bump
5349
5350         * domain.c (mono_init_internal): get the nullable type
5351
5352         * class.c (mono_class_is_nullable): New method
5353         (mono_class_get_nullable_param): New mehod
5354         (mono_class_create_generic): In types T? set cast_class to T
5355
5356         * class-internals.h (MonoDefaults): new nullable default class
5357         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5358         new methods.
5359
5360 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5361
5362         * metadata.c (select_container): New.  Refactor code to select the
5363         appropriate GenericContainer given the type of generic parameter
5364         we are looking for.
5365         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5366         not a MonoGenericContext.  Use select_container.  Update parameters.
5367         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5368         and MONO_TYPE_MVAR.
5369         (unwrap_arrays): Remove duplicate tests.
5370         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5371         generic instantiated class to find any arguments that are generic
5372         parameters.
5373         (mono_type_create_from_typespec_full): Use find_generic_param to
5374         avoid evicting some generic instantiations from the typespec
5375         cache.
5376
5377 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5378
5379         * reflection.c: fixed writing of doubles on ARM FPA.
5380
5381 2005-12-02  Robert Jordan  <robertj@gmx.net>
5382
5383         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5384
5385 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5386
5387         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5388         least on SUSE 10 they are not the same (on debian, they are just the
5389         same thing).
5390
5391 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5392
5393         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5394         DeclaringType for VARs and MVARs.
5395         * class.c (set_generic_param_owner): Fix initialization of owner
5396         fields.
5397
5398 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5399
5400         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5401
5402 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5403
5404         * threadpool.c: workaround for a bug that shows up on the Mac:
5405         select()+connect() on a blocking socket is not like it should
5406         be, so we proceed to connect() in that case, wasting the I/O
5407         threadpool thread until connect succeedes. Fixes bug #75436.
5408
5409 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5410
5411         * threadpool.c: fix typo when setting file descriptor states.
5412
5413 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5414
5415         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5416         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5417         create a temporary signature container.
5418         (mono_metadata_parse_generic_param): Update to changes.
5419         (mono_type_create_from_typespec_full): Update to changes.
5420         * loader.c (method_from_memberref): Don't use a
5421         MonoGenericContainer while parsing a memberref signature.
5422         (method_from_methodspec): Remove dead-store of the 'container'
5423         variable.  It's overwritten before use.
5424
5425         * metadata.c (mono_type_create_from_typespec_full): Make debugging
5426         checks tighter.
5427         (mono_metadata_parse_generic_param): Likewise.
5428         * loader.c (find_method_in_class): Does not need a
5429         MonoGenericContainer.  Use 'mono_method_signature' rather than
5430         'mono_method_signature_full'.
5431         (find_method, mono_get_method_constrained, method_from_memberref):
5432         Update to changes.
5433
5434         * metadata.c (mono_type_create_from_typespec_full): Ensure that
5435         owner-less generic-parameters are never evicted from the typespec
5436         cache.
5437
5438         * loader.c (method_from_memberref): Don't use the current context
5439         when parsing signatures.
5440         (method_from_methodspec, mono_get_method_from_token): Update to changes.
5441
5442         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
5443         side-effects in g_assert.
5444         * loader.c (mono_get_method_from_token): Resolve klass earlier so
5445         that we don't potentially lose information.
5446
5447 2005-11-26  Dick Porter  <dick@ximian.com>
5448
5449         * icall.c:
5450         * threads.c: icalls to implement basic (ie, not named)
5451         System.Threading.Semaphore.
5452
5453 2005-11-24  Dick Porter  <dick@ximian.com>
5454
5455         * process.c
5456         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5457         Use GetProcessId() if it's available.
5458
5459 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
5460
5461         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
5462
5463 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5464             Ankit Jain  <jankit@novell.com>
5465
5466         * loader.c (mono_get_method_from_token): Initialize 'method' field
5467         of all generic parameters before parsing the signature.  Remove
5468         code that "fixed"-up MVAR references.
5469
5470 2005-11-23  Ankit Jain  <jankit@novell.com>
5471
5472         * metadata.c (mono_metadata_has_generic_params):
5473         (mono_metadata_load_generic_param_constraints):
5474         (mono_metadata_load_generic_params): Move duplicate code ...
5475         (mono_metadata_get_generic_param_row): ... here. Returns the
5476         first row-id in GenericParam table for a given owner (token).
5477         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
5478         prototype.
5479
5480 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5481             Ankit Jain  <jankit@novell.com>
5482
5483         * metadata.c (mono_metadata_class_equal): Pass signature_only when
5484         comparing VARs too.
5485         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
5486         type->data.generic_param only if the type is an MVAR.
5487         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
5488         leak owner-less VARs and MVARs into managed space.
5489
5490 2005-11-21  Martin Baulig  <martin@ximian.com>
5491
5492         * class-internals.h
5493         (MonoMethod): Moved the `generic_container' here from
5494         `MonoMethodNormal' since we now also need it for
5495         `MonoMethodPInvoke';
5496         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
5497         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
5498         an union containing both `MonoMethodNormal' and
5499         `MonoMethodPInvoke'.
5500
5501         * loader.c
5502         (mono_get_method_from_token): Allow implementing generic methods
5503         as interncalls.
5504
5505         * threads.c
5506         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
5507         icall.
5508
5509 2005-11-17  Dick Porter  <dick@ximian.com>
5510
5511         * icall.c: 
5512         * process.h: 
5513         * process.c: Split the Process Start_internal icall into
5514         ShellExecuteEx_internal and CreateProcess_internal, which are
5515         called depending on whether UseShellExecute is true.  Fixes bug
5516         76670.
5517
5518         * appdomain.c (MONO_CORLIB_VERSION): Incremented
5519
5520 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
5521
5522         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
5523         'msize' parameters, use the information in 'mspec' instead.
5524         (emit_object_to_ptr_conv): Ditto.
5525
5526         * marshal.c (emit_struct_conv): Handle explicit layout structs with
5527         fields out of order. Fixes #76733.
5528
5529 2005-11-17  Ankit Jain  <jankit@novell.com>
5530
5531         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
5532
5533 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
5534
5535         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
5536           bug #76575.
5537
5538 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5539
5540         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
5541         for types with non-auto layout. Fixes #76717.
5542
5543 2005-11-16  Ankit Jain  <jankit@novell.com>
5544
5545         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
5546         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
5547         if generic_context is null.
5548           (mono_metadata_generic_param_equal): param->owner can be null.
5549           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
5550         null.
5551
5552 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5553
5554         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
5555         the correct value.
5556
5557 2005-11-15  Martin Baulig  <martin@ximian.com>
5558
5559         * object.c (set_value): Use mono_class_from_mono_type() instead of
5560         the hack for generic instances; fixes #76136.
5561
5562 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
5563
5564         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
5565         fields.
5566
5567         * image.c (load_metadata_ptrs): Initialize the new fields.
5568
5569         * reflection.c (create_dynamic_mono_image): Ditto.
5570
5571         * reflection.c (build_compressed_metadata): Use the new fields.
5572
5573         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
5574         icall.
5575
5576         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
5577         icall.
5578         
5579 2005-11-15  Ankit Jain  <jankit@novell.com>
5580             Raja R Harinath  <harinath@gmail.com>
5581
5582         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
5583         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
5584         new per-generic_container cache if the cached MonoType's context matches
5585         the current context.
5586           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
5587         to the expected context.
5588           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
5589
5590 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5591
5592         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
5593         we changed the signature of an icall.
5594         * icall.c: Modify to mono_double_ParseImpl return true/false 
5595         depending on the success, instead of throwing the exception. This will
5596         help us in Double.TryParse methods.
5597         
5598 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
5599
5600         * marshal.c (emit_marshal_object): Throw an exception when
5601         marshalling 'object' instead of crashing. Fixes #76696.
5602
5603 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5604
5605         * class-internals.h: Add prototype for mono_type_get_full_name ().
5606
5607 2005-11-11  Dick Porter  <dick@ximian.com>
5608
5609         * threads.c (mono_thread_manage): Make sure the main thread has
5610         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
5611
5612 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5613
5614         * loader.c (mono_loader_set_error_type_load): Log a warning to the
5615         console about the missing type.
5616         (mono_loader_set_error_method_load): Ditto.
5617
5618 2005-11-09  Miguel de Icaza  <miguel@novell.com>
5619
5620         * mono-config.c (mono_get_config_dir): Set the system defaults if
5621         none is specified.
5622
5623         * assembly.c (mono_set_dirs): New API entry point to set the
5624         assembly and the config directory in one call
5625
5626 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
5627
5628         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
5629         the ftnptr was created from a delegate in a domain other than the
5630         current domain. Fixes #75377.
5631
5632         * exception.h exception.c: Add mono_get_exception_not_supported ().
5633
5634 2005-11-08  Martin Baulig  <martin@ximian.com>
5635
5636         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
5637
5638 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
5639
5640         * security-manager.h: Added definitions to deal with strongname key 
5641         pairs bigger (and smaller) than 1024 bits.
5642         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
5643         adjust wrt the public key length being used.
5644
5645 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
5646
5647         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
5648           Windows build (r51396-51397).
5649
5650 2005-11-03  Martin Baulig  <martin@ximian.com>
5651
5652         * class.c (mono_class_setup_vtable_general): Also add generic
5653         methods to the vtable; fixes #76581.
5654
5655 2005-11-01  Miguel de Icaza  <miguel@novell.com>
5656
5657         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
5658         sure that we lookup GetString method from the System.Text.Encoding
5659         class, not the derived class or we get an empty method.
5660
5661         Fixed class #76612.
5662
5663 2005-10-25  Miguel de Icaza  <miguel@novell.com>
5664
5665         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
5666         if it has been previously set (embedders). 
5667
5668         Make mono_set_rootdir available also on Unix.
5669
5670 005-10-24  Robert Jordan  <robertj@gmx.net>
5671
5672         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
5673
5674 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
5675
5676         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
5677         only calls which are made to native code use this flag.
5678
5679         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
5680
5681 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
5682
5683         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
5684         Add support for FieldBuilders.
5685
5686 2005-10-29  Martin Baulig  <martin@ximian.com>
5687
5688         * mono-debug.c
5689         (mono_debug_using_mono_debugger): New public method; returns
5690         whether we're running inside the debugger.
5691
5692 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
5693
5694         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
5695         for Method/Constructor/FieldBuilders.
5696
5697 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
5698
5699         * reflection.c (module_add_cattrs): Save custom attributes for global methods
5700         and fields as well.
5701
5702 2005-10-26  Martin Baulig  <martin@ximian.com>
5703
5704         * mono-debug-debugger.c
5705         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
5706
5707 2005-10-24  Raja R Harinath  <harinath@gmail.com>
5708
5709         * icall.c (base64_to_byte_array): Don't pass an out-of-range
5710         integer to isspace.
5711
5712 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
5713
5714         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
5715         when passing valuetypes byref. Fixes #76502.
5716
5717 2005-10-19  Jackson Harper  <jackson@ximian.com>
5718
5719         * profiler.c: Don't put a . in front of types that are not in a
5720         namespace.
5721
5722 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
5723
5724         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
5725
5726 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
5727
5728         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
5729         #76436.
5730         (mono_marshal_get_ldflda_wrapper): Fix a warning.
5731
5732 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5733
5734         * assembly.c metadata-internals.h icall.c: Define an additional
5735         parameter for mono_assembly_name_parse_full, so we can avoid creating
5736         S.R.AssemblyName.Version when no version info wasn't passed.
5737         
5738 2005-10-09  Miguel de Icaza  <miguel@novell.com>
5739
5740         * class.c (mono_type_get_full_name): Reimplement method that was
5741         removed. 
5742
5743         * image.c: Some docs
5744
5745 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
5746
5747         * profiler.c (output_newobj_profile): Fix printing of Total memory
5748         on x86.
5749
5750 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5751
5752         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
5753
5754 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
5755
5756         * threads.c: remove debug output.
5757
5758 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5759
5760         * threads.c (mono_thread_manage): Fix crashes if more than 64
5761         threads need to be aborted. Hopefully fixes #75899.
5762
5763         * assembly.c (mono_stringify_assembly_name): New helper function.
5764
5765         * class.c: Use mono_stringify_assembly_name instead of the similar
5766         static function.
5767
5768         * assembly.h assembly.c: Add support for calling a postload search 
5769         hook if an assembly cannot be loaded.
5770
5771         * appdomain.c: Register new search hooks which call the AssemblyResolve
5772         events in AppDomain. Fixes #75231
5773
5774 2005-10-07  Martin Baulig  <martin@ximian.com>
5775
5776         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
5777         methods without debug info.
5778
5779 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
5780
5781         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
5782         wrappers.
5783
5784 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5785
5786         * file-io.c: now that we return symlinks, use lstat and, when the file
5787         is a symbolic link, stat, to get the file attributes. Also avoid the
5788         conversion to/from utf16/external.
5789
5790 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
5791
5792         * class.c (mono_class_layout_fields): Compute klass->has_references
5793         correctly if an embedded valuetype is not yet initialized. Fixes
5794         #76331.
5795
5796 2005-10-04  Martin Baulig  <martin@ximian.com>
5797
5798         * metadata.c
5799         (mono_metadata_load_generic_param_constraints): New public
5800         function; splitted the constraints loading out from
5801         mono_metadata_load_generic_params().
5802
5803         * class.c (mono_class_create_from_typedef): Call
5804         mono_metadata_load_generic_param_constraints() after setting up
5805         the type and creating our parent; fixes #75329.
5806
5807 2005-10-04  Martin Baulig  <martin@ximian.com>
5808
5809         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
5810         non-dynamic parent classes.
5811
5812 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
5813
5814         * file-io.c : win32 build fix (ETXTBSY seems not found).
5815
5816 2005-10-04  Martin Baulig  <martin@ximian.com>
5817
5818         * reflection.c
5819         (mono_image_get_methodspec_token): Make the cache actually work;
5820         fixes #75974.
5821
5822 2005-10-04  Martin Baulig  <martin@ximian.com>
5823
5824         * class.c (mono_class_name_from_token): Removed the unneccessary
5825         `MonoGenericContext *' argument.
5826
5827 2005-10-04  Martin Baulig  <martin@ximian.com>
5828
5829         * loader.c
5830         (method_from_methodspec): Make the caching work again; fixes the
5831         performance regression from #76262.
5832
5833 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5834
5835         * file-io.c:
5836         * file-io.h:
5837         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
5838         GetFileSystemEntries that performs the same work but without going
5839         into io-layer, locking, etc.
5840
5841 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
5842
5843         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
5844         ThreadState_Stopped as well. Fixes #76047.
5845
5846 2005-09-29  Martin Baulig  <martin@ximian.com>
5847
5848         * class.c
5849         (inflate_generic_context): If the new context has a `gmethod', set
5850         its `container' that that gmethod's `container'.
5851
5852         * metadata.c
5853         (mono_metadata_parse_generic_param): Simplify things;
5854         `generic_container = generic_context->container;' is just fine.
5855
5856         * loader.c (method_from_methodspec): Code cleanups.
5857
5858 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
5859
5860         * decimal.c: fix warning (and let gcc generate correct
5861         code on ARM with optimizations).
5862
5863 2005-09-28  Martin Baulig  <martin@ximian.com>
5864
5865         * loader.c
5866         (method_from_memberref): Added `MonoGenericContext *class_context'
5867         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
5868         (method_from_methodspec): If we're a memberref, use the enclosing
5869         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
5870
5871 2005-09-28  Martin Baulig  <martin@ximian.com>
5872
5873         * object.c (mono_runtime_invoke_array): Added support for
5874         MONO_TYPE_GENERICINST; fixes #75917.
5875
5876 2005-09-27  Martin Baulig  <martin@ximian.com>
5877
5878         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
5879         `k->byval_arg.type' to determine the actual type.
5880
5881         * loader.c (method_from_methodspec): Removed some hacks.
5882
5883 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
5884
5885         * class-internals.h (mono_field_is_deleted): Do the test for
5886         rtspecialname before we check the actual name of the field. This
5887         prevents us from dereferencing a pointer into the string table,
5888         saving us from accessing a few pages
5889
5890         * *.c: Replace the use of {Enter,Leave}CriticalSection with
5891         macros. This will allow a deadlock debugger to easily be plugged
5892         in.
5893
5894 2005-09-27  Martin Baulig  <martin@ximian.com>
5895
5896         * loader.c (method_from_methodspec): Create a "signature"
5897         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
5898
5899 2005-09-27  Martin Baulig  <martin@ximian.com>
5900
5901         * class.c
5902         (inflate_generic_class): Correctly set the new context's
5903         container.
5904
5905         * loader.c
5906         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
5907         instead of a `MonoGenericContext *'.
5908         (mono_method_signature_full): Take a `MonoGenericContainer *'
5909         instead of a `MonoGenericContext *'.
5910
5911         * metadata.c
5912         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
5913         instead of a `MonoGenericContext *'.
5914         (mono_metadata_parse_method_signature_full): Likewise.
5915
5916 2005-09-26  Martin Baulig  <martin@ximian.com>
5917
5918         * class.c
5919         (mono_class_from_generic_parameter): Set `klass->generic_container'
5920         (mono_class_from_generic_parameter): Likewise.
5921         (mono_bounded_array_class_get): We inherit the generic container
5922         from the element class.
5923
5924         * loader.c
5925         (find_method, find_method_in_class): Take a `MonoGenericContext *'
5926         argument rather than computing it here.
5927         (method_from_memberref): Correctly set the generic context before
5928         parsing the signature.  Fixes #75681.
5929
5930 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
5931
5932         * object.c (mono_class_has_special_static_fields): Fix warnings.
5933
5934 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5935
5936         * assembly.c: Add parse_public_key function, to
5937         par the public keys. Also added mono_assembly_name_parse_full,
5938         to define it the parsed key should be freed or not.
5939         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
5940         to parse a long format assembly name.
5941         * metadata-internals.h: Keep mono_assembly_name_parse_full as
5942         private, since calling it to preserve the key requires
5943         freeing it manually.
5944         
5945 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
5946
5947         * locales.c : removed HAVE_ICU part.
5948
5949 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
5950
5951         * object.c (mono_class_create_runtime_vtable): Avoid calling 
5952         field_is_special_static if the klass has no special static fields.
5953
5954         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
5955         (MonoCachedClassInfo): Likewise.
5956
5957         * object.c (mono_class_has_special_static_fields): New helper function.
5958
5959 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
5960
5961         * class.c (mono_class_create_from_typedef): Don't call 
5962         interfaces_from_typedef_full for enums.
5963         (mono_class_create_from_typedef): Compute the base types of enums directly
5964         without calling mono_class_setup_fields ().
5965         (mono_class_find_enum_basetype): New helper function.
5966
5967         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
5968         one place inside the string heap.
5969         
5970 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
5971
5972         * class.c: locking fixes, code cleanups, some docs added.
5973         Allocate some data structures in the image mempool.
5974
5975 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
5976
5977         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
5978         the example code.
5979         
5980 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
5981
5982         * class-internals.h, class.c, reflection.c: reduce memory taken by
5983         MonoClass.
5984
5985 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
5986
5987         * metadata.c, metadata.h, loader.h: documentation updates, code and
5988         API cleanups.
5989
5990 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
5991
5992         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
5993         the example code.
5994
5995         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
5996         page faults caused by the runtime while reading metadata.
5997
5998 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5999
6000         * socket-io.c: the field names were changed 3 months ago and no one
6001         realized until bug #76077 got filed!
6002
6003 2005-09-20  Martin Baulig  <martin@ximian.com>
6004
6005         * icall.c (assembly_icalls): Removed some unused debugger icalls.
6006
6007 2005-09-20  Martin Baulig  <martin@ximian.com>
6008
6009         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
6010         write the rank into the class entry.
6011
6012 2005-09-20  Martin Baulig  <martin@ximian.com>
6013
6014         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
6015
6016 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
6017
6018         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6019
6020         * icall.c (custom_attrs_defined_internal): New icall.
6021
6022         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
6023         function.
6024         (mono_custom_attrs_construct_by_type): New helper function.
6025
6026 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
6027
6028         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
6029         terminate the resulting string. Fixes #76123.
6030
6031 2005-09-16  Martin Baulig  <martin@ximian.com>
6032
6033         * mono-debug.c
6034         (mono_debug_add_method): Ignore inflated methods for the moment.
6035
6036 2005-09-14  Martin Baulig  <martin@ximian.com>
6037
6038         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
6039
6040 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
6041
6042         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
6043         return a success/failure indication.
6044         (mono_metadata_interfaces_from_typedef_full): Ditto.
6045         (get_constraints): Ditto.
6046
6047 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
6048
6049         * marshal.c (emit_marshal_array): Fix handling of null arrays.
6050         
6051         * marshal.c (emit_marshal_array): Add support for returning string
6052         arrays from delegates. Fixes #76063.
6053
6054         * marshal.c: Use the emit_ldloc/stloc macros where possible.
6055
6056 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
6057
6058         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
6059         icall.
6060
6061 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
6062
6063         * reflection.c icall.c: Fix after mono_get_exception_type_load
6064         signature change.
6065
6066         * assembly.c (mono_assembly_get_assemblyref): New helper function.
6067         (mono_assembly_load_reference): Use the new helper.
6068
6069         * class-internals.h (MonoLoaderError): New structure containing 
6070         information about type loading errors.
6071
6072         * class-internals.h loader.c: Add APIs to store per-thread loader
6073         error information.
6074
6075         * loader.c class.c: Set the loader error if needed.
6076
6077         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
6078
6079 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
6080
6081         * decimal.c: fixed to handle the broken ARM fp format.
6082
6083 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
6084
6085         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
6086         broken.
6087
6088 2005-09-06  Martin Baulig  <martin@ximian.com>
6089
6090         * domain.c (supported_runtimes): Added v2.0.50727.
6091
6092 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
6093
6094         * culture-info.h: reduce the size of some structures.
6095
6096 2005-09-05  Martin Baulig  <martin@ximian.com>
6097
6098         Reflect latest API changes in the August CTP.
6099
6100         * icall.c
6101         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
6102         ("MonoType.HasGenericArguments"): Removed.
6103         ("MonoMethod.BindGenericParameters"): Renamed to
6104         "MakeGenericMethod".
6105         ("MethodBuilder.BindGenericParameters"): Renamed to
6106         "MakeGenericMethod".    
6107
6108 2005-09-05  Martin Baulig  <martin@ximian.com>
6109
6110         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
6111
6112 2005-09-05  Martin Baulig  <martin@ximian.com>
6113
6114         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6115
6116         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
6117         generic_container is non-NULL.
6118
6119 2005-09-05  Martin Baulig  <martin@ximian.com>
6120
6121         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6122
6123         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
6124
6125 2005-08-29  Michal Moskal  <malekith@nemerle.org>
6126
6127         * reflection.c (encode_locals,
6128         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
6129         for large generic types.
6130
6131 2005-09-05  Martin Baulig  <martin@ximian.com>
6132
6133         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6134
6135         * class.c (mono_dup_array_type): New public method.
6136         (mono_metadata_signature_deep_dup): New public method.
6137         (dup_type): Correctly duplicate array and function types.
6138
6139 2005-09-05  Martin Baulig  <martin@ximian.com>
6140
6141         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6142
6143         * reflection.c (get_default_param_value_blobs): Handle generic types
6144         and generic methods.
6145
6146 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
6147
6148         * class.c: Fixed error reporting (method/class were inversed) for 
6149         inheritance demands.
6150         * security-manager.c|h: Added the AppDomain when calling the managed
6151         System.Security.SecurityManager.InheritanceDemand method.
6152
6153 2005-09-01  Raja R Harinath  <rharinath@novell.com>
6154
6155         * reflection.c (encode_marshal_blob): 'marshaltype' and
6156         'marshaltyperef' are alternate sources for the custom marshaler
6157         name.
6158
6159 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
6160
6161         * class.c: fix creation of array classes with rank == 1
6162         (patch by Ankit Jain <jankit@novell.com>).
6163
6164 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
6165
6166         * object.c: fix check for creating the bound data for arrays vs
6167         szarrays.
6168
6169 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6170
6171         * object.c: configuration file name is now based on the executable name,
6172         not the image name. Fixes bug #75931.
6173
6174 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
6175
6176         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
6177         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
6178
6179 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
6180
6181         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6182
6183 2005-08-24  Ankit Jain  <jankit@novell.com>
6184             Raja R Harinath  <rharinath@novell.com>
6185
6186         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6187           called by it recursively.
6188           (mono_class_init): Remove special case in pending_init handling, since it's
6189           superseded by the fix to mono_class_from_typeref.
6190
6191 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6192
6193         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6194         BROKEN_THREAD_START stuff.
6195
6196 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6197
6198         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6199         trampoline.
6200
6201         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6202         
6203         * object.c (mono_delegate_ctor): Replace the original function address with
6204         a delegate trampoline.
6205
6206 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6207
6208         * icall.c: add boolean argument to base64_to_byte_array and 
6209         InternalFromBase64String to control whether a whitespace-only string
6210         is allowed (or should casue a FormatException to be thrown). We need
6211         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6212         to match the MS behaviour in both profiles.
6213         * appdomain.c: Bump corlib version.
6214
6215 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6216
6217         This patch implements a big portion of publisher policy
6218         support, used to bind assembly versions and redirect
6219         one assembly from version A to version B.
6220
6221         * assembly.c:
6222         New GSList loaded_assembly_bindings, for storing the cached
6223         assembly bindings.
6224         (assembly_binding_maps_name): New static function for checking if a 
6225         assembly binding information maps an assembly name.
6226         (mono_assembly_binding_info_free): New function for freeing
6227         assembly binding information resources.
6228         (get_publisher_policy_info): New static function for retrieving 
6229         assembly binding information from a MonoImage.
6230         (compare_versions): New static function for comparing an assembly
6231         binding information data and the version of an assembly name.
6232         (check_policy_versions): New static function for checking if an
6233         assembly binding info mapping an assembly name is valid for it.
6234         (mono_assembly_load_publisher_policy): New static function for
6235         loading the 'policy.major.minor.MyAssembly' image for an assembly
6236         with an assembly name 'aname'.
6237         (mono_assembly_bind_version): New static function for updating
6238         assembly redirection.
6239         (mono_assembly_apply_binding): New static function for applying
6240         assembly binding.
6241         (search_binding_loaded): New static function for searching 
6242         loaded assembly binding infos in the cache domain.
6243         (mono_assembly_load_full): Don't apply assembly binding for
6244         reflection only assemblies.
6245
6246         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6247         which contains information about assembly binding. Also
6248         declare signature for mono_config_parse_publisher_policy ()
6249         function, used to retrieve pub policy info.
6250         
6251         * mono-config.c:
6252         (publisher_policy_start): New static function used to parse publisher 
6253         policy config files.
6254         (publisher_policy_parser): New static MonoParseHandler containing 
6255         the functions used when parsing config files.
6256         (mono_config_parse_publisher_policy): New function for parsing
6257         publisher policy files.
6258         
6259 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6260
6261         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6262
6263         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6264
6265         * object.c (mono_get_addr_from_ftnptr): New helper function.
6266
6267         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6268
6269         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6270
6271 2005-08-19  Dick Porter  <dick@ximian.com>
6272
6273         * threads.c, threads.h, appdomain.c, appdomain.h,
6274         profiler-private.h, monitor.c, object.c, object-internals.h,
6275         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6276         store the thread ID, so it can hold a 64 bit value if needed.
6277
6278 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6279
6280         * reflection.c (mono_reflection_create_dynamic_method): Store the
6281         handle class into the method references as well so ldtoken works in
6282         dynamic methods.
6283
6284         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6285         types.
6286
6287 2005-08-19  Ankit Jain <jankit@novell.com>
6288
6289         Fix #75847.
6290         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6291           here rather than using the method signature of a arbitrary function
6292           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6293           two arguments.
6294           Hack done with Harinath.
6295
6296 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6297
6298         * threadpool.c: disable printing stack traces when we get a exception
6299         in a threadpool thread. I need to do more testing to figure out which
6300         cases actually print this. Fixes bug #75828.
6301
6302 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6303
6304         * icall.c: there might be ignored whitespace after the last '='. This
6305         fixes length computation and bug #75840.
6306
6307 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6308
6309         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6310         well. Fixes #75809.
6311
6312         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
6313         #75784.
6314         
6315         * reflection.c (create_custom_attr_data): Ditto.
6316
6317 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
6318
6319         * locales.c, culture-info.h : removed RegionLCIDMap.
6320         * culture-info-tables.h : regenerated.
6321
6322 2005-08-16  Martin Baulig  <martin@ximian.com>
6323
6324         * class.c (mono_type_get_name_recurse): Small fix.
6325
6326 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6327
6328         * locales.c : indentation fixie.
6329
6330 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6331
6332         * object-internals.h,
6333           locales.h,
6334           locales.c,
6335           culture-info.h,
6336           icall.c : added RegionInfo table support.
6337         * culture-info-table.h : regenerated for region support.
6338
6339 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6340
6341         * reflection.c (resolve_object): handle all kinds of MonoMethod
6342         including generic ones
6343
6344 2005-08-12  Ankit Jain <jankit@novell.com>
6345
6346         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6347           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6348
6349 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6350
6351         * process.c: Don't close a thread handle when it's NULL. This is a
6352         workaround for bug #75733.
6353
6354 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6355
6356         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6357
6358 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6359
6360         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6361
6362 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6363
6364         * threadpool.c: if a work item in the thread pool has a callback that
6365         catches a exception, don't propagate it after invoking the callback.
6366         Fixes bug #75336.
6367
6368 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6369
6370         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6371
6372         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6373
6374         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6375
6376         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6377
6378 2005-08-03  Ankit Jain  <jankit@novell.com>
6379
6380         Fix #75683.
6381         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6382           PInvoke calling convention is 0.
6383
6384 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6385
6386         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6387         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6388
6389 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6390
6391         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6392         to handle threads not started by the GC (patch by Michael Meeks
6393         <michael.meeks@novell.com>).
6394
6395 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6396
6397         * reflection.c: Make buffer used in emitting types larger for some
6398         big generic types (patch by Michal Moskal).
6399
6400 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6401
6402         * mono-debug.c: Fix some (not all) alignment problems.
6403
6404 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6405
6406         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6407         Invoke mono_image_load_from_data_full passing the refonly
6408         parameter.
6409
6410         * assembly.c
6411         (mono_assembly_open_from_bundle): Add the refonly argument, 
6412         in order to pass it to other methods it calls to.
6413         (do_mono_assembly_open): Add the refonly argument, in order 
6414         to pass it to other methods it calls to.
6415         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6416         the refonly parameter to it.
6417
6418         * image.c: Add loaded_images_refonly_hash and
6419         loaded_images_refonly_guid_hash to cache the reflection
6420         only loaded images.
6421         (mono_images_init): Initialize the hash tables used for
6422         caching the reflection only images.
6423         (load_modules): Invoke mono_image_open_full passing the refonly
6424         parameter to load the modules the correct way.
6425         (build_guid_table): Add the refonly argument, to re-build the 
6426         correct hash table.
6427         (do_mono_image_open): Added the refonly argument, in order to
6428         define it for the loaded image.
6429         (mono_image_loaded_full): New function, which receives an
6430         additional parameter to look for the image in the refonly or
6431         non-refonly section.
6432         (mono_image_loaded): Updated, using mono_image_loaded_full.
6433         (mono_image_loaded_by_guid_full): The same case that happens
6434         with mono_image_loaded_full.
6435         (mono_image_loaded_by_guid): Likewise.
6436         (register_image): Use the ref_only variable inside MonoImage
6437         to decide in which hash table store the current image.
6438         (mono_image_open_from_data_full): Rename
6439         mono_image_open_from_data to mono_image_open_from_data_full,
6440         adding the refonly argument, to define the ref_only variable 
6441         inside MonoImage.
6442         (mono_image_open_from_data): Return 
6443         mono_image_open_from_data_full.
6444         (mono_image_open_full): Rename mono_image_open to
6445         mono_image_open_full, receiving the new refonly argument,
6446         to pass it to inner methods.
6447         (mono_pe_file_open): Update this function, to open
6448         a MonoImage as a non-refonly image.
6449         (mono_image_close): Use the refonly variable inside
6450         MonoImage to remove the image from the correct caches.
6451
6452         * image.h: Add the signatures of mono_image_open_full,
6453         mono_image_open_from_data_full, mono_image_loaded_full,
6454         mono_image_loaded_by_guid_full.
6455
6456         * metadata-internals.h: Add the ref_only field to 
6457         MonoImage.
6458         
6459 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6460
6461         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
6462         Fix the last behavior, which used to load the assemblies and
6463         extract MonoReflectionAssemblyName information, instead of
6464         extract it from the metadata tables. Needed for Reflection
6465         Only assemblies.
6466         
6467 2005-07-29  Martin Baulig  <martin@ximian.com>
6468
6469         * mono-debug-debugger.c
6470         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
6471         not initialized.
6472
6473         * mono-debug.c
6474         (mono_debug_address_from_il_offset): Check whether we have
6475         debugging support before attempting to take the lock.
6476         (mono_debug_source_location_from_address): Likewise.
6477         (mono_debug_source_location_from_il_offset): Likewise.
6478         (mono_debug_il_offset_from_address): Likewise.
6479         (mono_debug_address_from_il_offset): Likewise.
6480
6481 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
6482
6483         * class.c (mono_class_from_name_case): Add support for dynamic images.
6484         Fixes #75650.
6485
6486         * object.c (mono_class_compute_gc_descriptor): Add a workaround
6487         for #75479.
6488
6489 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6490         
6491         * reflection.c (mono_method_get_object): Fix warning.
6492
6493 2005-07-28  Martin Baulig  <martin@ximian.com>
6494
6495         * mono-debug.c
6496         (mono_debug_add_wrapper): Also write the wrapper type.
6497
6498 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6499
6500         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
6501         
6502         * class.c (mono_class_init): Avoid reading nested classes if the AOT
6503         data indicates the class has none.
6504
6505 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
6506
6507         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
6508         loader lock with the debugger lock. Prevents deadlocks for beagle.
6509
6510         Beagle can now run on an smp box for a weekend without any
6511         issues. Woohoo!
6512
6513 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
6514
6515         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
6516         in a module. Fixes #75629.
6517
6518 2005-07-26  Martin Baulig  <martin@ximian.com>
6519
6520         * mono-debug.c (mono_debug_add_wrapper): New static method.
6521         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
6522         interncall or a wrapper.
6523
6524         * mono-debug.h (MonoDebugWrapperData): New public typedef.
6525         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
6526         (MONO_DEBUGGER_VERSION): Bump to 51.
6527
6528         * mono-debug-debugger.c
6529         (mono_debugger_add_type): Removed this empty function.
6530         (mono_debugger_add_method): Likewise.
6531
6532 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
6533
6534         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
6535         before accessing method->slot.
6536
6537 2005-07-21  Jb Evain  <jbevain@gmail.com>
6538
6539         * reflection.c (method_encode_clauses/class): Handle filters clauses.
6540         Fixes #75010.
6541
6542 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
6543
6544         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
6545         #75587.
6546
6547 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
6548
6549         * image.h image.c: Add mono_image_get_guid () API function.
6550
6551 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
6552
6553         There were issues when multiple threads tried to load
6554         assemblies. A deadlock was created between assemblies_mutex and
6555         mono_domain_assemblies_lock. This fixes the issue by making the
6556         assembly ref counting be lock free. See bug 75586.
6557         
6558         * image.c (mono_image_close): The add ref function here was using
6559         Interlocked operations while the unref was using a mutex and a
6560         --. I don't think this was ever a bug that would be exposed in a
6561         non-pendantic way (ie, by an embedder doing a ref on one thread
6562         and an unref on another), but for the sake of correctness, this is
6563         now Interlocked.
6564
6565         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
6566         (mono_assembly_load_reference): Call mono_assembly_addref rather
6567         than touching the refcount ourselves.
6568         (mono_assembly_close): Use InterlockedDecrement to unref the
6569         assembly. Don't acquire the lock unless it is actually needed.
6570
6571 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6572
6573         * class.c (mono_class_layout_fields): Fix calculation of has_references
6574         for generic types.
6575
6576 2005-07-12  Martin Baulig  <martin@ximian.com>
6577
6578         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6579
6580         * metadata.c
6581         (mono_type_hash): Provide better hashing for generic instances.
6582         (mono_generic_inst_hash): Improve hashing.
6583         (mono_generic_class_hash): Likewise.
6584
6585         * reflection.c (mymono_metadata_type_hash): Improve hashing for
6586         generic instances.
6587
6588 2005-07-12  Martin Baulig  <martin@ximian.com>
6589
6590         * reflection.c (mono_reflection_create_runtime_class): Remove the
6591         hack for generic type definitions and non-`Run' assemblies.
6592         (mono_reflection_bind_generic_parameters): Also use
6593         `klass->wastypebuilder' to check for TypeBuilders.
6594
6595 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6596
6597         * class.c (mono_class_layout_fields): Fix calculation of has_references
6598         for generic types.
6599
6600         * class.c (inflate_generic_class): Fix a leak.
6601         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
6602         for generic types.
6603
6604 2005-07-11  Martin Baulig  <martin@ximian.com>
6605
6606         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
6607         on error.
6608
6609 2005-07-11  Martin Baulig  <martin@ximian.com>
6610
6611         * loader.c (find_method): Also lookup in
6612         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
6613
6614 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6615
6616         * appdomain.c (mono_domain_unload): Don't free the error message
6617         before passing it to mono_get_exception_...
6618
6619         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
6620         
6621 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
6622
6623         * threads.c: try to better guess an available RT signal (bug #75387).
6624
6625 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6626
6627         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
6628         and CACHE_OBJECT.
6629
6630 2005-07-07  Martin Baulig  <martin@ximian.com>
6631
6632         * class.c (mono_type_get_name_full): Return NULL for
6633         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
6634         fixes #75408.
6635
6636 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6637
6638         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
6639         exit the appdomain as well being aborted.
6640
6641         * threadpool.c: Create all threadpool threads inside the root appdomain, and
6642         change back to the root domain after calling managed code. This enables
6643         appdomains using threadpools to be unloaded.
6644
6645 2005-07-07  Martin Baulig  <martin@ximian.com>
6646
6647         * class-internals.h
6648         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
6649         into `MonoDynamicGenericClass' since we only need it for dynamic
6650         types.
6651
6652         * reflection.c (mono_class_bind_generic_parameters): We don't need
6653         to compute the `parent' here.
6654
6655 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
6656
6657         * culture-info-table.h : regenerated.
6658
6659 2005-07-06  Martin Baulig  <martin@ximian.com>
6660
6661         * icall.c
6662         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
6663
6664         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
6665
6666 2005-07-06  Martin Baulig  <martin@ximian.com>
6667
6668         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
6669         we're doing a signature-only comparision; fixes #74945.
6670
6671 2005-07-06  Martin Baulig  <martin@ximian.com>
6672
6673         * class-internals.h (MonoGenericClass): Moved some things out into
6674         a new `MonoInflatedGenericClass' type.  
6675         (MonoInflatedGenericClass): New type; the `klass' of a
6676         `MonoGenericClass' is now computed lazyly in
6677         mono_get_inflated_generic_class().      
6678
6679         * class.c (mono_get_inflated_generic_class): New public function.
6680         (mono_class_inflate_generic_method): Removed the unused
6681         `MonoClass *' argument.
6682         (setup_generic_vtable): Don't call mono_get_inflated_method() on
6683         all the methods.
6684         (mono_class_create_generic): Make this static and merge it with
6685         mono_class_create_generic_2(); we're now called automatically from
6686         mono_get_inflated_generic_class().
6687
6688         * loader.c (mono_method_signature): Call
6689         mono_get_inflated_method() here.
6690
6691 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
6692
6693         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
6694         type of fields with RVA.
6695
6696         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
6697         for this pseudo class.
6698         (my_mono_class_from_generic_parameter): Likewise.
6699         (mono_class_init): Allow interfaces to have cctors.
6700
6701 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6702
6703         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
6704         lazily for AOT methods.
6705
6706 2005-07-05  Martin Baulig  <martin@ximian.com>
6707
6708         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
6709         returns FALSE for a successful match, not TRUE.
6710
6711 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6712
6713         * loader.c (mono_method_get_index): Optimize this a bit.
6714
6715 2005-07-04  Martin Baulig  <martin@ximian.com>
6716
6717         * class.c
6718         (class_compute_field_layout): Move the check for generic type
6719         definitions into mono_class_layout_fields().  Fixes #74684.
6720         (mono_class_from_generic_parameter): Correctly compute
6721         `klass->parent'; fixes #75457.
6722
6723         * reflection.c (register_assembly, register_module): Make sure
6724         `domain->rejobject_hash' is already created.
6725
6726 2005-07-02  Martin Baulig  <martin@ximian.com>
6727
6728         * class-internals.h
6729         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
6730         `MonoDynamicGenericClass'.      
6731
6732 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
6733
6734         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
6735         returned by a field getter is null, since null is a valid value.
6736
6737 2005-07-01  Martin Baulig  <martin@ximian.com>
6738
6739         * reflection.c (mono_reflection_generic_class_initialize): Update
6740         the `dgclass->fields [i].parent' to the correct class.
6741         (mono_image_get_fieldref_token): Use the declaring type, not the
6742         reflected type.
6743
6744 2005-07-01  Martin Baulig  <martin@ximian.com>
6745
6746         * loader.c (find_method): Also look in the interfaces; fixes #75429.
6747
6748 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
6749
6750         * threads.c (thread_cleanup): assert that thread != NULL
6751         (wait_for_tids_or_state_change): We were using the wrong variable
6752         when accessing wait->threads. `i' was always out of the bounds of
6753         the array.
6754
6755 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6756
6757         * loader.c: map user32 and kernel32 to libMonoSupportW
6758
6759 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
6760
6761         * appdomain.c (unload_thread_main): Mark this as WINAPI.
6762
6763 2005-06-28  Martin Baulig  <martin@ximian.com>
6764
6765         * loader.c (method_from_methodspec): Fix #75334.
6766
6767 2005-06-28  Martin Baulig  <martin@ximian.com>
6768
6769         Fix #74953 - Arrays now implement the generic IList<T> interface
6770         on the 2.0 platform.
6771
6772         * class-internals.h (MonoDefaults): Added `generic_array_class'.
6773
6774         * reflection.c (mono_class_bind_generic_parameters): New public
6775         function; similar to mono_reflection_bind_generic_parameters(),
6776         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
6777
6778         * domain.c (mono_init_internal): Try to initialize.
6779         `mono_defaults.generic_array_class' here; this'll only succeed if
6780         we're using the 2.0 corlib.
6781
6782         * icall.c
6783         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
6784         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
6785         (mono_lookup_internal_call): Added support for nested classes.
6786
6787         * loader.c
6788         (mono_get_method_from_token): Set `result->signature->pinvoke' if
6789         we're an interncall and have generic arguments.
6790
6791         * class.c
6792         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
6793         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
6794         instance of System.Array.InternalArray<T> for arrays, so they
6795         implement the generic IList<T> interface.
6796
6797 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
6798
6799         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
6800         (chastamar@yahoo.com). Fixes #75374.    
6801
6802 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
6803
6804         * culture-info-table.h: regenerated.
6805
6806 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6807
6808         * icall.c: handle spaces correctly for base64 strings.
6809
6810 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
6811
6812         * *.c: Kill some warnings.
6813
6814 2005-06-23  Duncan Mak  <duncan@novell.com>
6815
6816         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
6817         that this builds on Solaris 10 (x86).
6818
6819 2005-06-23  Martin Baulig  <martin@ximian.com>
6820
6821         * class.c
6822         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
6823         generic type definitions.
6824
6825 2005-06-23  Martin Baulig  <martin@ximian.com>
6826
6827         Fix #75331.
6828
6829         * metadata.c (mono_class_get_overrides): Renamed to
6830         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
6831         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
6832         pass it to mono_get_method_full().
6833
6834 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
6835
6836         * reflection.c (mono_reflection_create_runtime_class): take the
6837         mono_domain_lock in this method. Prevents deadlocks
6838
6839 2005-06-22  Martin Baulig  <martin@ximian.com>
6840
6841         * loader.c (method_from_methodspec): Fix #75330.
6842
6843 2005-06-22  Martin Baulig  <martin@ximian.com>
6844
6845         * reflection.c (type_get_qualified_name): Use
6846         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
6847         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
6848         argument; use it if we don't have an assembly name.
6849
6850 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
6851
6852         * object.c: In mono_message_init, set "copy out" flag for in
6853         parameters with the [Out] flag.
6854
6855 2005-06-21  Martin Baulig  <martin@ximian.com>
6856
6857         * class.c
6858         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
6859         and MONO_TYPE_PTR.
6860
6861 2005-06-21  Martin Baulig  <martin@ximian.com>
6862
6863         * class.c (mono_class_init): Don't initialize `class->fields' for
6864         generic instances since they're initialized again in
6865         compute_field_layout(). 
6866         (compute_field_layout): Set the field's `generic_info' here; fix
6867         #75320. 
6868
6869 2005-06-21  Martin Baulig  <martin@ximian.com>
6870
6871         * class-internals.h
6872         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
6873
6874         * metadata.c (mono_metadata_generic_method_equal): Also
6875         distinguish the `generic_class'; fixes #75334.
6876
6877 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6878
6879         * domain.c:
6880         * appdomain.c:
6881         * domain-internals.h:
6882         * reflection.c: 'domain_assemblies' field is now protected by its own
6883         lock. Don't call into managed code to run the AssemblyLoad event if we
6884         now there are no registered delegates for it.
6885
6886 2005-06-20  Martin Baulig  <martin@ximian.com>
6887
6888         * class.c (mono_class_is_assignable_from): Use a custom version of
6889         mono_class_has_parent() to make things work for generic instances;
6890         fix #75300.
6891
6892 2005-06-20  Martin Baulig  <martin@ximian.com>
6893
6894         * loader.c (method_from_methodspec): Apply a patch from
6895         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
6896
6897 2005-06-20  Martin Baulig  <martin@ximian.com>
6898
6899         * class.c (mono_class_init): Reverted Zoltan's last change; it
6900         breaks generics.
6901
6902 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
6903
6904         * threads.c (wait_for_tids_or_state_change): Add missing locking.
6905
6906 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6907
6908         * socket-io.c: fix the index in the socket array for writable/error
6909         sockets. Fixes bug #75306.
6910
6911 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
6912
6913         * class.c (mono_class_init): Allow interfaces to have static ctors.
6914
6915 2005-06-17  Martin Baulig  <martin@ximian.com>
6916
6917         * loader.c (method_from_methodspec): Use `context->container' when
6918         parsing the `gmethod->inst'.
6919
6920 2005-06-17  Martin Baulig  <martin@ximian.com>
6921
6922         * class.c (mono_type_get_name_recurse): Don't add the assembly
6923         name for type arguments.
6924
6925 2005-06-15  Martin Baulig  <martin@ximian.com>
6926
6927         * reflection.c (mono_image_get_inflated_method_token): Encode
6928         correct klass; fixes #75260.
6929
6930 2005-06-13 Michal Moskal <malekith@nemerle.org>
6931
6932         * icall.c: Make GetCorrespondingMethod/Constructor take
6933         MonoReflectionMethod method not MonoMethod. Removed
6934         MonoType.GetCorrespondingField, and make
6935         MonoGenericType.GetCorrespondingField take name not
6936         MonoClassField.
6937
6938 2005-06-13  Michal Moskal <malekith@nemerle.org>
6939
6940         * reflection.c (field_encode_signature, encode_locals):
6941          Make sizes of buffers for types larger (for big generic types).
6942          (create_generic_typespec,
6943          mono_reflection_sighelper_get_signature_local,
6944          mono_reflection_sighelper_get_signature_field):
6945          Add asserts for too small buffers.
6946
6947 2005-06-15  Martin Baulig  <martin@ximian.com>
6948
6949         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
6950         if our parent is not a dynamic type.
6951
6952 2005-06-15  Martin Baulig  <martin@ximian.com>
6953
6954         * class-internals.h (MonoTypeNameFormat): New enum.
6955
6956         * class.c
6957         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
6958         (mono_type_get_full_name): Removed.
6959         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
6960         argument instead of the boolean's.
6961
6962         * icall.c (ves_icall_System_MonoType_getFullName):
6963         Added `gboolean assembly_qualified'.    
6964
6965         * reflection.h
6966         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
6967
6968         * reflection.c (mono_reflection_parse_type): Parse the new type
6969         name format.
6970
6971 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6972
6973         * icall.c: no need to convert from utf16 to utf8 and then back again
6974         after the call to GetLogicalDrives.
6975
6976 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6977
6978         * icall.c: frombase64. Fix problems exposed by new tests.
6979
6980 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6981
6982         * icall.c: added internal calls for converting char [] and strings in
6983         base64 into byte [].
6984
6985 2005-06-10  Martin Baulig  <martin@ximian.com>
6986
6987         * class.c (mono_class_create_generic_2): Read the nested classes
6988         from the metadata rather than from `gklass->nested_classes' since
6989         `gklass' might not be initialized yet.
6990
6991 2005-06-09  Duncan Mak  <duncan@novell.com>
6992
6993         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
6994         all public headers. Fixes #74919.
6995
6996 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
6997
6998         * domain.c: The key for proxy_vtable_hash is now a pointer
6999         array. Added new GHashFunc and GCompareFunc functions for this.
7000
7001         * class.h: The list of interfaces in MonoRemoteClass is known in
7002         advance and can't grow (we create a new MonoRemoteClass if needed),
7003         so now the interface array can be allocated together with
7004         MonoRemoteClass.
7005         
7006         * object.c: Added a new method create_remote_class_key.
7007         Fixed mono_remote_class so it does not depend on
7008         mono_upgrade_remote_class.
7009         Removed extend_interface_array.
7010         Added new method clone_remote_class(), which makes a copy of a remote
7011         class and adds a new interface or class to it.
7012         mono_upgrade_remote_class() now creates a new remote class (or gets
7013         it from the cache) if an vtable upgrade is needed. In this way
7014         we make sure that other objects sharing the same remote class
7015         don't get the new vtable with unwanted interfaces.
7016         
7017         * object-internals.h:
7018         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
7019         
7020         * marshal.c: Track changes in mono_upgrade_remote_class().
7021
7022 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
7023         * icall.c: Add runtime methods for obtaining members of inflated
7024         class, which were created from supplied non-inflated members. It
7025         is used in internal Get{Method,Constructor,Field} methods in
7026         System.Type
7027
7028 2005-06-09  Martin Baulig  <martin@ximian.com>
7029
7030         * reflection.c
7031         (mono_reflection_bind_generic_method_parameters): Fix #75169.
7032
7033 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7034         * reflection.c (mono_image_basic_init): Define
7035         Version in MonoDynamicAssembly. 
7036         
7037 2005-06-08  Martin Baulig  <martin@ximian.com>
7038
7039         Fix #75136.
7040
7041         * loader.c
7042         (mono_method_signature_full): New public method; takes a
7043         `MonoGenericContext *'.
7044         (find_method): Use mono_method_signature_full() and pass the
7045         klass'es context to it.
7046
7047         * class.c (mono_class_is_inflated_method): Use
7048         mono_method_signature_full() and pass the context to it.
7049
7050 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
7051
7052         * object.c: add proper locking in mono_remote_class_vtable(),
7053         fixes possible memory corruption.
7054
7055 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
7056
7057         * marshal.c (mono_remoting_marshal_init): set
7058         initialized after initialization.
7059
7060 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
7061
7062         * locales.c : hush.
7063
7064 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
7065
7066         * object.c (extend_interface_array): fix really silly
7067         memory corrupting / comparison bug.
7068
7069 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7070
7071         * reflection.c: Functions added to support the creation
7072         of CustomAttributeData, which includes Attribute data
7073         used by ReflectionOnly methods.
7074
7075         * reflection.h:  mono_reflection_get_custom_attrs_data and
7076          mono_custom_attrs_data_construct added (functions exposed).
7077
7078          * icall.c: Added mono_reflection_get_custom_attrs_data
7079          as icall.
7080         
7081 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
7082
7083         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
7084         lupus's request.
7085
7086 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
7087
7088         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
7089
7090         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
7091         dynamic DllImportAttribute.
7092
7093         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
7094         dynamic DllImportAttribute.
7095
7096         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
7097         Fixes #75162.
7098
7099 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7100
7101         * threads.c: avoid segfault when an unstarted thread is aborted.
7102
7103 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
7104
7105         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
7106         Returns the name and version of the runtime for reporting.
7107
7108 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7109
7110         * appdomain.c: bump corlib version.
7111         * object-internals.h: new field in MonoReflectionAssembly.
7112
7113 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7114
7115         * object-internals.h: Carlos forgot to add this field.
7116
7117 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7118
7119         * icall.c: Added create_version to create instances
7120         of Version of MonoReflectionAssemblyName. This change helps
7121         the AssemblyName tests to keep running fine.
7122         
7123 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
7124   
7125         * object.c (mono_method_return_message_restore): A somehow less
7126         intrusive fix for #75138.
7127
7128 2005-06-03  Raja R Harinath  <rharinath@novell.com>
7129
7130         * object.c (mono_method_return_message_restore): Fix computation
7131         of expected number of out args.
7132
7133 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7134
7135         * reflection.c (mono_image_get_method_info): Fix the case when the
7136         charset is empty.
7137
7138 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
7139
7140         * object.c: Added missing null check in
7141           mono_method_return_message_restore.
7142
7143 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7144
7145         * reflection.c (mono_image_get_method_info): Handle the case when
7146         dllentry is empty.
7147
7148 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
7149
7150         * object.c: When creating the vtable for a proxy, take into account
7151         all inherited interfaces, not only the ones registered in
7152         iclass->interfaces. This fixs bug #74996.
7153         Also, in mono_method_return_message_restore, verify that the array
7154         of out args has the expected lengh.
7155
7156 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7157
7158         * socket-io.c: update the timeout in Poll when the call is interrupte.
7159
7160 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7161
7162         * socket-io.c: support abort/suspend in Select_internal after last
7163         change.
7164
7165 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7166
7167         * threadpool.c: remove warning.
7168
7169 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7170
7171         * icall.c:
7172         * socket-io.[ch]: Select_internal uses poll() now when available, thus
7173         removing the 1024 limit from select(). Runtime part of the fix for
7174         bug #71203.
7175
7176 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7177
7178         * socket-io.c: when resolving the addresses for the same
7179         host returned by gethostname(), get the local IPs from the interface
7180         list. Loopback addresses are discarded if the are interfaces up with
7181         non-loopback ones. Fixes bug #63265.
7182
7183 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7184
7185         * appdomain.c, verify.c, object-internals.h, reflection.c:
7186         bumped corlib number to 36, and added new extra_flags field
7187         to ReflectionMethodBuilder and friends.  Fixes #75060.
7188
7189 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7190
7191         * gc.c: register a new weak link only if the object is non-null
7192         (fixes bug#75047).
7193
7194 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7195
7196         * culture-info.h : short time pattern too.
7197
7198 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7199
7200         * culture-info.h : expand long time pattern string length.
7201
7202 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7203
7204         * culture-info-table.h : update (more French date format; #72788).
7205
7206 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7207
7208         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7209         the method is static. Fixes #75029.
7210
7211 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7212
7213         * reflection.c: Update the table_idx field of method builders after
7214         saving the module, since it can change. This is a workaround for
7215         bug #74914. 
7216
7217 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7218
7219         * culture-info-table.h : update (additional French date format).
7220
7221 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7222
7223         * icall.c (ves_icall_type_Equals): Revert last change.
7224         
7225         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7226
7227         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7228
7229 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7230
7231         * class-internals.h: Added executioncontext_class field to 
7232         MonoDefaults structure.
7233         * domain.c: Cache System.Threading.ExecutionContext class in 
7234         mono_defaults.
7235         * object.c: Capture the ExecutionContext for asynchroneous calls in
7236          mono_async_result_new.
7237         * object-internals.h: Added execution_context and original_context 
7238         fields to MonoAsyncResult. Added execution_context to MonoThread.
7239         * security-manager.c|.h: Added mono_get_context_capture_method to 
7240         return the capture method (if required by the security manager or by
7241         the framework version used).
7242         * threadpool.c: Apply capture (if present) ExecutionContext in 
7243         mono_async_invoke and revert to original context after it completes.
7244
7245 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7246
7247         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7248
7249 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7250
7251         * culture-info-table.h : zh-CHT related workaround.
7252
7253 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7254
7255         * marshal.c (emit_marshal_custom): Add some error checking and call the
7256         methods in the ICustomMarshaler interface. Fixes #74875.
7257         
7258         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7259         native->managed wrappers.
7260
7261 2005-05-12  Martin Baulig  <martin@ximian.com>
7262
7263         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7264         here and use the loader lock.
7265
7266         * mono-debug.c: Properly lock when the debugger is not attached.
7267         (mono_debug_init): Release the initial lock if we're not running
7268         in the debugger.
7269
7270 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7271
7272         * marshal.c (emit_marshal_custom): Pass through NULL values without
7273         calling the custom marshalling routines.
7274
7275         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7276         conversion in structures. Fixes #74882.
7277
7278 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7279
7280         * culture-info-table.h : zh-* cultures were missing.
7281
7282 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7283
7284         * threads.c: Added a new event background_change_event which is signaled
7285         when a thread changes its background mode.
7286         Moved here several checks previously done in managed code. The checks
7287         require the thread lock, and using the thread lock in managed code
7288         can result in deadlocks.
7289         Merged Start_internal and Thread_internal into a single method. Now 
7290         Thread_internal does all work of creating and starting a thread.
7291         Added icalls for setting and getting the state of the object. Moved from
7292         managed code to avoid locking there.
7293         Added wait_for_tids_or_state_change() which is called instad of
7294         wait_for_tids when waiting for non-backround threads to end. This method
7295         will return if one of the threads ends or the background_change_event
7296         is signaled.
7297         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7298         the background mode. This method signals the background_change_event
7299         event.
7300         * icall.c:
7301         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7302         removed Start_internal.
7303         
7304 2005-05-11  Martin Baulig  <martin@ximian.com>
7305
7306         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7307         to order of some fields to get proper alignment on 64-bit machines.
7308
7309 2005-05-11  Martin Baulig  <martin@ximian.com>
7310
7311         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
7312         changes as they're broken and completely fuck up the debugger.
7313
7314         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
7315
7316 2005-05-10  Martin Baulig  <martin@ximian.com>
7317
7318         * reflection.c (mono_reflection_generic_class_initialize): Don't
7319         call mono_class_setup_parent() here.
7320
7321 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7322
7323         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7324         send/receive timeout use an integer in milliseconds. We were using a
7325         struct timeval.
7326
7327 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7328
7329         * locales.c:
7330         (internal_get_cultures): reserve the first slot of the array for the
7331         InvariantCulture, which will be filled in managed code.
7332
7333 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7334
7335         * reflection.c (mono_image_fill_module_table): Initialize the
7336         GENERATION field as well.
7337
7338 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7339
7340         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7341         Monitor.Enter on the object.
7342
7343 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7344
7345         * threads.c: Enable the wait for running threads when exiting.
7346         * icall.c: Suspend all threads before exiting.
7347
7348 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7349
7350         * assembly.c (mono_assembly_load_reference): Fix warning.
7351
7352 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7353
7354         * threadpool.c: changed the default number of threads per cpu. From now
7355         on, the default will be 20 + (5 * number of cpus) instead of 50.
7356
7357 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7358
7359         * loader.c (mono_method_get_signature_full): Add locking here.
7360
7361 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7362
7363         * appdomain.c: Moved methods for parsing and freeing assembly
7364         names to assembly.c.
7365         * assembly.c, domain-internals.h: Created public methods for parsing
7366         assembly names. Fixed mono_assembly_load_with_partial_name:
7367         it now finds the best match, taking into account the version,
7368         token and culture specified in the partial name. Also return
7369         the latest version if no version information is specified.
7370
7371 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7372
7373         * threadpool.c: replace check for SocketAsyncCall class.
7374
7375 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7376
7377         * threadpool-internals.h:
7378         * Makefile.am: added threadpool-internals.h
7379
7380         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7381         that happen in threadpool threads (tested on MS).
7382         (mono_thread_pool_remove_socket): new function that dispatch any pending
7383         AIO call on a socket that is closing. By now only epoll really needs it,
7384         as select/poll wake up when the socket closes.
7385
7386
7387         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7388
7389 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7390
7391         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7392
7393 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7394
7395         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7396
7397 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7398
7399         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7400         has an abort request, convert it into a suspend request.
7401
7402 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7403
7404         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7405         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7406         is not supported yet.
7407
7408 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7409
7410         * image.c: register assemblies loaded from data (bundles) in the loaded
7411         assemblies hash. Fixes bug #74772.
7412
7413 2005-04-29  Martin Baulig  <martin@ximian.com>
7414
7415         * class.c (mono_type_get_name_recurse): Update to the new naming
7416         schema from the latest .NET 2.x beta2.
7417         (mono_class_setup_vtable_general): If we're a generic instance,
7418         copy the vtable from our generic type definition and inflate all
7419         the methods in it.
7420
7421         * loader.c (find_method): Update to the new naming schema from the
7422         latest .NET 2.x beta2.
7423
7424 2005-04-29  Raja R Harinath  <harinath@gmail.com>
7425
7426         * class.c (mono_class_init): Add a mono_loader_unlock to the
7427         #74734 fix.
7428
7429 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
7430
7431         * icall.c (ves_icall_System_Environment_Exit): Remove the 
7432         suspend_all_other_threads () call for the time being, since it can hang.
7433
7434         * threads.c (mono_thread_manage): Similarly, disable the waiting for
7435         the background threads to exit, since it can also hang.
7436
7437         * class.c (mono_class_init): Applied patch from Ankit Jain 
7438         (radical@gmail.com). Avoid pending init errors when a field refers
7439         to a nested class using a typeref. Fixes #74734.
7440
7441         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
7442         this for dynamic modules.
7443
7444 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7445
7446         * threads.c: don't wait for threads that are in the process of aborting
7447         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
7448         and waiting for background threads to finish. This makes xsp and
7449         mod-mono-server exit without random length delays and/or hangs.
7450
7451 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7452
7453         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
7454
7455 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
7456
7457         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
7458         dynamic types to prevent infinite loops. Fixes #74727.
7459
7460         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
7461         ..._is_assignable_to.
7462
7463 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
7464
7465         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
7466
7467 2005-04-25  Martin Baulig  <martin@ximian.com>
7468
7469         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
7470
7471         * domain.c
7472         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
7473
7474         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
7475
7476         * reflection.c (build_compressed_metadata): Set metadata header
7477         version to 2.0.
7478
7479 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
7480
7481         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
7482         number into an integral and a decimal part. Fixes #70473.
7483
7484         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
7485
7486 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
7487
7488         * culture-info-table.h : reflected the latest locale-builder output.
7489
7490 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7491
7492         * threadpool.c: check for SuspendRequested too when deciding if
7493         mono_thread_interruption_checkpoint should be called.
7494
7495 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7496
7497         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
7498         * threads.c: remove interruption_mutex and use Interlocked instead. When
7499         suspending all the threads, wait for all the suspended events at once.
7500         If we're shutting down and get an APC that is going to be queued,
7501         call mono_thread_execute_interruption immediately, as the thread might
7502         be sleeping on a pthread condition or mutex.
7503
7504         * icall.c: call mono_runtime_set_shutting_down before suspending the
7505         threads.
7506
7507         Fixes bug #74693. And now xsp is happier when exiting.
7508
7509 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
7510
7511         * loader.c (mono_stack_walk): Fix #74690.
7512
7513 2005-04-22  Martin Baulig  <martin@ximian.com>
7514
7515         * mono-debug.h (MonoDebugMethodJitInfo): Added
7516         `MonoDebugMethodJitInfo *jit'.
7517
7518         * mono-debug.c (mono_debug_read_method): Cache the
7519         MonoDebugMethodJitInfo in `address->jit'.
7520         (mono_debug_free_method_jit_info): New public method.
7521
7522 2005-04-22  Martin Baulig  <martin@ximian.com>
7523
7524         * class.c (mono_class_is_assignable_from): Disallow
7525         type parameter -> interface.
7526
7527 2005-04-21  Dick Porter  <dick@ximian.com>
7528
7529         * threads.c (mono_thread_create): Turn an assertion into an error.
7530
7531 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
7532
7533         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
7534         
7535         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
7536         Fix some gcc 4.0 warnings.
7537
7538 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
7539
7540         * file-io.c: fix alt dir separator char on unix systems
7541         and cleanup (fixes bug #71214).
7542
7543 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
7544
7545         * marshal.c: Use CALLVIRT instead of CALL when dispatching
7546         a call to a remote domain, since the method may be an
7547         interface method in the client domain. This fixes bug #74192.
7548
7549 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7550
7551         * threadpool.c: recv/send are now performed before going back to managed
7552         code to save one transition.
7553
7554 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7555
7556         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
7557
7558         * metadata/threadpool.c: removed hack to workaround the bug above.
7559
7560         Fixes bug #74618.
7561
7562 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
7563
7564         * reflection.c reflection.h: Fix handling of parameter defaults in
7565         dynamic methods. Also fixes handling of parameter attributes.
7566         Fixes #74609.
7567
7568         * mono-debug.c (mono_debug_close_image): Fix warning.
7569
7570 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7571
7572         * socket-io.h: replaced old unused field with new 'blocking'.
7573         * threadpool.c: restore socket blocking state on windows(tm).
7574
7575 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
7576
7577         * icall.c: don't return the codebase in the AssemblyName[] returned by
7578         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
7579         * object-internals.h: Removed FIXME (fields were presents) and fixed
7580         versioncompat declaration.
7581
7582 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7583
7584         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
7585         not closed, so don't cleanup when it happens.
7586
7587 2005-04-13  Chris Toshok  <toshok@ximian.com>
7588
7589         * mono-debug-debugger.h: change prototype for
7590         mono_debugger_lookup_type.
7591
7592         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
7593         this function, although it should probably be named
7594         mono_debugger_init_type.
7595
7596 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7597
7598         * threadpool.c: fix non-AIO case.
7599
7600 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
7601
7602         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
7603         the built-in profiler to measure just JIT compilation times.
7604
7605 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7606
7607         * threadpool.c: the epollfd might be closed by another thread at
7608         any time, so ignore EBADF at treat it as a "we're closing" sign.
7609
7610 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7611
7612         * threadpool.c: release the semaphores with a count equals to the number
7613         of working threads in both IO and regular pools. Fixed typo that messed
7614         up the count of IO pool threads. Don't initialize the pipe handles if
7615         we're using epoll.
7616
7617 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7618
7619         * threadpool.c: some systems don't like a NULL when deleting the socket
7620         from epoll.
7621
7622 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7623
7624         * threadpool.c: fix semaphore allocation.
7625
7626 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7627
7628         * threadpool.c: added epoll() based implementation for asynchronous IO
7629         that is used instead of the default poll() when available.
7630         It can be disabled by setting MONO_DISABLE_AIO.
7631
7632 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7633
7634         * threadpool.c: windows needs 'closesocket' and instead of returning
7635         0 when the stream is closed while in select, it returns -1. Fixes bug
7636         #74573.
7637
7638 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
7639
7640         * class.c (class_compute_field_layout): Fix the regression caused by
7641         the previous try.
7642
7643 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7644
7645         * threadpool.c: separate pool for socket async. IO.
7646         * threadpool.h: mono_max_worker_threads is not a global any more.
7647
7648 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
7649
7650         * class.c (class_compute_field_layout): Fix #74549.
7651
7652 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7653
7654         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
7655         use 2 connected sockets instead.
7656
7657 2005-04-08  Miguel de Icaza  <miguel@novell.com>
7658
7659         * mono-config.c: Add new entry point for mkbundle
7660         mono_config_parse_memory. 
7661
7662 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7663
7664         * threadpool.c: removed another unused function.
7665
7666 2005-04-08  Ankit Jain  <radical@corewars.org>
7667
7668         * reflection.c (get_default_param_value_blobs): Add 'types'
7669         parameter to get the types encoded in the constant table.
7670         (mono_param_get_objects): Use the type from the constant table,
7671         not the type of the parameter, when creating default values.
7672         Handle null default values correctly.
7673
7674 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7675
7676         * file-io.c:
7677         * file-io.h:
7678         * threadpool.c:
7679         * threadpool.h:
7680         * icall.c:
7681         * socket-io.c: removed dead code for async IO.
7682
7683 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7684
7685         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
7686
7687         * threadpool.c: intercept socket async. calls and pass them to a thread
7688         that is polling and dispatching the job items to the threadpool as
7689         socket become ready. Fixes bugs #71217, #71933.
7690
7691         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
7692         between char and short/ushort arrays.
7693
7694         * socket-io.c: remove dead code.
7695
7696 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7697
7698         * locales.c,
7699           icall.c : removed InternalToUpper_Comp() and
7700           InternalToLower_Comp().
7701
7702 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7703
7704         * char-conversions.h : The tables were incorrectly generated. Should
7705           be generated against invariant culture.
7706
7707 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
7708
7709         * object.c (mono_runtime_invoke_array): Fix return value when 
7710         passing pre-created valuetype objects to ctors.
7711
7712         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
7713         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
7714         Fixes #74338.
7715
7716 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
7717
7718         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
7719         only used with --security and hides the wrong corlib version error.
7720
7721 2005-03-30  Joshua Tauberer  <tauberer@for.net>
7722
7723         * class.c: Changed mono_class_name_from_token so that types
7724         outside of a namespace don't have an initial period.  Improved
7725         the g_warning message used in _mono_class_get when loading
7726         fails.
7727         * assembly.c: In mono_assembly_load_reference, when an assembly
7728         can't be found, "No such file or directory" is misleading and
7729         unhelpful because a few paths were checked for the presence of
7730         the assembly.  When that happens (ENOENT), display a nicer
7731         message indicating the directories that were searched.  In all
7732         cases, the warning is made easier to read for non-hackers.
7733
7734 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
7735
7736         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
7737         project/solution.
7738         * appdomain.h|domain.c: Removed inline from functions.
7739         * appdomain.c: Reduced warnings when compiling on windows.
7740         * icall.c: Fixed output_debug declaration to gunichar2*.
7741         * mono-config.c: Reduced warnings when compiling on windows.
7742         * rand.c: Added missing "windows.h". Added missing return value.
7743         * rawbuffer.c: Added missing winsock2.h for windows.
7744         * sysmath.h: Added mono-compiler.h header to allow/ease 
7745         compilation with non-GCC compilers.
7746         * threads.c: Fixed declarations to compile with VS.NET C compiler.
7747         Removed cast warnings.
7748
7749         Adapted from the work of J Lothian (for VC6).
7750
7751 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
7752
7753         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
7754         from default_path.
7755
7756 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
7757
7758         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
7759         the 2.0 profile.
7760
7761 2005-03-27  Raja R Harinath  <harinath@gmail.com>
7762
7763         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
7764         has to be in $(exec_prefix).  $(prefix) is for arch-independent
7765         stuff, and it would probably use $(prefix)/share rather than
7766         $(prefix)/lib.
7767
7768 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7769
7770         * console-io.c: added 2 includes that might be missing.
7771
7772 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
7773
7774         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
7775         profile.
7776
7777         * reflection.c (create_custom_attr): Allocate the params array using
7778         alloca so it gets GC tracking.
7779
7780 2005-03-23  Chris Toshok  <toshok@ximian.com>
7781
7782         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
7783         out some spew.
7784
7785 2005-03-24  Raja R Harinath  <rharinath@novell.com>
7786
7787         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
7788         changes to pick up any changes in prefix, etc.
7789
7790 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7791
7792         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
7793         
7794         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
7795         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
7796
7797 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7798
7799         * class-internals.h object-internals.h class.c reflection.c: Extend the
7800         mono_lookup_dynamic_token () function to return the class of the
7801         token as well. 
7802
7803         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
7804         well. Fixes #73848.
7805
7806 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
7807
7808         * security-manager.c: Skip inheritance checks for intra-corlib
7809         class inheritance and method overrides. This skips a lot of checks
7810         and (anyway) permissions cannot work until corlib is loaded.
7811
7812 2005-03-23  Martin Baulig  <martin@ximian.com>
7813
7814         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
7815         MONO_TYPE_GENERICINST.  
7816
7817 2005-03-23  Martin Baulig  <martin@ximian.com>
7818
7819         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
7820
7821 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7822
7823         * class.c: added locking comments to some functions.
7824         Cache the interface offsets arrays (saves about 20 KB
7825         of runtime memory in a typical app).
7826         Reduce the time overhead in mono_class_setup_supertypes ().
7827
7828 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
7829
7830         * icall.c: speedup and fix leaks in GetMethodsByName and
7831         GetPropertiesByName.
7832
7833 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7834
7835         * reflection.c: some locking fixes.
7836
7837 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7838
7839         * metadata.c: added missing break in case statement.
7840
7841 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
7842
7843         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
7844         typedbyref return values. Fixes #73941.
7845
7846 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
7847
7848         * security-manager.c|h: Added demandunmanaged method and 
7849         suppressunmanagedcodesecurity class to MonoSecurityManager.
7850         Renamed aptc class to allowpartiallytrustedcallers.
7851
7852 2005-03-17  Martin Baulig  <martin@ximian.com>
7853
7854         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
7855
7856 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7857
7858         * file-io.c: disabled file async. IO using aio_*. It uses the
7859         threadpool now. Workaround for bug #73718.
7860
7861 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7862
7863         * assembly.h, mono-config.c: added code to deal with bundled configs
7864         for bundled assemblies.
7865
7866 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
7867
7868         * *.c, private.h: cleanup, removing old private.h header file.
7869
7870 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
7871
7872         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
7873         and throw_on_unmappable_char attributes.
7874
7875 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
7876
7877         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
7878         _ProcessName_internal.
7879
7880 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
7881
7882         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
7883         #73631.
7884
7885         * icall.c threads.c threads-types.h: Remove slothash icalls as they
7886         are no longer used.
7887
7888 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
7889
7890         * object.c (compute_class_bitmap): Add support for generics. Fixes
7891         #73527.
7892
7893 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
7894
7895         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
7896
7897 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7898
7899         * filewatcher.c: commented out the code for windows watcher, as we don't
7900         use it (we use the managed implementation instead).
7901
7902 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
7903
7904         * object-internals.h (MonoThread): Remove 'unused1' field.
7905
7906         * appdomain.c: Bump corlib version.
7907
7908         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
7909
7910         * reflection.c (mono_reflection_create_runtime_class): Remove the
7911         AssemblyBuilder.Save optimization since it causes too many problems.
7912
7913 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
7914
7915         * exception.c|h: Added mono_get_exception_reflection_type_load to
7916         create a ReflectionTypeLoadException object.
7917         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
7918         to return NULL is a InheritanceDemand fails during reflection. Updated
7919         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
7920         ReflectionTypeLoadException if an InheritanceDemand fails during 
7921         reflection. Added icall mapping for GetLinkDemandSecurity.
7922         * security-manager.c|h: Added ves_icall_System_Security_
7923         SecurityManager_GetLinkDemandSecurity internal call to return the
7924         class and methods permissions set for a LinkDemand. Removed unused
7925         fields in MonoSecurityManager.
7926
7927 2005-03-10  Martin Baulig  <martin@ximian.com>
7928
7929         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
7930         it's a generic instance.
7931
7932 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
7933
7934         * reflection.c (mono_get_object_from_blob): Applied patch from
7935         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
7936
7937         * class.c (mono_class_is_assignable_from): Another try at fixing 
7938         #73469 without breaking anything.
7939
7940 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
7941
7942         * class.c: (mono_class_is_assignable_from): Revert the last changes
7943         since they don't work with generics.
7944         
7945         * class.c (mono_class_is_assignable_from): Fix build bustage.
7946
7947         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
7948         the managed IsAssignableFrom method. Fixes #73469.
7949
7950         * reflection.c (mono_reflection_call_is_assignable_from): New helper
7951         function.
7952
7953 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
7954
7955         * object.c (mono_load_remote_field_new): Fix returning uninitialized
7956         memory when the remoting callback does not sets the out arguments.
7957         Fixes #73007.
7958
7959         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
7960         by mistake.
7961
7962         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
7963
7964         * object-internals.h (MonoStackFrame): Sync with managed object layout.
7965
7966         * appdomain.c: Bump corlib version.
7967
7968 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
7969
7970         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
7971         function.
7972
7973         * threads.c (mono_thread_attach): Detect threads which are not started
7974         by the GC pthread wrappers.
7975
7976 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
7977
7978         * icall.c: Added new icall for RNG.
7979         * rand.c|h: Added new icall to open the RNG. This allows to share a 
7980         single handle on Linux to access /dev/urandom and fix #73183.
7981
7982 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
7983
7984         * object.c: setting the new vtable in a transparent proxy object must
7985         not change the GC descriptor.
7986
7987 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7988
7989         * object.c: fixed compilation without GCJ support.
7990         * reflection.c: for runtime-created types ensure klass->has_references
7991         is correct (bug #73215).
7992
7993 2005-03-02  Martin Baulig  <martin@ximian.com>
7994
7995         * class.c (mono_class_is_assignable_from): Make this work if
7996         `oklass' is a generic instance; fixes #72831.
7997
7998 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
7999
8000         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
8001         with hasthis set.
8002         
8003         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
8004
8005         * marshal.c: Reorganize native->managed marshalling code to also use
8006         the emit_marshal_... functions.
8007
8008 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8009
8010         * object.c: typed allocs have issues with bitmap sizes > 30,
8011         so check for max_set >= 30.
8012
8013 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8014
8015         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
8016         managed code. Fixes #73012.
8017
8018         * metadata.h (MonoMarshalSpec): Add elem_mult field.
8019
8020         * metadata.c reflection.c: Load/Emit elem_mult as well.
8021         
8022         * metadata.h (MonoMarshalSpec): Add comment.
8023
8024         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
8025
8026         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
8027         num_elem to -1 if not given.
8028
8029         * object-internals.h (MonoReflectionMarshal): Add has_size field.
8030
8031         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
8032         given values.
8033
8034 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
8035
8036         * null-gc.c (mono_gc_free_fixed): Was not compilable.
8037
8038 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
8039
8040         * reflection.c (encode_marshal_blob): Encode param_num field as well.
8041
8042         * object-internals.h (MonoReflectionMarshal): Add param_num field.
8043
8044 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8045
8046         * object.c: generalized the reference bitmap creation
8047         and added hooks for the new GC.
8048         * class-internals.c: removed the gc_bitmap field from MonoClass.
8049
8050 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8051
8052         * domain.c: help the compiler to produce better code
8053         in mono_jit_info_table_find ().
8054
8055 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8056
8057         * object.c: make all allocations look typed.
8058
8059 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8060
8061         * socket-io.c: load Mono.Posix if it's not loaded already
8062         (fixes bug#73033).
8063
8064 2005-02-24  Martin Baulig  <martin@ximian.com>
8065
8066         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
8067         * reflection.c (dup_type): Likewise.
8068
8069 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
8070
8071         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
8072         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
8073
8074 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8075
8076         * domain.c, threads.c, object-internals.h: make the critical thread
8077         local vars use the fast access mode (even when we're compiled in
8078         a lib). Provide accessors to be used by the jit during codegen.
8079
8080 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8081
8082         * appdomain.c: Changed hook functios behavior to include
8083         support for the reflection only assemblies. Some icalls were changed
8084         to support the mentioned assemblies too. Signatures of static methods
8085         try_assembly_resolve and real_load now have an additional parameter:
8086         refonly.
8087
8088         * assembly.c: General changes to mono_assembly_ methods to support
8089         reflection only api. Functions mono_assembly_open, mono_assembly_load,
8090         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
8091         suffix, to support an additional gbool parameter to specify whether
8092         the assembli is reflection only or not. Created some new hook functions 
8093         to add support for reflection only assemblies. Signatures of static 
8094         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
8095         have now an additional parameter: refonly.
8096
8097         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
8098         indicating whether the assembly is reflection only or not.
8099
8100         * exception.c: Add mono_get_exception_invalid_operation.
8101
8102         * icall.c: Throw an InvalidOperationException when trying to invoke
8103         a property/method/event, or trying to set/get the value of a field.
8104         Also add an icall to retrieve the ref_only flag to the
8105         MonoReflectionAssembly.
8106
8107 2005-02-23  Chris Toshok  <toshok@ximian.com>
8108
8109         Part of fix for #72827.
8110         * mono-debug.c (mono_debug_add_method): add lexical block data to
8111         the info we write.  Kind of a hack at the moment - we copy the
8112         lexical block info from the MonoDebugMethodInfo to the
8113         MonoDebugMethodJitInfo here, before writing it.
8114         (mono_debug_read_method): read the lexical block info.
8115
8116         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
8117
8118         * debug-mono-symfile.h: add lexical block support.
8119
8120         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
8121         support.
8122
8123 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8124
8125         * loader.c (mono_lookup_pinvoke_call): Fix warning.
8126
8127         * object.c (mono_runtime_free_method): Call mono_free_method () and
8128         put the TODOs there.
8129
8130         * loader.c (mono_free_method): Free up most memory allocated for 
8131         dynamic methods.
8132
8133 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8134
8135         * reflection.c: properly flag a Type argument to a
8136         named custom attr value (bug #72248).
8137
8138 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8139
8140         * reflection.c: reduce code duplication in named custom
8141         attribute encoding.
8142
8143 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
8144
8145         * reflection.c: properly encode custom attrs of type object
8146         (bug #72649).
8147
8148 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8149
8150         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
8151
8152 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
8153
8154         * socket-io.c: load System.dll if it's not loaded already
8155         (bug #72850 and #70477).
8156
8157 2005-02-21  Martin Baulig  <martin@ximian.com>
8158
8159         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8160         generic instances.
8161
8162 2005-02-21  Martin Baulig  <martin@ximian.com>
8163
8164         * reflection.c (mono_image_build_metadata): We also need to
8165         "fixup" the MethodImpl table after we computed the final method
8166         indices.  Call fixup_methodimpl() to do that.
8167         (fixup_methodimpl): New private method.
8168
8169 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8170
8171         * assembly.c: special case mscorlib.dll (bug#72536),
8172         patch from Carlos Alberto Cortez.
8173
8174 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
8175
8176         * threads-types.h threads.c: Fix build bustage.
8177
8178         * threads.c: Use a union for long<->double conversions.
8179
8180         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8181         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8182
8183         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8184         containing the checkpoint call with NOT_TAKEN.
8185         
8186         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8187         checkpoint before pushing the arguments, so they won't have to be
8188         spilled to stack.
8189
8190 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8191
8192         * domain.c, assembly.c, domain-internals.h: make some data
8193         const and relocation-free.
8194
8195 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8196
8197         * object.c, appdomain.c, class-internals.h: introduce the
8198         MonoClassRuntimeInfo structure to hold the info needed to
8199         use a class at runtime. Made mono_class_vtable() lock-free
8200         for all the appdomains.
8201
8202 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8203
8204         * metadata-internals.h, image.c: introduce a per-image mempool to
8205         be used for memory that has the same lifetime as the image.
8206
8207 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8208
8209         * domain.c: In mono_init_internal(), instead of selecting the first
8210         runtime version supported by an executable, get a list of all
8211         supported versions and select the one for which an mscorlib exists
8212         (since even if the runtime supports a given version, it doesn't mean
8213         that the framework for that version is installed).
8214         Modified get_runtimes_from_exe to support this behavior.
8215         In supported_runtimes, added information about additional system
8216         assembly versions.
8217         
8218         * assembly.c: Added support for more than one system assembly version
8219         per runtime version. Updated the assembly list.
8220         In mono_assembly_remap_version, removed the initial version check,
8221         since we don't know to which version we need to compare until we
8222         get the version set on which the assembly is based.
8223         Moved the code for loading corlib into the new method
8224         mono_assembly_load_corlib(), so it can be used by the initialization
8225         code.
8226         
8227         * domain-internals.h: Updated data structures and added declaration
8228         for mono_assembly_load_corlib.
8229
8230 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8231
8232         * reflection.c (resolve_object): Fix the creation of the signature in 
8233         the SignatureHelper case.
8234
8235         * assembly.c (mono_assembly_remap_version): Fix binary search.
8236         
8237 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8238  
8239         * class.c: Added inheritance check when a method is overloaded (from a
8240         virtual method or when implementing an interface) and when a class is
8241         inherited. Added functions to set a failure for a class and to 
8242         retreive the exception from a failure.
8243         * class-internals.h: Added fields to MonoClass to keep the exception
8244         information status for inheritance (or other exceptions) to be thrown
8245         later (i.e. not at load time).
8246         * object.c: Throw the inheritance SecurityException when a type is to 
8247         be created with either class or method inheritance violations.
8248         * reflection.c|h: Fix when getting declsec from a class. Removed 
8249         unrequired code for class. Improved sanity in parameter naming.
8250         * security-manager.c|h: Added functions to check for class and method
8251         inheritance.
8252
8253 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8254
8255         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8256         and has_finalize in dynamic types as well.
8257
8258 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8259
8260         * culture-info-table.h : fixed currency format for en-GB (and so on).
8261
8262 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8263
8264         * gc.c: ensure the GC handles never have 0 as a value.
8265
8266 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8267
8268         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8269         a pointer to a struct to unmanaged code. Fixes #72625.
8270
8271 2005-02-16  Martin Baulig  <martin@ximian.com>
8272
8273         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8274
8275 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8276
8277         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8278
8279 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8280
8281         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8282
8283         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8284         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8285         etc. Fixes #71471.
8286
8287         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8288
8289         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8290
8291 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8292
8293         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8294         changes to make the current context a field in MonoThread.
8295
8296 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8297
8298         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8299         the last change.
8300         
8301         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8302         extracted from mono_marshal_get_native_wrapper.
8303
8304         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8305         to create wrappers around native functions.
8306
8307         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8308         delegates for arbitrary function pointers. Fixes #71472.
8309
8310 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8311
8312         * threads.c: cleaned up the code a little.
8313
8314 2005-02-15  Martin Baulig  <martin@ximian.com>
8315
8316         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
8317         the data table.
8318
8319         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
8320         allocate larger chunks if needed.
8321
8322 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8323
8324         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8325         in by mistake.
8326
8327 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8328
8329         * domain.c: keep the domains in an array and ensure the domain ids
8330         are kept small, so they can be used as indexes to domain-specific data
8331         with a small memory overhead.
8332
8333 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8334
8335         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8336
8337 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8338
8339         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8340
8341 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8342
8343         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8344
8345         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8346         values.
8347
8348         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8349         
8350 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8351
8352         * domain-internals.h: add the hashtable here.
8353
8354         * class-internals.h: Remove `info' from MonoMethod
8355
8356         * domain.c: Add a new hashtable, jit_trampoline_hash
8357
8358 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8359
8360         * object.c: don't set the value of static fields
8361         (fixes bug#72494).
8362
8363 2005-02-11  Martin Baulig  <martin@ximian.com>
8364
8365         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8366         (mono_debug_add_method): Silently ignore the method if it's too big.
8367         (mono_debug_add_type): Likewise.
8368
8369 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8370
8371         * threads.c, appdomain.c: remove #ifdefs from the code.
8372
8373 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8374
8375         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8376         common security informations. This allows us to stay in unmanaged code
8377         when doing LinkDemand and it's special cases (except for the first 
8378         time for initialization). The flags a very much used with --security.
8379         * reflection.c|h: Added code to get declarative security attributes 
8380         for LinkDemand and InheritanceDemand. This required to refactor the
8381         existing code for Demand.
8382         * security-manager.c|h: Added new method fields for the special cases
8383         of LinkDemand.
8384
8385 2005-02-10  Martin Baulig  <martin@ximian.com>
8386
8387         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8388         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8389
8390 2005-02-10  Martin Baulig  <martin@ximian.com>
8391
8392         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8393         debugging code; this is almost a complete rewrite.
8394
8395         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8396
8397 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8398
8399         * domain.c, object.h: expose mono_string_equal () and 
8400         mono_string_hash ().
8401         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8402         it's implemented in managed code.
8403
8404 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8405
8406         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8407         lo leak objects between appdomains.
8408
8409 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8410
8411         * assembly.c: old compilers compilation fix from 
8412         robertj@gmx.net (Robert Jordan).
8413
8414 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8415
8416         * class-internals.h: Little reminder for the future.
8417
8418         * debug-helpers.c: Fix up wrapper_type_names
8419
8420 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8421
8422         * image.c, metadata-internals.h: when loading an image from a file,
8423         mmap all of it and use the same codepaths as when using a
8424         in-memory image: the code is simpler and we use less memory
8425         (both writable and readonly).
8426
8427 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8428
8429         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
8430         API to alloc runtime data structures that need to be tracked by the
8431         GC and contain pointers.
8432         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
8433         make the code more readable and eventually use a different GC.
8434
8435 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
8436
8437         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
8438         for out arguments.
8439         
8440 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
8441
8442         * object.c: In release_type_locks(), don't release the cctor lock
8443         if it has already been released. This fixes a crash in the
8444         thread5 test.
8445
8446 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8447
8448         * gc.c, marshal.c, icall.c: register a delegate for finalization
8449         only when the native function pointer has been allocated for it.
8450
8451 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8452
8453         * object.c: cleaned up some code, allocate objects that are
8454         pointer free with the atomic malloc variant. Allocate memory
8455         for static data from the mempool if it's pointer-free.
8456         Allocate the bounds array at the end of the array data, when needed.
8457         * object-internals.h, object.h: move a private function in a private
8458         header.
8459         * class.c: handle missing case in tracking references in fields.
8460
8461 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8462
8463         * class.c, class-internals.h: keep track if a type has
8464         reference fields in either the instance or static fields.
8465
8466 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
8467
8468         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
8469         and renamed to MonoRuntimeInfo. Added fields to store the expected
8470         framework assembly version. Changed mono_get_framework_version and
8471         mono_get_runtime_version for a single mono_get_runtime_info method.
8472         
8473         * assembly.c: Added method to remap system assembly versions to the
8474         current executing runtime version. Removed old mapping code.
8475         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
8476         
8477         * icall.c, reflection.c: Track api changes.
8478
8479 2005-02-06  Miguel de Icaza  <miguel@novell.com>
8480
8481         * loader.c (method_from_memberref): Improve error reporting,
8482         produce the class name instead of the typeref/typedef index. 
8483
8484 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
8485
8486         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
8487
8488 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8489
8490         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
8491         stdcall and charset name mangling.  Reorganize the code and add
8492         some tracing stuff.
8493
8494 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8495
8496         * monodiet.c: More iters!
8497
8498         * marshal.c: Iter usage.
8499
8500         * icall.c: Iter usage.
8501
8502         * object.c: Use iters.
8503
8504         * debug-helpers.c: More iters
8505
8506 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8507
8508         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
8509         under win32.
8510
8511 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8512
8513         * mono-debug-debugger.c: use iters
8514
8515         * class.c, class-internals.h: mono_class_setup_events is static
8516         now
8517
8518         * All callers: use iters
8519
8520 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8521
8522         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
8523         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
8524
8525 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8526
8527         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
8528
8529         * marshal.h: Add prototypes for ldfld/stfld_remote.
8530
8531         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
8532         this is called during startup.
8533         
8534 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
8535
8536         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
8537         MonoThreadsSync struct private in monitor.c. Changed the way
8538         MonoThreadsSync is allocated so it's faster and there is no
8539         need to keep track of it with a finalizer and it uses less memory.
8540         This also finally allows us to allocate mono objects as ptrfree when
8541         there are no reference fields.
8542
8543 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
8544
8545         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
8546         disappearing link to the GC interface and use them to simplify
8547         the gchandles code.
8548
8549 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8550
8551         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
8552         stfld_remote which call mono_load/store_field_new. This allows methods
8553         calling ldfld/stfld wrappers to be AOTed.
8554
8555         * console-io.c: Include sys/filio.h under solaris.
8556         
8557         * console-io.c: Include curses.h if needed correctly.
8558
8559 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8560         
8561         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
8562         method->klass as well.
8563
8564         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
8565
8566         * class.c (mono_class_init): Switch on lazy initialization of 
8567         methods.
8568
8569         * class.c (mono_class_get_finalizer): Handle the case when the 
8570         finalizer is inherited.
8571
8572 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8573
8574         * console-io.c: <curses.h> is needed by term.h on solaris.
8575
8576 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
8577
8578         * icall.c, class-internals.h, monodiet.c, class.c: Remove
8579         mono_class_setup_properties where possible. Remove this ftn from
8580         the header file, and make it static.
8581
8582 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8583
8584         * loader.c: Add missing setup_... call.
8585
8586         * class.c: Add missing setup_... calls.
8587
8588         * class.c (mono_class_init): Switch on lazy initialization of 
8589         the generic vtable.
8590         
8591         * class.c (mono_class_init): Fix generics broken by the recent changes.
8592
8593         * monodiet.c (handle_type): Add missing setup_... calls.
8594
8595         * class.c: Back out garbage in previous patch.
8596         
8597         * class.c: Add missing setup_... calls.
8598
8599         * class.c (mono_class_get_method_from_name_flags): Avoid calling
8600         mono_class_setup_methods () if possible.
8601
8602         * class-internals.h (MonoClass): Add 'has_cctor' flag.
8603
8604         * class-internals.h (MonoCachedClassInfo): New structure.
8605
8606         * class.c: Initialize properties and events fields of MonoClass lazily.
8607
8608         * class.c: Add infrastructure for lazily initializing the methods and
8609         vtable fields of MonoClass. Not yet used.
8610
8611         * class.c (mono_class_get_finalizer): New helper function.
8612
8613         * class.c: Add infrastructure for loading some class related data from
8614         an AOT file.
8615
8616         * object.c: Add infrastructure for initializing the vtable from data
8617         in the AOT file.
8618
8619         * gc.c (run_finalize): Use mono_class_get_finalizer ().
8620
8621         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
8622         appropriate initialization function before accessing parts of the
8623         MonoClass structure.
8624
8625         * marshal.c: Fix warnings.
8626         
8627         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
8628
8629         * mono-debug-debugger.c (get_exception_message): Use 
8630         mono_class_get_method_from_name_flags ().
8631
8632 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
8633
8634         * reflection.c, appdomain.c: Replace a few manual searches that
8635         Zoltan missed. (Paolo approved this part of my initial patch).
8636
8637 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
8638
8639         * profiler.c: disable recording statistical events at report time.
8640
8641 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8642
8643         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
8644         to byteswap arrays of enum values, too (bug #72080).
8645
8646 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
8647
8648         * appdomain.c (set_domain_search_path): Allow this to be called if
8649         domain->setup is not yet set.
8650
8651         * loader.c (mono_method_get_index): New helper function.
8652
8653         * loader.c reflection.c: Use mono_method_get_index ().
8654
8655         * class.c (mono_class_get_method_from_name_flags): New helper method.
8656
8657         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
8658         this.
8659
8660         * class.c (mono_class_get_cctor): New helper method.
8661
8662         * string-icalls.c object.c class.c marshal.c reflection.c: Use
8663         mono_class_get_method () to look up methods.
8664
8665 2005-02-01  Miguel de Icaza  <miguel@novell.com>
8666
8667         * console-io.c: Fix the build, this should work on Windows.
8668
8669 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
8670
8671         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
8672         be set to null to keep things valid
8673
8674 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8675
8676         * icall.c: added Console 2.0 icalls.
8677         * Makefile.am: added console-io.[ch]
8678         * console-io.[ch]: internal calls for Console 2.0 API.
8679
8680 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8681
8682         * class.c: make sure we consider all the interfaces
8683         when calculating max_interface_id (bug found by
8684         Jeroen Frijters running ikvm).
8685
8686 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
8687
8688         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
8689         valuetype fields to null.
8690
8691         * object.c (set_value): Ditto. Fixes #71669.    
8692
8693 2005-01-31  Martin Baulig  <martin@ximian.com>
8694
8695         * metadata.c (mono_metadata_has_generic_params): New public
8696         function; checks whether something is a generic method.
8697
8698 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
8699
8700         * appdomain.c: fix infinite recursion when adding assemblies.
8701
8702 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
8703
8704         * object.c: Fix small typo to return all items for Environment.
8705         GetCommandLineArgs.
8706
8707 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8708
8709         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
8710         reflection.c: more domain and assembly-unload related fixes
8711         and memory leaks plugs.
8712
8713 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
8714
8715         * 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.
8716
8717 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
8718
8719         * loader.c (mono_method_signature): Make this method lazy
8720         (mono_get_method_from_token): Don't computate the signature here.
8721
8722         Doing this saves quite a bit of memory. I got 90 kb on starting up
8723         monodoc. It should also save some disk reads on startup.
8724
8725         * *: MonoMethod->signature might be NULL now. You *MUST* use
8726         mono_method_signature.
8727
8728 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
8729
8730         * object.c (mono_runtime_get_main_args): Return an array from the
8731         current domain here. Fixes #71938.
8732
8733 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
8734
8735         * monitor.c: formatting changes to comply with the
8736         mono coding style and remove #ifdefs from the code.
8737
8738 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8739
8740         * metadata.c, private.h: remove some unneeded data
8741         and use a more compact representation for table schemas.
8742
8743 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
8744
8745         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
8746         to get a better distribution in hash tables.
8747         * *.c: use mono_aligned_addr_hash() where appropriate.
8748         * assembly.c: make var static.
8749
8750 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
8751
8752         * domain-internals.h: Put MonoJitInfo on a diet.
8753
8754         * domain.c: Fix a warning.
8755
8756 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8757
8758         * gc.c: rework the gc handles code to reuse handles
8759         when freed.
8760
8761 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8762
8763         * domain.c: fixed long standing bug in mono_string_equal() which
8764         was brought to light with the ldstr changes.
8765
8766 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
8767
8768         * reflection.c: Remove warning by adding missing include for marshal.h
8769
8770 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8771
8772         * domain.c, object.c: change the ldstr_table to hold
8773         MonoString* as keys: makes the runtime isinterned lookup
8774         faster and simplifies memory management.
8775
8776 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
8777  
8778         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
8779         possible to add imperative security checks before calling the icall.
8780         * reflection.c: Return security attributes on the original MonoMethod
8781         (and not the wrapped one). This fix permissions on icalls.
8782
8783 2005-01-25  Dick Porter  <dick@ximian.com>
8784
8785         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
8786         the check for mktime() support actually test the mktime() return
8787         value.  "Fixes" bug 71682, though the output is still different to
8788         MS.
8789
8790 2005-01-25  Martin Baulig  <martin@ximian.com>
8791
8792         * class.c (mono_class_is_assignable_from): Make this work for
8793         generic instances.
8794
8795 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
8796
8797         * marshal.c (mono_string_utf8_to_builder)
8798         (mono_string_builder_to_utf16): We might not have ownership of the
8799         string. In thise case, we need to create a new buffer.
8800
8801         * object-internals.h (mono_stringbuilder_capacity): sb->str might
8802         be null, in which case, use the default capacity.
8803
8804 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8805
8806         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
8807         GC events to the profiler.
8808
8809 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8810
8811         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
8812         if you don't want the GC to run.
8813
8814 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
8815
8816         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
8817         start providing a GC API and keeping different implementations in
8818         their own file.
8819         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
8820
8821 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
8822
8823         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
8824         mmap rather than allocating a huge buffer.
8825         (mono_debug_close_mono_symbol_file): Free the buffer allocated
8826         above.
8827
8828 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
8829
8830         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
8831         and CheckExecutionRights.
8832         * reflection.c|h: Keep the index of the declarative security to be 
8833         used, instead of the pointer, when AOT compiler is used. Also add 
8834         class initialization when requesting demands.
8835         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
8836         CheckExecutionRights. Both properties are now FALSE by default, and
8837         unmodifiable, unless the --security option is used.
8838
8839 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8840
8841         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
8842         reflection.c: properly refcount images and assemblies, many leaks fixed.
8843
8844 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8845
8846         * threadpool.c: increase the timeout for threads in the thread pool to
8847         10s.  Fixes bug #67159.
8848
8849 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
8850
8851         * class-internals.h: Sun's compiler insists on explicit
8852         signed on bit fields to handle then correctly.
8853
8854 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
8855
8856         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
8857         Make the size of the array fit only the number of invalid path
8858         chars that we have.
8859
8860         * class.c (_mono_class_get): Improve the error reporting when a
8861         class referenced is not found, to assist debugging. 
8862
8863 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
8864
8865         * threads.c: fix off-by-one error.
8866         * domain.c: free data allocated in the domain.
8867
8868 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
8869
8870         * reflection.c (mono_method_body_get_object): Fill out exception info
8871         as well.
8872
8873         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
8874         structure.
8875         
8876 2005-01-19  Martin Baulig  <martin@ximian.com>
8877
8878         * loader.c (mono_get_method_constrained): Make this work again.
8879
8880 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
8881
8882         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
8883         guint16 to match the managed side.
8884
8885         * reflection.c (mono_reflection_body_get_object): Fill out local
8886         variables array.
8887
8888         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
8889         as well.
8890
8891         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
8892         'local_var_sig_token'.
8893
8894 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
8895
8896         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
8897         System.Drawing.
8898
8899         * reflection.c (mono_method_body_get_object): Handle abstract and
8900         runtime methods.
8901
8902 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
8903
8904         * marshal.c, loader.c, class-internals.h, reflection.c:
8905         store the emthod data for a wrapper in an array instead of a list.
8906
8907 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
8908
8909         * marshal.c: change the code to allocate memory more
8910         conservatively for method wrappers.
8911
8912 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
8913
8914         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
8915         fields from MonoClass to the marshal info structure where they belong.
8916
8917 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8918
8919         * class.c, object.c, class-internals.h, marshal.c: rearrange
8920         some fields and tweak some types to lower memory usage.
8921
8922 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
8923
8924         * threads.c (signal_thread_state_change): Handle the case when the
8925         target thread is the current thread.
8926
8927         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
8928
8929         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
8930         emit_ptr_to_object_conv. 
8931
8932         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
8933         marshalling. Fixes #71352.
8934
8935 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8936
8937         * metadata.h, blob.h: move table enum to blob.h so it can be included
8938         in any header.
8939         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
8940         cut the size of MonoImage/MonoDynamicImage.
8941
8942 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
8943
8944         * profiler.c (mono_profiler_install_simple): Fix default arguments.
8945
8946 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
8947
8948         * reflection.c, reflection.h, icall.c: add a function to check
8949         if an attribute type is defined for a metadata object.
8950
8951 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
8952
8953         * object-internals.h: Added some needed fields from StringBuilder class.
8954         * marshal.c: Set the maxCapacity when creating a StringBuilder.
8955
8956 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
8957
8958         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
8959         threads before shutting down the runtime.
8960
8961         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
8962
8963 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8964
8965         * object-internal.h, threads.c: implement stacksize and 
8966         parameterized thread start functionality (requires
8967         matching corlib). Marked broken code for later removal.
8968
8969 2005-01-12  Martin Baulig  <martin@ximian.com>
8970
8971         * class-internals.h (MonoGenericClass): Moved the `initialized'
8972         flag to MonoDynamicGenericClass, removed `init_pending'.
8973         (MonoGenericInst): Added `is_reference' flag.
8974
8975 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
8976
8977         * reflection.c (mono_image_create_pefile): Only set the pe_offset
8978         inside the MSDOS header. Fixes #71201.
8979
8980         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
8981         gc thread.
8982         (mono_domain_finalize): Ditto.
8983
8984 2005-01-12  Martin Baulig  <martin@ximian.com>
8985
8986         * class.c (mono_get_shared_generic_class): Use the cache for
8987         non-dynamic generic classes.
8988
8989         * class-internals.h (mono_class_create_generic_2): Removed
8990         function prototype, this function is now static inside class.c.
8991
8992         * class.c (mono_class_create_generic_2): Made this static, only
8993         call it from mono_class_init() and mono_class_setup_parent().
8994         (collect_implemented_interfaces_aux): Call mono_class_init() on
8995         the interfaces we collect.
8996         (mono_class_setup_vtable): Call mono_class_init (class->parent).
8997
8998 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
8999
9000         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
9001         it a real thread handle.
9002
9003         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
9004         MonoJitExceptionInfo, since each catch clause needs its own variable.
9005         
9006 2005-01-11  Dick Porter  <dick@ximian.com>
9007
9008         * image.c (mono_pe_file_open): New variant on mono_image_open()
9009         that does not set up the CLI metadata; used for FileVersionInfo so
9010         it can get the data for windows binaries too.
9011         
9012         * process.c (process_read_string_block): Don't read off the end of
9013         the StringTable block.
9014
9015         These both fix bug 70766.
9016
9017 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
9018
9019         * gc.c: set some fields to NULL at GC cleanup time.
9020         * threads.c: if we quit the main thread, call exit ().
9021
9022 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9023
9024         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
9025
9026 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
9027
9028         * threads.h, threads.c, object.c: added accessor and settor for
9029         main_thread. Handle it specially when exiting from it: wait
9030         for other foreground threads to exit.
9031
9032 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
9033
9034         * process.c, verify.c: remove some bloat.
9035
9036 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
9037
9038         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
9039         the calling convention to cdecl under win32.
9040
9041 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
9042
9043         * object.c (mono_object_get_size): New function to get the size of
9044         an object instance.
9045
9046         * profiler.c (simple_allocation): Use above.
9047
9048 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9049
9050         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
9051         ves_icall_System_AppDomain_getRootDomain (as it's not required to
9052         get an appdomain by it's id and we can't assume the root's id is 0).
9053         * domain-internals.h: Change the function prototype to match.
9054         * icall.c: Change the icall table for AppDomain.
9055
9056 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
9057
9058         * locales.c (string_invariant_compare_char): Only compute
9059         GUnicodeTypes in the case where we need them.  Test for ordinality
9060         first and return if so.
9061
9062         From the commit:
9063
9064                 /*
9065                  * FIXME: here we must use the information from c1type and c2type
9066                  * to find out the proper collation, even on the InvariantCulture, the
9067                  * sorting is not done by computing the unicode values, but their
9068                  * actual sort order.
9069                  */
9070
9071 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9072
9073         * loader.c: for P/Invoke methods, allow the "Internal" shared
9074         library name to refer to the calling process symbol namespace.
9075
9076 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
9077
9078         * Makefile.am: Add the security manager to the build.
9079         * security-manager.c|h: New. Initialization of the security manager.
9080
9081 2005-01-07  Dick Porter  <dick@ximian.com>
9082
9083         * threads.c: 
9084         * monitor.c: Update thread state during Monitor and WaitHandle
9085         waits.  Fixes bug 71031.
9086
9087 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
9088
9089         * reflection.c (property_encode_signature): Correctly handle when the
9090         property has no methods.
9091
9092 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
9093
9094         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
9095         
9096         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
9097         fields from mb, not rmb. Fixes #71017.
9098
9099         * marshal.c (emit_ptr_to_str_conv): Add support for 
9100         ByValTStr -> string conversion. Fixes #71015.
9101
9102         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
9103
9104         * mempool.c (mono_mempool_contains_addr): New helper function.
9105
9106 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9107
9108         * metadata.c (mono_metadata_compute_size): Fix size calculation of
9109         HasSematics encoded fields.
9110         
9111         * metadata.c (mono_type_to_unmanaged): Improve error message for 
9112         invalid string marshalling.
9113
9114         * metadata.c: Fix warnings.
9115         
9116 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9117
9118         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
9119         profiler support.
9120
9121 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9122
9123         * domain.c object.c domain-internals.h: Revert part of r38077 since the
9124         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
9125         tests.
9126
9127 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
9128
9129         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
9130         so methods containing these can be AOTed.
9131
9132 2005-01-03  Martin Baulig  <martin@ximian.com>
9133
9134         * loader.c (find_method): Removed the hack for generic instances.
9135         (method_from_memberref): If our parent is a generic instance, pass
9136         its generic type definition to find_method() and then inflate the
9137         method.
9138         (mono_get_method_constrained): Pass the generic type definition to
9139         find_method() and inflate the method later.
9140
9141         * class-internals.h (MonoStats): Added `generic_class_count'.
9142
9143         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
9144         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
9145
9146         * reflection.c (mono_custom_attrs_from_params): Don't ignore
9147         generic type definitions.
9148
9149 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
9150
9151         * loader.c icall.c: Fix warnings.
9152
9153 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
9154
9155         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
9156         blittable types. Fixes #70864.
9157
9158 2004-12-29  Martin Baulig  <martin@ximian.com>
9159
9160         * icall.c
9161         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
9162
9163         * reflection.c (mono_method_get_object): Create a
9164         "System.Reflection.MonoGenericMethod" for inflated methods; don't
9165         call mono_get_inflated_method().
9166
9167         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
9168
9169 2004-12-27  Martin Baulig  <martin@ximian.com>
9170
9171         * class-internals.h (MonoMethod): Added `is_inflated' flag.
9172         (MonoMethodInflated): Added `inflated' field.
9173
9174         * class.c (mono_class_inflate_generic_method): Don't really
9175         inflate the method here; just set the `is_inflated' flag in the
9176         MonoMethod.
9177         (mono_class_get_inflated_method): Actually inflate the method here
9178         if it's not already inflated; we use the MonoMethodInflated's new
9179         `inflated' field as a cache.
9180
9181 2004-12-26  Martin Baulig  <martin@ximian.com>
9182
9183         * class.c
9184         (inflate_generic_class): Moved some code out of inflate_generic_type().
9185         (mono_class_inflate_generic_method): If we're already inflated,
9186         inflate the context and use the declaring method; ie. make sure
9187         the declaring method of an inflated method is always the generic
9188         method definition.
9189         (mono_class_create_from_typedef): Create
9190         `class->generic_container->context->gclass'.
9191
9192 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9193
9194         * metadata-internals.h, marshal.c, reflection.c: More
9195         MonoGHashTable->GHashTable.
9196
9197         * domain-internals.h, class.c: Change MonoGHashTable's into
9198         GHashTables for some cases where no gc stuff is used
9199
9200         All users: update apis
9201
9202 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9203
9204         * metadata.c (builtin_types): Make this `const'. Makes this get
9205         put into the shareable section.
9206         (mono_metadata_init): Casts to make gcc happy.
9207
9208 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9209
9210         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9211
9212 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9213
9214         * icall.c: Added an internal call to retrieve the position and length
9215         of assembly-level declarative security attributes (RequestMinimum, 
9216         RequestOptional and RequestRefuse). This is used by the Assembly class
9217         to re-create the corresponding permission sets.
9218
9219 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9220
9221         * marshal.c: fix the stelemref wrapper to be type correct
9222         (and faster).
9223
9224 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9225
9226         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9227         to do key & 0x7fffffff. Hashtable already does this. It just
9228         results in longer code.
9229
9230 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9231
9232         * appdomain.c: Bump corlib version.
9233         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9234         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9235         * reflection.c|h: Add functions to get declarative security infos
9236         (blob position and length) for assemblies, classes and methods.
9237
9238 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9239
9240         * reflection.c: sort the constant table (bug #70693).
9241
9242 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9243
9244         * object-internals.h, threads.c, domain.c: add accessors for
9245         the MonoThread and MonoDomain tls keys.
9246
9247 2004-12-18  Martin Baulig  <martin@ximian.com>
9248
9249         * class.c (inflate_generic_type): If we're inflating a generic
9250         instance, set `ngclass->context->container = context->container';
9251         ie. the container we inflated into.
9252
9253         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9254         inflate_generic_type() changes.
9255
9256 2004-12-17  Martin Baulig  <martin@ximian.com>
9257
9258         * class-internals.h
9259         (MonoGenericClass): Replaced `MonoType *generic_type' with
9260         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9261         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9262         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9263
9264 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9265
9266         * exception.c (mono_exception_from_token): New helper function.
9267
9268 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9269
9270         * assembly.c (mono_assembly_load_with_partial_name): Call 
9271         mono_assembly_loaded before invoking the preload hooks. Fixes
9272         #70564.
9273
9274         * object-internals.h (MonoThread): Change culture_info and 
9275         ui_culture_info into an array.
9276
9277         * threads.c: Cache culture info objects from more than one appdomain.
9278
9279         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9280         current UI culture.
9281
9282 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9283
9284         * threads.h threads.c appdomain.c: Clear the culture_info field of
9285         all threads during unloading if they point to an object in the dying
9286         appdomain.
9287
9288 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9289
9290         * culture-info.h (TextInfoEntry): New struct
9291         * object-internals.h: sync with managed
9292         * locales.c: fill the `text_info_data' field
9293         * culture-info-tables.h: update
9294
9295 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9296
9297         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9298         collector.
9299
9300 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9301
9302         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9303         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9304
9305 2004-12-12  Martin Baulig  <martin@ximian.com>
9306
9307         * mono-debug-debugger.c (write_type): If we're an enum and the
9308         builtin types have already been initialized, call mono_class_init().
9309
9310 2004-12-11  Martin Baulig  <martin@ximian.com>
9311
9312         * metadata.c (mono_metadata_load_generic_params): Added
9313         `MonoGenericContainer *parent_container' argument; automatically
9314         compute `container->is_method'; pass the correct owner to
9315         get_constraints().      
9316
9317         * reflection.c (compare_genericparam): Sort the GenericParam table
9318         according to increasing owners. 
9319
9320 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
9321
9322         * profiler.c: allow disabling the default profiler.
9323
9324 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9325
9326         * decimal.c, icall.c: allow disabling System.Decimal support.
9327
9328 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9329
9330         * reflection.c: Add support for null attribute arguments.
9331
9332 2004-12-09  Martin Baulig  <martin@ximian.com>
9333
9334         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9335         names to get rid of compiler warnings.
9336
9337 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9338
9339         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9340         mono_marshal_load_type_info (). Fixes #69625.
9341         (mono_marshal_get_ptr_to_struct): Likewise.
9342
9343 2004-12-08  Martin Baulig  <martin@ximian.com>
9344
9345         * mono-debug.h: Bumped version number to 47.
9346
9347         * mono-debug-debugger.c
9348         (mono_debugger_event_handler, mono_debugger_event): Take two
9349         guint64 arguments insteed of a gpointer and a guint32.  
9350
9351 2004-12-08  Martin Baulig  <martin@ximian.com>
9352
9353         * debug-mono-symfile.h
9354         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9355         `address' to `native_offset'.
9356
9357 2004-12-08  Martin Baulig  <martin@ximian.com>
9358
9359         * class.c (mono_class_create_from_typespec): Only inflate if we
9360         either have `context->gclass' or `context->gmethod'.
9361
9362 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9363
9364         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9365
9366         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9367
9368         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9369
9370         * reflection.c (mono_assembly_get_object): Remove the workaround put
9371         in for the release.
9372         
9373         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9374
9375         * appdomain.c: Bump corlib version.
9376
9377         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9378         be visible in other appdomains.
9379
9380 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9381
9382         * threads.c: Interlocked inc and dec for longs were messed up,
9383         use a KISS based impl for this. Fixes 70234
9384
9385 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9386
9387         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9388
9389 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9390
9391         * icall.c: fix to follow policy not to allow struct
9392         arguments in icalls.
9393
9394 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9395
9396         * process.c: make the patch that handles spaces in file paths work
9397         on mono/windows too.
9398
9399 2004-12-06  Martin Baulig  <martin@ximian.com>
9400
9401         * class.c (mono_class_create_generic): Call
9402         mono_class_setup_supertypes() if we're dynamic.
9403         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9404
9405 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9406
9407         * object-internals.h: Add new fields to MonoThread.
9408
9409         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9410
9411         * icall.c threads-types.h threads.c: Add new icalls.
9412
9413         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9414
9415         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9416         managed side.
9417
9418         * appdomain.c: Bump corlib version.
9419
9420         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
9421         internal assemblies. Fixes #69181.
9422
9423 2004-12-05  Martin Baulig  <martin@ximian.com>
9424
9425         * class.c (mono_class_inflate_generic_signature): Make this a
9426         no-op if `context' is NULL or we don't have any type parameters;
9427         also copy `sentinelpos'.        
9428
9429 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
9430
9431         * image.c: Add unbox_wrapper_cache.
9432
9433         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
9434
9435         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
9436         function generator.
9437         
9438         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
9439         Fixes #70173.
9440
9441         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
9442         
9443 2004-12-04  Martin Baulig  <martin@ximian.com>
9444
9445         * loader.c (mono_method_get_signature_full): New public function;
9446         like mono_method_get_signature(), but with an additional
9447         `MonoGenericContext *' argument.
9448
9449         * class.c (mono_class_inflate_generic_signature): Formerly known
9450         as inflate_generic_signature(); make this public.
9451
9452 2004-12-04  Martin Baulig  <martin@ximian.com>
9453
9454         * metadata.c
9455         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
9456         instead of a `MonoGenericContainer *'.  
9457         (mono_metadata_parse_array_full): Likewise.
9458         (mono_metadata_parse_signature_full): Likewise.
9459         (mono_metadata_parse_method_signature_full): Likewise.
9460         (mono_metadata_parse_generic_inst): Likewise.
9461         (mono_metadata_parse_generic_param): Likewise.
9462         (mono_metadata_parse_mh_full): Likewise.
9463         (mono_type_create_from_typespec_full): Likewise.
9464
9465 2004-12-03  Martin Baulig  <martin@ximian.com>
9466
9467         * class-internals.h (MonoGenericContainer): Replaced the
9468         `MonoGenericContext * pointer with a `MonoGenericContext'
9469         structure and made it the first element.
9470
9471 2004-12-03  Martin Baulig  <martin@ximian.com>
9472
9473         * class.c
9474         (inflate_generic_type): Set the `context->container' when creating
9475         a new MonoGenericContext.
9476         (mono_class_inflate_generic_method): Likewise.
9477         (mono_class_create_from_typespec): Just use `context->container'
9478         to get the container.
9479
9480         * loader.c (method_from_methodspec): Set `context->parent' from
9481         `context->container' - and if that's a method container, use its
9482         parent.  Also set the `context->container' when creating a new
9483         MonoGenericContext.
9484         (mono_get_method_from_token): Use just `context->container' to get
9485         the container.
9486
9487         * metadata.c (do_mono_metadata_parse_generic_class): Also set
9488         `gclass->context->container'.
9489
9490         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
9491         the `context->container' when creating a new MonoGenericContext.
9492
9493 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
9494
9495         * reflection.c (compare_genericparam): Sort params with identical
9496         owner by their number. Fixes gen-111 on sparc.
9497
9498 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9499
9500         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
9501         around the domain changes.
9502
9503         * appdomain.c (mono_domain_unload): Handle the case when the thread
9504         calling Unload is itself being aborted during unloading. Fixes #70022.
9505
9506         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
9507
9508         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
9509         checkpoint_func as an icall so it gets a wrapper.
9510         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
9511         in the cross-appdomain wrappers too.
9512
9513         * threads.c (mono_thread_has_appdomain_ref): Make this public.
9514
9515         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
9516
9517         * reflection.c: Fix some memory leaks.
9518         
9519 2004-12-02  Martin Baulig  <martin@ximian.com>
9520
9521         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
9522
9523         * metadata.c (generic_class_cache): New static hashtable.
9524         (mono_metadata_lookup_generic_class): New public method.
9525
9526 2004-12-02  Martin Baulig  <martin@ximian.com>
9527
9528         * class.c (mono_class_create_from_typedef): Call
9529         mono_class_setup_parent() and mono_class_create_mono_type() before
9530         parsing the interfaces.
9531
9532 2004-12-02  Martin Baulig  <martin@ximian.com>
9533
9534         * metadata.c (generic_inst_cache): New static hashtable.
9535         (mono_metadata_lookup_generic_inst): New public function.
9536         (mono_metadata_inflate_generic_inst): New public function.
9537         (mono_metadata_parse_generic_inst): New public function.
9538         (do_mono_metadata_parse_generic_class): Use the new
9539         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
9540         since this'll also use the cache.
9541
9542         * reflection.c (mono_reflection_bind_generic_method_parameters):
9543         Use mono_metadata_lookup_generic_inst() to use the new cache.
9544
9545         * class.c (inflate_mono_type): Use
9546         mono_metadata_inflate_generic_inst() to inflate a generic
9547         instance; this'll also use the new cache.
9548
9549         * loader.c (method_from_methodspec): Use
9550         mono_metadata_parse_generic_inst() and
9551         mono_metadata_inflate_generic_inst() rather than parsing it
9552         manually, so we can use the new cache.
9553
9554 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9555
9556         * threads.c (wait_for_tids): Do not incorrectly free threads when 
9557         the wait times out.
9558
9559 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
9560
9561         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
9562         iter->args based on whether parameters are passed in registers (i.e.
9563         MONO_ARCH_REGPARMS is defined)
9564
9565 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
9566
9567         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
9568         the exception message. Fixes #70070.
9569         (method_from_methodspec): Fix warnings.
9570
9571 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9572
9573         * process.c: (complete_path) return the path quoted
9574
9575 2004-12-01  Martin Baulig  <martin@ximian.com>
9576
9577         * class-internals.h (MonoGenericInst): New structure.
9578         (MonoGenericClass): Replaced `type_argc', `type_argv' and
9579         `is_open' with `MonoGenericInst *inst'.
9580         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
9581         `is_open' with `MonoGenericInst *inst'.
9582
9583 2004-11-30  Martin Baulig  <martin@ximian.com>
9584
9585         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
9586
9587         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
9588         to `generic_class_cache'.
9589
9590         * metadata.c
9591         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
9592         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
9593         (mono_generic_inst_is_valuetype): Renamed to
9594         mono_generic_class_is_valuetype().
9595
9596         * class-internals.h
9597         (MonoGenericInst): Renamed to MonoGenericClass.
9598         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
9599         (MonoClass): Renamed `generic_inst' to `generic_class'.
9600         (MonoGenericContext): Renamed `ginst' to `gclass'.
9601
9602         * object-internals.h
9603         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
9604
9605         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
9606         mono_reflection_generic_class_initialize().
9607
9608         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
9609         now known as "System.Reflection.MonoGenericClass".
9610         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
9611
9612 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
9613
9614         * class-internals.h: Added a flag field to MonoClass to cache the
9615         declarative security attributes actions associated with the class.
9616         * domain-internals.h: Added booleans to MonoJitInfo to cache the
9617         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
9618         applicable to the JITted method.
9619         * reflection.c|h: Added functions to extract (as flags) which security
9620         actions are available (declaratively) for a method, class or assembly.
9621         * metadata.c|h: Added functions to search the declarative security
9622         table in the metadata.
9623         
9624 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
9625
9626         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
9627         EXPORTEDTYPES are already in the class name cache, so there is no
9628         need to add extra code here to look at them. Just removes a bit of
9629         cruft.
9630
9631         (ves_icall_System_Environment_get_TickCount): No need for #if
9632         WINDOWS. We already have the code in io-layer.
9633
9634 2004-11-28  Martin Baulig  <martin@ximian.com>
9635
9636         * loader.c
9637         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
9638         Fixes gen-112.cs.
9639
9640 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
9641
9642         * assembly.c (do_mono_assembly_open): Instead of having a
9643         conditional WITH_BUNDLE, incorporate support for bundles here, by
9644         having a global `bundles' variable holding a pointer to the actual
9645         bundles. 
9646
9647         (mono_register_bundled_assemblies): New API call used by the
9648         bundle code. 
9649
9650         See mkbundle.1 for details.
9651         
9652 2004-11-27  Martin Baulig  <martin@ximian.com>
9653
9654         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
9655         the vtable for generic methods.
9656
9657 2004-11-26  Martin Baulig  <martin@ximian.com>
9658
9659         * metadata.c
9660         (mono_metadata_generic_method_hash): New public function.
9661         (mono_metadata_generic_method_equal): Likewise.
9662
9663         * class-internals.h
9664         (MonoGenericContainer): Added `GHashTable *method_hash'.
9665
9666         * reflection.c (ReflectionMethodBuilder): Added
9667         `MonoGenericContainer *generic_container'.
9668         (reflection_methodbuilder_to_mono_method): Don't create a new
9669         MonoGenericContainer each time we're called.
9670         (mono_reflection_bind_generic_method_parameters): Use
9671         `container->method_hash' to cache the results so we don't create a
9672         different method if we're called several times with the same
9673         arguments.
9674
9675         * loader.c (method_from_methodspec): Use the new
9676         `container->method_hash' here, too.
9677
9678 2004-11-26  Martin Baulig  <martin@ximian.com>
9679
9680         * class.c (inflate_generic_signature): Correctly compute
9681         `res->has_type_parameters'.
9682         (mono_class_vtable): Use the `has_type_parameters' flag to
9683         determine whether we're a generic method.
9684
9685         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
9686
9687 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
9688
9689         * object.c (mono_runtime_run_main): Fix a small memory leak.
9690
9691 2004-11-25  Martin Baulig  <martin@ximian.com>
9692
9693         * class.c (set_generic_param_owner): Fixed the loop.
9694
9695 2004-11-25  Martin Baulig  <martin@ximian.com>
9696
9697         * object.c (mono_class_vtable): Don't create any JIT wrappers for
9698         generic methods.
9699
9700 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
9701
9702         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
9703         names. Fixes #69787.
9704
9705 2004-11-24  Martin Baulig  <martin@ximian.com>
9706
9707         * class.c (mono_class_create_generic_2): If we don't have a
9708         `ginst->parent', inflate `gklass->parent' to get our parent.
9709
9710 2004-11-24  Martin Baulig  <martin@ximian.com>
9711
9712         * reflection.c (compare_genericparam): Correctly sort the
9713         GenericParam table; fixes #69779.
9714
9715 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
9716
9717         * reflection.c: When writing a PE file, don't create a huge
9718         buffer in memory. Just write the arrays we have to the file.
9719         This reduces memory usage.
9720
9721         * metadata-internals.h: MonoDynamicStream pefile is no longer used
9722         globally.
9723
9724 2004-11-17  Martin Baulig  <martin@ximian.com>
9725
9726         * class.c (mono_class_init): Don't setup `class->parent' for
9727         dynamic instances; moved this to mono_class_generic_2().
9728         (mono_class_create_generic): Also set `klass->inited' for dynamic
9729         generic instances.
9730         (mono_class_create_generic_2): Don't do anything for dynamic
9731         generic instances.  Set `klass->parent' here and also call
9732         mono_class_setup_parent() here. 
9733
9734         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
9735         `MonoType *parent' argument; set `ginst->parent' before calling
9736         mono_class_create_generic_2(), so we set the correct parent.
9737
9738 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
9739
9740         * reflection.c: allow getting attributes from ModuleBuilder
9741         (used by ikvm).
9742
9743 2004-11-17  Martin Baulig  <martin@ximian.com>
9744
9745         * class.c (mono_class_create_from_typedef): If a type parameter is
9746         inherited from an outer class, set its owner to that class.
9747
9748 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
9749
9750         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
9751           for (int*) written size. This fixes bug #69592.
9752
9753 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
9754
9755         * icall.c: Added IsAuthenticodePresnet internal call.
9756         * image.c|h: New function that check a MonoImage for an Authenticode
9757         signature in the certificate PE data directory.
9758         * security.c|h: New internal call to ask the runtime if an 
9759         Authenticode signature seems referenced in the PE header.
9760
9761 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
9762
9763         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
9764
9765         * reflection.c (mono_image_create_pefile): Free the assembly streams
9766         after writing out the assembly file.
9767
9768         * object.c (mono_runtime_run_main): Fix small memory leak.
9769
9770         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
9771         property access modifiers. Fixes #69389.
9772
9773 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
9774
9775         * domain.c, object.c, object-internals.h, domain-internals.h,
9776         object.h, marshal.c: keep dynamic code info per domain.
9777
9778 2004-11-15  Martin Baulig  <martin@ximian.com>
9779
9780         * class.c (mono_type_get_name_recurse): Put type arguments in
9781         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
9782         see bug #68387.
9783
9784 2004-11-15  Martin Baulig  <martin@ximian.com>
9785
9786         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
9787         (mono_class_setup_vtable): When computing `the_cname' for a
9788         generic instance, don't include the namespace since we'd otherwise
9789         add it twice.
9790
9791 2004-11-15  Martin Baulig  <martin@ximian.com>
9792
9793         * class.c (mono_class_create_generic): Changed return type to void.
9794         (mono_class_create_generic_2): New public function; setup
9795         `class->method', `class->field' and `class->interfaces' here
9796         instead of in mono_class_init().
9797
9798         * class.h (mono_class_create_generic): Moved to class-internals.h.
9799
9800 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
9801
9802         * reflection.c (mono_image_create_pefile): take a file HANDLE.
9803         rather than writing to memory, write to this file. Right now,
9804         we are just writting into a buffer, and copying that. However
9805         we can avoid the buffer later.
9806
9807         (mono_dynamic_stream_reset): new function
9808
9809         * icall.c, object-internals.h: update for the above.
9810
9811 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
9812
9813         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
9814         have been using gc'd memory. First it is slower, unlikely
9815         the comment in the source code said, secondly, it increases
9816         our footprint to do it in the gc.
9817
9818         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
9819         the method so that it does not have to copy to managed code.
9820
9821 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
9822
9823         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
9824
9825 2004-11-12  Martin Baulig  <martin@localhost>
9826
9827         * reflection.c (mono_image_create_token): Allow generic method
9828         definitions here, since they may appear in an `.override'; see
9829         gen-98/gen-99 for an example.
9830
9831 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
9832
9833         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
9834         #69365.
9835
9836         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
9837         descriptive.
9838
9839 2004-11-11  Martin Baulig  <martin@ximian.com>
9840
9841         * class.c (mono_class_setup_vtable): In an explicit interface
9842         implementation, the method name now includes the arity.
9843
9844 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
9845
9846         * object.c (mono_array_full_copy): Fix warning.
9847
9848 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
9849
9850         * appdomain.c: Removed look_for_method_by_name(). Use the new method
9851         mono_class_get_method_from_name() instead.
9852         
9853         * class-internals.h: Added two new types of wrappers. 
9854         Added MonoRemotingTarget enum. Added new trampoline function type, which
9855         takes an additional MonoRemotingTarget value as parameter, so it is
9856         possible to request a trampoline for a specific target.
9857         
9858         * class.c: Added new mono_class_get_method_from_name() method.
9859         
9860         * class.h: In MonoRemoteClass, we can have now to vtables, one for
9861         general remoting sinks and one specific for cross domain calls.
9862         
9863         * debug-helpers.c: Added new wrapper names.
9864         
9865         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
9866         of a remote class.
9867         
9868         * image.c: Porperly delete value objects form the remoting invoke hashtable.
9869         
9870         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
9871         with several other methods (mono_marshal_get_xappdomain_dispatch,
9872         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
9873         and others) can generate a fast remoting wrapper for cross domain calls.
9874         More information can be found in docs/remoting.
9875         Other changes: Removed mono_find_method_by_name, and used
9876         mono_class_get_method_from_name instead.
9877         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
9878         is stored in the remoting invoke hashtable.
9879         
9880         * marshal.h: published the new method for getting the xdomain wrapper,
9881         and also added a method for getting the adequate wrapper for a given
9882         method and target.
9883         
9884         * object-internals.h, object.c: Added a couple of methods for capying and
9885         cloning arrays.
9886         Modified mono_install_remoting_trampoline, which takes the new remoting
9887         trampoline that has a remoting target as parameter.
9888         mono_class_proxy_vtable now also takes a remoting target as parameter, and
9889         will return the most suitable vtable for the target.
9890         Added mono_remote_class_vtable, which returns the vtable of a remote class
9891         (which can be the normal remoting vtable or the xdomain vtable).
9892         
9893         * threads.c: the xdomain invoke and dispatch wrappers must also be
9894         protected against interruptions.
9895
9896 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9897
9898         * icall.c: use memmove in BlockCopyInternal when the source and
9899         destination arrays are the same.
9900
9901 2004-11-09  Martin Baulig  <martin@ximian.com>
9902
9903         * class-internals.h (MonoGenericContainer): Removed `method' and
9904         `signature', replaced them with `is_method' and `is_signature'
9905         flags.  Added `context'.
9906
9907         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
9908         instead of a `MonoGenericContainer *'.
9909
9910         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
9911         for dynamic type parameters.
9912         (mono_metadata_load_generic_params): Setup `container->context'.
9913
9914         * reflection.c (mono_reflection_setup_generic_class): Setup
9915         `tb->generic_container->context'.
9916         (do_mono_reflection_bind_generic_parameters): Use
9917         mono_class_inflate_generic_type() to correctly inflate types,
9918         rather than using our own hack just for MONO_TYPE_VAR.
9919
9920 2004-11-09  Martin Baulig  <martin@ximian.com>
9921
9922         * class.c (mono_class_inflate_generic_method): Small fix; don't
9923         crash here.
9924
9925         * icall.c
9926         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
9927         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
9928         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
9929         (ves_icall_Type_BindGenericParameters): Likewise.
9930         (ves_icall_Type_get_IsGenericInstance): Likewise.
9931         (ves_icall_Type_GetGenericParameterPosition): Likewise.
9932         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
9933         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
9934         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
9935
9936 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
9937
9938         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
9939         assembly versions and public key tokens. Fixes #69113.
9940
9941 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
9942
9943         * metadata.c: fix bug introduced with the type cache changes
9944         on 2004-11-06.
9945
9946 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
9947
9948         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
9949         the MonoClass pointer instead of the token in exception clauses.
9950         * reflection.c: updates for the above and make the code not depend
9951         on the structure of MonoExceptionClause.
9952
9953 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
9954
9955         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9956         Add support for dynamic assemblies. Fixes #69114.
9957
9958         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
9959
9960 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
9961
9962         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
9963         since most only those methods use it. the code member of
9964         MonoMethodPInvoke was dead, so that can be removed too. Also,
9965         remove inline_count (again, not used), and move slot so that it
9966         can share bits with some other flags. This saves 8 bytes in the
9967         structure and gives us about 50 kb back for mcs helloworld.cs
9968
9969         * *.[ch]: Do naming changes for the above.
9970
9971         * loader.c (mono_method_get_header): Lazily init the header
9972         on first access.
9973         (mono_get_method_from_token): don't init the header here
9974         (mono_free_method): the header may never be allocated
9975
9976         Overall, this saves 150 kb of unmanaged allocations
9977         for mcs helloworld.cs. That accounts for 10% of the unmanaged
9978         memory at runtime.
9979         
9980         * loader.c, loader.h (mono_method_get_header): new accessor.
9981
9982         * *.[ch]: use the above method. Prepares us to lazily load
9983         the header.
9984
9985         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
9986         three warnings, which are actual bugs (see 69206).
9987
9988         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
9989         unused. Saves a cool 4 bytes / method.
9990
9991 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
9992
9993         * metadata.c (builtin_types): Add types for System.Object here.
9994         (mono_metadata_parse_type_full): Cache MonoType*'s that are
9995         for a class or valuetype from klass->this_arg or klass->byval_arg.
9996
9997         On mcs for a hello world, this gets us down from 21836 MonoType's
9998         to 14560.
9999
10000         (mono_metadata_free_type): Account for the above change.
10001
10002 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
10003
10004         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
10005         exception instead of asserting if name is null.
10006         (ves_icall_System_AppDomain_GetData): Ditto.
10007
10008 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
10009
10010         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
10011         EnumBuilder.
10012
10013         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
10014         Return NULL when the domain does not have entry_assembly set.
10015
10016         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
10017         Add a 'resource_modules' argument.
10018         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
10019
10020         * reflection.c (mono_reflection_create_runtime_class): Move setting
10021         of wastypebuilder here, so mono_get_type_object () returns a MonoType
10022         for enums too.
10023
10024         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
10025         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
10026         Throw an ArgumentNullException if 'ptr' is null.
10027
10028         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
10029         assemblies here. Fixes #69020.
10030
10031 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
10032
10033         * reflection.c (build_compressed_metadata): Fix the previous patch for
10034         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
10035         the stack.
10036
10037 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
10038
10039         * assembly.c (mono_assembly_names_equal): Allow a match if one of
10040         the cultures is false. Fixes #69090.
10041
10042         * reflection.c (build_compressed_metadata): Fix invalid memory read 
10043         detected by valgrind.
10044         
10045         * reflection.c (mono_reflection_get_type): Avoid triggering a 
10046         TypeResolve multiple times for the same type. Fixes #65577.
10047
10048 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
10049
10050         * marshal.c: Avoid using ldftn to call managed functions. It is
10051         much slower than just a call.
10052
10053         * reflection.c (mono_module_get_object): free the basename we
10054         allocate here from glib.
10055         
10056         * reflection.c (ensure_runtime_vtable): make sure to free
10057         overrides.  Also, we were allocating an array of MonoMethod not an
10058         array of MonoMethod*.
10059
10060         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
10061
10062         * image.c (mono_image_close): free image->guid here.
10063
10064 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
10065
10066         * reflection.c: Fix some spec conformance issues with the PE file
10067         structures so mcs compiled apps run on the Net 2.0 beta.
10068
10069 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
10070
10071         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
10072         Implement this. Fixes #67264.
10073
10074         * debug-helpers.h debug-helpers.c marshal.c: Move 
10075         mono_find_method_by_name to debug-helpers.c.
10076
10077 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
10078
10079         * object.c (mono_release_type_locks): type_initialization_hash is
10080         a GHashTable.
10081
10082         * reflection.c object.c object-internals.h: Fix warnings.
10083
10084         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
10085         without accessors. Fixes #61561.
10086
10087         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
10088         application base from the root domain if not set. Fixes #65641.
10089         (mono_runtime_init): Fix warning.
10090
10091 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10092
10093         * appdomain.c: call mono_thread_pool_init.
10094         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
10095         of worker threads based on the number of CPUs and the environment
10096         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
10097         for non-windows (windows) systems.
10098
10099 2004-10-27  Chris Toshok  <toshok@ximian.com>
10100
10101         * mono-debug-debugger.c (write_class): don't call mono_class_init
10102         here, as even with the check for (!klass->init_pending), we get
10103         into a situation where we're hitting cycles in class
10104         initialization.  Fixes #68816.
10105
10106 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
10107
10108         * image.c: Avoid overwriting values in the loaded_images_hash when an
10109         assembly is loaded multiple times. Fixes #61152.
10110
10111         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
10112         so multiple satellite assemblies for the same name can be loaded.
10113         Fixes #68259.
10114
10115         * mono_domain_assembly_preload: Actually return the loaded assembly, 
10116         not NULL.
10117
10118         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
10119         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
10120
10121         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
10122         pending finalizers are not invoked after the appdomain has been 
10123         unloaded. Fixes #67862.
10124
10125 2004-10-22  Martin Baulig  <martin@ximian.com>
10126
10127         * mono-debug-debugger.c
10128         (mono_debugger_runtime_invoke): Don't box valuetypes.
10129
10130 2004-10-22  Chris Toshok  <toshok@ximian.com>
10131
10132         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
10133         don't hide private methods.
10134
10135 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
10136
10137         * icall.c: Allows the runtime to "share" (when known) the public key
10138         token of an assembly. This avoid the need to recalculate the token 
10139         (from the public key) in managed code.
10140
10141 2004-10-21  Chris Toshok  <toshok@ximian.com>
10142
10143         * debug-helpers.c (append_class_name): argh, revert last patch.
10144         
10145 2004-10-21  Chris Toshok  <toshok@ximian.com>
10146
10147         * debug-helpers.c (append_class_name): use '+' as the delimiter,
10148         not '/', so that it matches what the debugger uses to look up
10149         methods.
10150
10151 2004-10-21  Martin Baulig  <martin@ximian.com>
10152
10153         * mono-debug-debugger.c (mono_debugger_throw_exception): New
10154         public method; this is called each time an exception is thrown and
10155         allows the debugger to use exception catch points.
10156
10157 2004-10-21  Martin Baulig  <martin@ximian.com>
10158
10159         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
10160         the stack pointer and the exception object in some struct and pass
10161         that to the debugger.
10162
10163 2004-10-21  Chris Toshok  <toshok@ximian.com>
10164
10165         * mono-debug-debugger.c (do_write_class): add instance/static
10166         event support.  We don't expose "raise" or "other" yet.
10167         (event_is_static): new method.
10168
10169 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
10170
10171         * mono-debug-debugger.c
10172         (mono_debugger_handle_exception): Remove
10173         bogus return value for fussy compilers.
10174
10175 2004-10-20  Martin Baulig  <martin@ximian.com>
10176
10177         * mono-debug-debugger.c
10178         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
10179         (mono_debugger_handled_exception): Likewise.
10180
10181 2004-10-20  Martin Baulig  <martin@ximian.com>
10182
10183         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10184         MONO_DEBUGGER_EVENT_EXCEPTION.
10185
10186         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10187         public function to send the debugger a notification for an
10188         exception and inform it about a catch/finally clause.
10189
10190 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10191
10192         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10193         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10194         fix 2.95 build. 
10195
10196         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10197
10198 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10199
10200         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10201         marshalled as [In,Out]. Fixes #58325.
10202
10203 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10204
10205         * reflection.c (mono_method_body_get_object): Implement some fields.
10206
10207 2004-10-12  Martin Baulig  <martin@ximian.com>
10208
10209         * reflection.c (mono_reflection_bind_generic_parameters): Small
10210         fix, correctly retrieve our parent from a generic instance.
10211
10212 2004-10-12  Martin Baulig  <martin@ximian.com>
10213
10214         * metadata.c (mono_metadata_generic_param_equal): We always have
10215         an owner.
10216
10217         * class.c
10218         (mono_class_from_generic_parameter): We need to have an owner.
10219         (my_mono_class_from_generic_parameter): Likewise.
10220
10221         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10222         mono_reflection_create_generic_class() and added a new
10223         mono_reflection_setup_generic_class().  
10224         (mono_reflection_initialize_generic_param): If we're a nested
10225         generic type and inherited from the containing class, set our
10226         owner to the outer class.
10227
10228 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10229
10230         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10231
10232         * reflection.c (mono_method_body_get_object): New function to create
10233         a MethodBody object.
10234
10235         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10236
10237 2004-10-11  Martin Baulig  <martin@ximian.com>
10238
10239         * metadata.c (_mono_metadata_type_equal): Renamed to
10240         do_mono_metadata_type_equal() and made static.
10241
10242 2004-10-11  Martin Baulig  <martin@ximian.com>
10243
10244         * appdomain.c: Bump corlib version number to 28.
10245
10246 2004-10-10  Martin Baulig  <martin@ximian.com>
10247
10248         * class-internals.h
10249         (MonoGenericInst): Added `MonoGenericContainer *container'.
10250         (MonoGenericMethod): Likewise.
10251         (MonoGenericContext): Likewise.
10252         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10253
10254         * metadata.c
10255         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10256         (do_mono_metadata_parse_generic_inst): Likewise.
10257         (mono_metadata_parse_type_full): New public method.  This is the actual
10258         mono_metadata_parse_type() implementation - with an additional
10259         `MonoGenericContainer *' argument.
10260         (mono_metadata_parse_array_full): Likewise.
10261         (mono_metadata_parse_signature_full): Likewise.
10262         (mono_metadata_parse_method_signature_full): Likewise.
10263         (mono_metadata_parse_mh_full): Likewise.
10264         (mono_type_create_from_typespec): Likewise.
10265         (mono_metadata_interfaces_from_typedef_full): New public method;
10266         this is similar to the other _full() methods, but we take a
10267         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10268         (mono_metadata_parse_generic_param): Take an additional
10269         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10270         from that container.
10271         (mono_metadata_generic_param_equal): New static method to compare
10272         two type parameters.
10273         (_mono_metadata_type_equal): New static method; takes an
10274         additional `gboolean signature_only' argument - if true, we don't
10275         compare the owners of generic parameters.
10276         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10277         with a TRUE argument - do a signature-only comparision.
10278
10279         * loader.c: Use the new _full() methods and pass the
10280         MonoGenericContainer to them.
10281
10282         * object-internals.h (MonoReflectionTypeBuilder): Added
10283         `MonoGenericContainer *generic_container' field.
10284         (MonoReflectionMethodBuilder): Likewise.
10285
10286 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10287
10288         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10289         case initial images of dynamic assemblies.
10290
10291         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10292
10293         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10294
10295         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10296         length of event->other array.
10297         (typebuilder_setup_events): Ditto.
10298
10299         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10300         'assembly_by_name' and add an 'assemblies' list.
10301
10302         * assembly.h assembly.c: Add a new search hook for determining whenever
10303         an assembly is already loaded. Use this instead of searching in the
10304         loaded_assemblies list.
10305
10306         * domain.c appdomain.c: Implement the new search hook so loaded 
10307         assemblies are now scoped by appdomain. Fixes #67727.
10308
10309 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10310
10311         * threads.c (mono_thread_attach): Initialize synch_lock field so
10312         mono_thread_detach works again.
10313
10314         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
10315         'lib' too. Fixes #63130.
10316
10317 2004-10-06  Jackson Harper  <jackson@ximian.com>
10318
10319         * culture-info-tables.h: regenerated.
10320
10321 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
10322
10323         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10324         implemented by other interfaces in the result. Fixes #65764.
10325         
10326         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10327         Handle unloadable modules without crashing.
10328
10329         * image.c (load_modules): Revert the previous patch since modules must
10330         have a fixed index inside the array.
10331         
10332         * image.c (load_modules): Don't include native modules in the modules
10333         array.
10334
10335 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10336
10337         * reflection.h: Add param_defaults field.
10338
10339         * reflection.c: Add support for parameter defaults in dynamic methods.
10340         Fixes #64595.
10341
10342         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10343         an empty string when a type has no namespace. Fixes #64230.
10344
10345 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10346
10347         * tabledefs.h: Added "internal" security actions to support non-CAS
10348         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10349         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10350
10351 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10352
10353         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10354         constructor of abstract class. Fixes #61689.
10355
10356 2004-10-04  Martin Baulig  <martin@ximian.com>
10357
10358         * class-internals.h (MonoGenericContainer): New type.
10359         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10360         `MonoGenericContainer *generic_container'.
10361         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10362         `MonoGenericContainer *generic_container'.
10363
10364         * metadata.c (mono_metadata_load_generic_params): Return a
10365         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10366         removed the `num' argument.
10367
10368 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10369
10370         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10371         for dynamic images.
10372
10373         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10374         machine fields.
10375
10376         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10377
10378         * reflection.c: Save pe_kind and machine values into the generated
10379         image file.
10380
10381         * appdomain.c: Bump corlib version number.
10382
10383         * object-internals.h: Reorganize layout of LocalBuilder.
10384
10385         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10386         New helper function.
10387
10388         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10389         created MonoType for dynamic types. Fixes #66180.
10390
10391 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10392
10393         * threadpool.c: the ares hashtable needs a critical section around it.
10394         this prevents some nasty segfaults
10395
10396 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10397
10398         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10399         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10400         bug 67324).
10401         
10402 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10403
10404         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10405         
10406 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10407
10408         * image.c: Always canonicalize image file names, to avoid loading
10409         the same assembly twice when referenced using a relative path.
10410
10411 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10412
10413         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10414
10415         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10416
10417         * marshal.c: Fix warnings.
10418
10419 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
10420
10421         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
10422         attempting to marshal the delegate_trampoline as the method_addr.
10423         This patch has a static hashtable of marshalled delegates so that 
10424         we can map delegate_trampoline addresses back to delegates.  This
10425         allows a delegate passed to managed code to be passed back into native
10426         code.  Fixes #67039
10427
10428 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10429
10430         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
10431
10432         * reflection.c (method_encode_code): Align method headers properly.
10433         Fixes #66025.
10434
10435 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10436
10437         * marshal.c: In the runtime invoke wrapper, reset the abort
10438         exception if it is cached. This avoids the automatic rethrowal of 
10439         the exception after the catch of the wrapper. Also check for pending
10440         interruptions before calling the managed method. This is done using
10441         the new method emit_thread_force_interrupt_checkpoint, since the
10442         normal checkpoint method is ignored when running the invoke wrapper.
10443         * object.c: If the abort exception is rethrown, set the abort_exc
10444         field of the thread, so it will be rethrown aftere every catch.
10445         * threadpool.c: Only run an interruption checkpoint if what has been
10446         requested is a stop of the thread (aborts will be ignored).
10447         * threads.c: By default, a thread will now never be interrumped while
10448         running the runtime invoke wrapper (this ensures that runtime_invoke
10449         will always return to the caller if an exception pointer is provided).
10450         There is a new special method mono_thread_force_interruption_checkpoint()
10451         to force an interruption checkpoint even if running a protected
10452         wrapper, which is used by the same runtime invoke wrapper to do a check
10453         at a safe point.
10454
10455 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10456
10457         * object.c, object-internals.h: Implemented mono_release_type_locks,
10458         which releases the cctor locks held by a thread.
10459         * threads.c, threads.h: In thread_cleanup, release cctor locks held
10460         by a thread. Added mono_thread_exit() method to be used to safely stop
10461         a thread.
10462
10463 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10464
10465         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10466         Move null check before dereference.  Avoid indexing beyond the end
10467         of the 'modules' array.
10468
10469 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10470
10471         * metadata-internals.h (MonoImage): Add module_count field.
10472         * image.c (load_modules): Set image->module_count.
10473         (mono_image_load_file_for_image): Use image->module_count.
10474         * reflection.c (mono_image_load_module): Append to image->modules array 
10475         of dynamic assembly.
10476         (mono_module_get_object): Fix loop to actually increment index.
10477         Use image->module_count.
10478         * assembly.c (mono_assembly_load_references): Use image->module_count.
10479         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
10480         Likewise.
10481
10482 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10483
10484         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
10485         Avoid assert on generic types.
10486
10487 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
10488
10489         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
10490
10491         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
10492
10493         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
10494         function to convert a MarshalSpec structure to its managed counterpart.
10495
10496         * reflection.c: Fix warnings.
10497         
10498         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
10499         field.
10500
10501         * icall.c (mono_create_icall_signature): Fix build.
10502
10503 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
10504
10505         * icall.c: Add MakePointType icall.
10506
10507         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
10508         warnings.
10509
10510 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10511
10512         * threadpool.c: reuse allocated slots in the queue.
10513
10514 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
10515
10516         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
10517
10518         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
10519
10520         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
10521         previous change.
10522
10523         * tabledefs.h: Add constants for pinvoke attributes BestFit and
10524         ThrowOnUnmappableChar.
10525
10526         * icall.c (ves_icall_Type_GetPacking): New icall.
10527
10528 2004-09-24  Martin Baulig  <martin@ximian.com>
10529
10530         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
10531
10532 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10533
10534         * appdomain.c:
10535         (mono_domain_set): allow setting a domain that is being unloaded.
10536         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
10537         being unloaded.
10538
10539 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10540
10541         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
10542         the GetCustomAttributes icall.
10543
10544 2004-09-23  Martin Baulig  <martin@ximian.com>
10545
10546         * object-internals.h (MonoReflectionGenericParam): Replaced
10547         'has_ctor_constraint', `has_reference_type' and `has_value_type'
10548         with `guint32 attrs'.
10549
10550 2004-09-23  Martin Baulig  <martin@ximian.com>
10551
10552         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
10553
10554 2004-09-23  Martin Baulig  <martin@ximian.com>
10555
10556         * object-internals.h (GenericParameterAttributes): New enum.
10557
10558 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10559
10560         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
10561         
10562         * class.c (init_events): Fill out event->other field.
10563
10564         * class.c: Fix warnings.
10565
10566         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
10567
10568 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
10569
10570         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
10571         walk which doesn't supply the IL offset.
10572
10573 2004-09-22  Martin Baulig  <martin@ximian.com>
10574
10575         * reflection.c (mono_reflection_setup_internal_class): If we're
10576         System.ValueType, System.Object or System.Enum, set
10577         `klass->instance_size' and create the vtable.
10578         (mono_reflection_create_internal_class): If we're an enum type,
10579         get the base class from our current corlib.
10580
10581 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
10582
10583         * reflection.h (MonoResolveTokenError): New type.
10584
10585         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
10586         icall.
10587
10588         * icall.c: Add an 'error' argument to the ResolveToken icalls.
10589
10590 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
10591
10592         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
10593         Support also calling constructors, but only for already allocated objects.
10594
10595 2004-09-17  Geoff Norton <gnorton@customerdna.com>
10596
10597         * reflection.c (type_get_qualified_name): If the klass is null
10598         return the typename to avoid a NullRefEx.
10599         (encode_cattr_value): Get the qualified name of the boxed type,
10600         not the underlying enumtype.  Fixes #62984.
10601
10602 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
10603
10604         * marshal.c: Fix problems with previous checkin.
10605
10606 2004-09-21    <vargaz@freemail.hu>
10607
10608         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
10609         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
10610
10611         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
10612
10613 2004-09-21  Geoff Norton <gnorton@customerdna.com>
10614
10615         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
10616         should only return a type for pointers, arrays, and passbyref types.
10617         Fixes bug #63841.
10618
10619 2004-09-21  Martin Baulig  <martin@ximian.com>
10620
10621         * domain.c (mono_debugger_check_runtime_version): New public
10622         function.
10623
10624         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
10625
10626 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
10627
10628         * reflection.c: Added missing sort to the declarative security 
10629         attributes table. MS implementation stops seeing the attributes if the
10630         token number regress in the table (as shown by ildasm and permview).
10631
10632 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
10633
10634         * object-internals.h (MonoReflectionModule): Add 'token' field.
10635         
10636         * reflection.c (mono_reflection_get_token): Add support for Module
10637         and Assembly.
10638         (mono_module_get_object): Set 'token' field.
10639         (mono_module_file_get_object): Set 'token' field.
10640
10641         * icall.c: Add new Assembly and Module icalls.
10642
10643         * appdomain.c: Bump corlib version.
10644
10645 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
10646
10647         * loader.h loader.c class.h class.c: Add helper functions for obtaining
10648         tokens of metadata objects.
10649
10650         * reflection.h reflection.c (mono_reflection_get_token): New function
10651         to obtain the token of a metadata object.
10652
10653         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
10654
10655 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
10656
10657         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
10658         
10659         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
10660
10661 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
10662
10663         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
10664         * object-internals.h: Added 3 MonoArray* members to MonoReflection
10665         AssemblyBuilder to access the permissions set in the class lib.
10666         * reflection.c: Added security attributes encoding step in 
10667         mono_image_build_metadata.
10668         * tabledefs.h: Added new security actions defined in 2.0:
10669         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
10670
10671 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10672
10673         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
10674         macro parameter.
10675
10676 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10677  
10678         * locales.c: nullify the ICU_collator member of CompareInfo when it is
10679           finalized. There where random SIGSEVs at program termination, when
10680           an object being finalized was trying to do a string comparison and
10681           the current culture was already finalized.
10682  
10683 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10684
10685         * threads.c: call thread_cleanup before finishing the thread if we get
10686         there.
10687
10688 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
10689
10690         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
10691         assemblies from the parent. Fixes #65665.
10692
10693 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
10694
10695         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
10696         modifiers.
10697
10698 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
10699
10700         * reflection.h: add prototype for mono_get_dbnull_object
10701         * reflection.c: add prototypes for get_default_param_value_blobs 
10702         and mono_get_object_from_blob for fussier compilers
10703
10704 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
10705  
10706         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
10707         false deadlock checks in class initialization.
10708  
10709 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
10710
10711         * image.c (mono_image_addref): Fix comment.
10712
10713         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
10714         possible.
10715
10716 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
10717
10718         * reflection.c (mono_param_get_objects): Modified to return
10719         ParameterInfo.DefaultValue object.
10720
10721         (get_default_param_value_blobs):
10722         (mono_get_object_from_blob):
10723         (mono_get_dbnull_object): New helper routines. 
10724
10725         * object.c (mono_get_constant_value_from_blob): New helper routine
10726         carved out from get_default_field_value ()
10727
10728         * object-internals.h (mono_get_constant_value_from_blob): Added
10729         function declaration.
10730
10731 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
10732
10733         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
10734         referenced assemblies. Fixes #62135.
10735
10736         * exception.h exception.c (mono_get_exception_file_not_found2): New
10737         helper function.
10738
10739 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
10740
10741         * class.h class.c: Add mono_type_get_underlying_type ().
10742
10743 2004-09-09  Geoff Norton <gnorton@customerndna.com>
10744
10745         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
10746         Fix GetTypes() to support dynamically created assemblies.
10747
10748 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
10749
10750         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
10751         
10752         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
10753         previous patch.
10754
10755         * reflection.h reflection.c loader.c: Allow dynamic construction of
10756         pinvoke methods. Fixes #65571.
10757         
10758         * reflection.c (mono_reflection_get_type): Revert previous change since
10759         it causes regressions.
10760
10761 2004-09-08  Martin Baulig  <martin@ximian.com>
10762
10763         * class.c (class_compute_field_layout): Don't call
10764         mono_class_layout_fields() for open generic instances.
10765
10766 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
10767         * threads.c appdomain.c: fix typo in GC macro
10768
10769 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10770
10771         * threads.c: don't call mono_thread_detach() in start_wrapper(),
10772         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
10773
10774 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
10775
10776         * image.c (mono_image_close): Applied patch from 
10777         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
10778         assembly is loaded multiple times from data.
10779         
10780         * image.c (mono_image_open): Fix warning.
10781
10782 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10783
10784         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
10785         once. Fixes #58334.
10786         
10787         * reflection.c (mono_reflection_create_runtime_class): Initialize
10788         klass->nested_classes. Fixes #61224.
10789
10790 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
10791
10792         * threads.c: sched_yield() on exit, to allow threads to quit.
10793
10794 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10795
10796         * object.c (mono_unhandled_exception): Remove leftover debug code.
10797
10798 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
10799
10800         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
10801
10802 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10803
10804         * marshal.c (emit_marshal_array): Really null terminate string arrays.
10805         
10806         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
10807
10808 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10809
10810         * marshal.c (emit_marshal_array): Null terminate string arrays.
10811         
10812         * marshal.c (raise_auto_layout_exception): Fix warning.
10813
10814         * reflection.c (mono_param_get_objects): Initialize the default value
10815         with DBNull.Value, not null. Fixes #62123.
10816
10817 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
10818
10819         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
10820         throw an exception with a cute explanation.
10821
10822 2004-09-06  Dick Porter  <dick@ximian.com>
10823
10824         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
10825         Close the new process's thread handle, as we don't use it.  The
10826         handle stays around forever otherwise.
10827
10828 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10829
10830         * object.c (arith_overflow): Fix warning.
10831
10832         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
10833         calling conventions in method refs. Fixes #65352.
10834
10835         * reflection.c: Fix warnings.
10836
10837 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
10838
10839         * icall.c: Add a new icall for Array.Clear
10840
10841 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
10842
10843         * object.c: When allocating an array, we have to throw
10844         an overflow exception if any of the lengths are < 0.
10845
10846 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10847
10848         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
10849         properly. Also move implementation of string array marshalling to 
10850         managed code. Fixes #42316.
10851
10852 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10853
10854         * assembly.c: provide more information when loading an assembly fails.
10855
10856 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10857
10858         * filewatcher.c: don't expect the development fam package to be
10859         installed.
10860
10861 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
10862
10863         * marshal.c: Make a copy of the signature cookie since it will be
10864         freed by the caller.
10865         
10866         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
10867
10868         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
10869
10870         * metadata.c (mono_metadata_free_marshal_spec): New function to free
10871         marshal specs.
10872
10873         * marshal.c: More refactoring.
10874         
10875         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
10876         smaller functions.
10877
10878 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
10879
10880         * object.c: In mono_message_invoke, fill the output parameter array after
10881           calling the managed method (it was done before the call). This fixes
10882           bug #59299.
10883
10884 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
10885
10886         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
10887         as well.
10888
10889 2004-09-02  Martin Baulig  <martin@ximian.com>
10890
10891         * class.c (mono_class_instance_size): Don't allow generic type
10892         definitions or open generic instances.
10893         (mono_class_array_element_size): If we're a value type, call
10894         mono_class_instance_size() on the original class.
10895
10896         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
10897         handle generic instances.
10898
10899         * mono-debug-debugger.c (write_type): Handle generic instances
10900         like classes.
10901
10902 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
10903
10904         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
10905         the allocation request fails. Fixes #65089.
10906
10907         * object.c (mono_runtime_free_method): Do not call mono_free_method.
10908         
10909         * object.c (mono_runtime_free_method): New function to free a dynamic
10910         method.
10911
10912         * marshal.c (mono_delegate_free_ftnptr): New function to free the
10913         delegate trampoline.
10914
10915         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
10916         with hasthis as dynamic,
10917
10918         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
10919
10920         * domain.c (mono_jit_info_table_remove): New function to remove an
10921         entry from the jit info table.
10922
10923         * class-internals.h (MonoMethod): Add 'dynamic' field.
10924
10925         * loader.c: Fix warnings.
10926
10927 2004-09-01  Martin Baulig  <martin@ximian.com>
10928
10929         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
10930         instead of mono_debugger_lock() because the latter one is a no-op
10931         unless running in the debugger.
10932
10933 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
10934
10935         * class.c (class_compute_field_layout): Classes with auto-layout or
10936         reference fields are not blittable.
10937         
10938 2004-09-01  Dick Porter  <dick@ximian.com>
10939
10940         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
10941         mono_image_get_filename() to get the assembly location.
10942
10943         * icall.c:
10944         * metadata.h: Fix compile warnings
10945
10946 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
10947
10948         * class.c (class_compute_field_layout): System.Object is blittable.
10949
10950         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
10951         as in/out. Fixes #59909.
10952
10953 2004-09-01  Martin Baulig  <martin@ximian.com>
10954
10955         * metadata.h (MONO_TYPE_ISREFERENCE): Call
10956         mono_metadata_generic_inst_is_valuetype() if we're a generic
10957         instance to check whether our underlying type is a reference type.
10958
10959 2004-09-01  Martin Baulig  <martin@ximian.com>
10960
10961         * metadata.c (mono_type_size): If we're a generic instance, call
10962         mono_class_value_size() for value types.
10963
10964 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
10965
10966         * marshal.c: Implement more custom marshalling functionality. Fixes
10967         #64915.
10968
10969 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10970
10971         * mono-debug.c, debug-mono-symfile.c: add some locking love.
10972
10973 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
10974
10975         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
10976
10977         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
10978
10979         * icall.c: Fix some warnings.
10980
10981         * threads.c (abort_appdomain_thread): Fix unref errors.
10982         (mono_thread_current): Fix THREAD_DEBUG define.
10983
10984 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
10985
10986         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
10987
10988         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
10989
10990 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
10991
10992         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
10993         string arrays.
10994
10995 2004-08-28  Martin Baulig  <martin@ximian.com>
10996
10997         * metadata.c
10998         (mono_metadata_generic_inst_is_valuetype): New public function.
10999
11000         * metadata.h (MONO_TYPE_ISSTRUCT): Call
11001         mono_metadata_generic_inst_is_valuetype() if we're a generic
11002         instance to check whether our underlying type is a valuetype.
11003
11004 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
11005
11006         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
11007         #63768.
11008
11009 2004-08-25  Martin Baulig  <martin@ximian.com>
11010
11011         * loader.c (mono_get_method_from_token): Abstract methods can also
11012         be generic and thus have type parameters.
11013
11014         * metadata-internals.h
11015         (MonoDynamicImage): Added `GPtrArray *gen_params'.
11016
11017         * reflection.c (mono_image_get_generic_param_info): Don't create a
11018         metadata row, just add an entry to the `gen_params' array.
11019         (build_compressed_metadata): Sort the `gen_params' array and then
11020         actually create the metadata.
11021
11022 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11023
11024         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
11025
11026 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
11027
11028         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
11029
11030 2004-08-24  Martin Baulig  <martin@ximian.com>
11031
11032         * class.cs (mono_class_is_subclass_of): Like an interface, a
11033         generic instance also derives from System.Object.
11034
11035 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
11036
11037         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
11038         custom modifiers to be in any order. Fixes #61990.
11039
11040 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
11041
11042         * object.c: Register mono_object_new_fast icall.
11043         
11044         * object.c (mono_class_get_allocation_ftn): Return to calling
11045         mono_object_new_fast, since it seems faster to compute the object 
11046         size in unmanaged code than passing it as a parameter.
11047
11048         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
11049
11050         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
11051         this function with Boehm as the oom handler, so we don't have to check
11052         the result of GC_malloc.
11053
11054         * object.c: Remove checks for oom.
11055
11056         * object.h object.c (mono_class_get_allocation_ftn): New function to
11057         return the icall which can be used to allocate an instance of a given
11058         class. 
11059
11060         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
11061
11062         * class-internals.h: Add 'enabled' field.
11063
11064 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
11065
11066         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
11067
11068 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
11069         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
11070         value 0x0010.
11071
11072 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
11073
11074         * appdomain.c: use the Tls function for appdomain too,
11075         at Zoltan's request. Actually return in mono_context_get
11076
11077         * appdomain.c, profiler.c, threads.c: use __thread
11078
11079 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
11080
11081         * appdomain.c threads.c: Call GC_CreateThread on windows.
11082
11083         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
11084         multiple libraries since this don't work on windows.
11085
11086 2004-08-18  Martin Baulig  <martin@ximian.com>
11087
11088         * class-internals.h
11089         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
11090         MonoMethodHeader.
11091
11092         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
11093         MonoMethodNormal since we also need it for abstract and interface
11094         methods.
11095
11096         * reflection.c
11097         (build_compressed_metadata): Sort the GenericParam table.
11098         (mono_image_create_token): Added `gboolean create_methodspec'
11099         argument; this is false when generating a MethodImpl token.
11100         (reflection_methodbuilder_to_mono_method): Abstract and interface
11101         methods may also have generic parameters.
11102
11103 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
11104
11105         * appdomain.c: thread local alloc
11106
11107 2004-08-17  Martin Baulig  <martin@ximian.com>
11108
11109         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
11110
11111         * icall.c
11112         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
11113         argument.
11114
11115         * class.c (mono_type_get_full_name): New public function.
11116         (mono_type_get_name): Don't include the type arguments.
11117
11118 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
11119
11120         * Makefile.am: Build static versions of libmetadata and libmonoruntime
11121         for inclusion into the mono executable.
11122
11123 2004-08-16  Martin Baulig  <martin@ximian.com>
11124
11125         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
11126         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
11127
11128 2004-08-14  Martin Baulig  <martin@ximian.com>
11129
11130         * class.c (dup_type): Also copy the `byref' field.
11131
11132 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
11133
11134         * reflection.c (create_dynamic_mono_image): Revert the last change 
11135         since it breaks bootstrap.
11136
11137 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
11138
11139         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
11140
11141         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
11142         not free them with g_free.
11143
11144 2004-08-11  Martin Baulig  <martin@ximian.com>
11145
11146         * reflection.c (mono_reflection_setup_internal_class): Also call
11147         mono_class_setup_mono_type() if we already have a `tb->type.type'.
11148
11149 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
11150
11151         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
11152         called during default (first) AppDomain creation. Keep track of
11153         Evidence when loading assemblies.
11154
11155 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11156
11157         * opcodes.c, opcodes.h: reduce runtime relocations.
11158
11159 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
11160
11161         * culture-info.h, locales.c: fixes and chages to sue the new
11162         optimized format of the locale data.
11163         * culture-info-tables.h: regenerated.
11164
11165 2004-08-06  Geoff Norton <gnorton@customerdna.com>
11166         
11167         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
11168
11169 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
11170
11171         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
11172         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
11173         * domain-internals.h: icall declaration.
11174         * icall.c: icall registration.
11175         * object-internals.h: New fields in MonoAssembly for CAS.
11176
11177 2004-08-05  Duncan Mak  <duncan@ximian.com>
11178
11179         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
11180         CEE_LDELEM_ANY.
11181
11182 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11183
11184         * reflection.c: fix to deal with object[] arrays in custom ctors
11185         (bug #62550).
11186
11187 2004-08-05  Martin Baulig  <martin@ximian.com>
11188
11189         * class.c (mono_class_array_element_size): Added support for
11190         generic instances and correctly handle "recursive" types.
11191
11192 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11193
11194         * assembly.c: Fix warnings.
11195
11196 2004-08-04  Martin Baulig  <martin@ximian.com>
11197
11198         * class.c
11199         (mono_type_get_name_recurse): Added `gboolean include_arity'
11200         argument specifying whether or not we should include the generic
11201         arity in the type name.
11202         (_mono_type_get_name): New static function.
11203         (mono_class_setup_vtable): If we're a generic instance, don't
11204         include the generic arity in the names of explicit method
11205         implementations.        
11206
11207 2004-08-03  Martin Baulig  <martin@ximian.com>
11208
11209         * class.c (mono_type_get_name_recurse): Enclose the generic type
11210         arguments in `<', '>'.
11211
11212 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11213
11214         * gc.c: make GC warning messages use the trace API, they are just
11215         noise to most of the users.
11216
11217 2004-08-03  Martin Baulig  <martin@ximian.com>
11218
11219         * debug-mono-symfile.c (read_string): Correctly read the string.
11220
11221 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11222
11223         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11224         
11225         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11226         icalls.
11227         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11228
11229 2004-07-30  Martin Baulig  <martin@ximian.com>
11230
11231         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11232         Reflect latest symbol writer changes.   
11233
11234 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11235
11236         * object.c: always create an object if null is passed
11237         to Invoke() where a valuetype is expected.
11238
11239 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11240
11241         * marshal.c (mono_marshal_init): make managed
11242         signatures match native ones better for 64bits.
11243
11244 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11245
11246         * appdomain.c: hack to build correctly the private bin path on windows.
11247         Fixes bug #61991.
11248
11249 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11250
11251         * assembly.c: Load mscorlib from the correct framework directory
11252           (mono/<version>/mscorlib.dll).
11253         * appdomain.h: Added prototypes for new functions.
11254         * internals.h: Added some prototypes.
11255         * domain.c: When initializing the runtime, get from the executable and
11256           the configuration files the runtime version that the app supports.
11257           Added support methods for reading app.exe.config. Added list of versions
11258           supported by the JIT. Added two new methods: mono_init_from_assembly,
11259           which initializes the runtime and determines the required version from
11260           the provided exe file, and mono_init_version, which initializes
11261           the runtime using the provided version.
11262         * icall.c: Get machine.config from version-specific directory.
11263         * reflection.c: When generating an image, embed the version number
11264           of the current runtime.
11265
11266 2004-07-28  Dick Porter  <dick@ximian.com>
11267
11268         * socket-io.c
11269         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11270         returned sockaddr size before creating the remote address object.
11271         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11272         61608.
11273
11274 2004-07-28  Dick Porter  <dick@ximian.com>
11275
11276         * locales.c (string_invariant_compare_char): Fix invariant char
11277         compares between upper and lower cases.  Fixes bug 61458.
11278
11279 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11280         
11281         * marshal.c: actually cache stelem.ref wrappers.
11282         
11283 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11284
11285         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11286         sections and remove the mono_cli_rva_map () function.
11287
11288 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11289
11290         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11291         by Geoff Norton (<gnorton@customerdna.com>).
11292
11293 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11294
11295         * class.c: fix class loads for pointer types (typeof(int) !=
11296         typeof(int*)).
11297
11298 2004-07-27  Martin Baulig  <martin@ximian.com>
11299
11300         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11301         reading the debugging information from an external ".mdb" file.
11302
11303 2004-07-24  Martin Baulig  <martin@ximian.com>
11304
11305         * reflection.c (mono_image_get_type_info): Only write a class
11306         layout entry if we actually have a size or a packing size.
11307
11308 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11309
11310         * reflection.c (type_get_fully_qualified_name): 
11311         insert cast to get type checking of ?: with non-gcc compilers
11312
11313 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11314
11315         * rand.c: use g_getenv for both lookups of
11316         MONO_EGD_SOCKET
11317
11318 2004-07-17  Martin Baulig  <martin@ximian.com>
11319
11320         * reflection.c (mono_reflection_bind_generic_method_parameters):
11321         Set `gmethod->reflection_info'.
11322
11323 2004-07-17  Martin Baulig  <martin@ximian.com>
11324
11325         * class.c (mono_class_create_from_typedef): Insert the newly
11326         created class into the hash table before computing the interfaces
11327         since we could be called recursively.
11328
11329 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11330
11331         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11332         function to implement stelem.ref in managed code
11333         * class-internals.h, debug-helpers.c: a new wrapper type
11334         for the above.
11335
11336 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11337
11338         * gc.c: allow GC handles to work even when no GC is compiled in.
11339         Fix part of bug #61134 (GetAddrOfPinnedObject).
11340
11341 2004-07-13  Peter Williams  <peter@newton.cx>
11342  
11343         * process.c (complete_path): Make sure we don't attempt to execute
11344         directories.
11345  
11346 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11347
11348         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11349           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11350           and will add/subtract the hour if needed
11351
11352 2004-07-12  Martin Baulig  <martin@ximian.com>
11353
11354         * reflection.c (mono_field_get_object): If we have
11355         `field->generic_info', take the attributes from
11356         `field->generic_info->generic_type'.    
11357
11358 2004-07-12  Martin Baulig  <martin@ximian.com>
11359
11360         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11361         This function must be called before initializing the runtime.
11362         (mono_debug_init_1): New function; call this after initializing
11363         the runtime, but before loading the assembly.  It tells the
11364         debugger to load corlib and the builtin types.
11365
11366         * mono-debug-debugger.c: Did some larger changes in the debugging
11367         code; support recursive class declarations, make sure we actually
11368         add all classes.
11369
11370 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11371
11372         * debug-helpers.c: undo my previous patch and fixed the real issue in
11373         ../mini/exceptions-x86.c
11374
11375 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11376
11377         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11378         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11379         called from other .cctors.
11380
11381 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11382
11383         * loader.c: Removed the mono_loader_wine_init hack now that we are
11384         doing a managed version of Windows.Forms.
11385
11386 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11387
11388         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11389         threadpool.c, threads.c: remove static data from rootset.
11390
11391 2004-07-09  Dick Porter  <dick@ximian.com>
11392
11393         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11394         Don't do any more processing if the matched length was 0.  It was
11395         increasing the size of the string before.  Fixes bug 61167.
11396
11397 2004-07-09  Dick Porter  <dick@ximian.com>
11398
11399         * socket-io.h:
11400         * socket-io.c
11401         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11402         Add support for SO_PEERCRED if its available.
11403
11404 2004-07-09  Peter Bartok <pbartok@novell.com>
11405         * loader.c: winelib.exe.so error message is now only displayed if
11406         MONO_DEBUG is set. To help us avoid questions when people are trying
11407         out the new Managed.Windows.Forms.
11408
11409 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11410
11411         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11412         for isinst and castclass wrappers.
11413
11414         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11415         to libmetadata from the JIT, so they could be used by the marshalling
11416         code and the interpreter.
11417
11418         * marshal.c: Register marshalling related JIT icalls here instead of
11419         in mini.c. Use CEE_MONO_ICALL instead of the family of 
11420         CEE_MONO_PROC<x> opcodes to call marshalling functions.
11421
11422         * metadata.h: Remove unneeded marshalling conversions.
11423
11424         * opcodes.c: Update for new opcodes.
11425         
11426 2004-07-08  Martin Baulig  <martin@ximian.com>
11427
11428         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
11429         (mono_debug_get_domain_data): Make this function static.
11430
11431 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11432
11433         * gc.c, object.h: add nice GC handle API for embedders.
11434
11435 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
11436
11437         * reflection.c: more changes for the new api
11438
11439         * object.c: When we reflect on a field w/ a constant value, it
11440         will not have a memory location, so we must access metadata. Also,
11441         allow easier reading of strings so that we can read them from
11442         the constant data.
11443
11444         * class.c (mono_class_layout_fields): no need for literal fields here.
11445
11446         * class-internals.h: api changes for const fields
11447
11448         * icall.c (ves_icall_get_enum_info): use new apis for const fields
11449
11450 2004-07-06  Martin Baulig  <martin@ximian.com>
11451
11452         * mono-debug.h: Increment version number to 44.
11453
11454         * mono-debug.c (mono_debug_add_wrapper): The second argument is
11455         now a gpointer, rewrote this whole method.
11456
11457         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
11458         function.  Add information about the wrapper in a new "misc table".
11459
11460         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
11461         for the new misc table.
11462
11463 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
11464
11465         * metadata-internals.h image.c: Add a cache for helper signatures.
11466
11467         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
11468
11469 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
11470
11471         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
11472         delegates from a delegate. Fixes #61033.
11473         
11474         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
11475         marshalling of stringbuilder arrays. Fixes #59900.
11476
11477 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
11478
11479         * icall.c: Add EnumBuilder:setup_enum_type icall.
11480
11481 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
11482
11483         * icall.c: Added a new icall for the property version of
11484         OffsetOfStringData.
11485
11486 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
11487
11488         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
11489         it has a constant size across platforms.
11490
11491         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
11492         stack trace.
11493
11494 2004-06-29  Martin Baulig  <martin@ximian.com>
11495
11496         * mono-debug.c (mono_debug_add_method): Protect the whole function
11497         in mono_debugger_lock(), not just parts of it.
11498
11499 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11500
11501         * reflection.c: make sure padding bytes in heaps are zeroed.
11502
11503 2004-06-24  David Waite  <mass@akuma.org>
11504
11505         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
11506         image.c, loader.c, locales.c, marshal.c, metadata.c,
11507         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
11508         string-icalls.c, threads.c: change to C90-style comments from C99 /
11509         C++ -style
11510
11511 2004-06-24  Dick Porter  <dick@ximian.com>
11512
11513         * threads.c
11514         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
11515         return createdNew.  Fixes bug 60412.
11516
11517         * threads-types.h: 
11518         * icall.c: Add createdNew parameter to CreateMutex icall
11519
11520 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11521
11522         * reflection.c, object-internals.h: save default value in params.
11523
11524 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11525
11526         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
11527         no need to build a new path combining that with the application base.
11528         Fixes bug #60442.
11529
11530 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
11531
11532         * reflection.c: fixed minor standard compliance issues.
11533
11534 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11535
11536         * reflection.c: fixed issue with encoding some custom attributes
11537         (arrays in properties and fields, bug #60411).
11538
11539 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11540
11541         * reflection.c: fix start address when copying the public key token.
11542
11543 2004-06-23  Martin Baulig  <martin@ximian.com>
11544
11545         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
11546         the `exc' object in a static object to put it into the GC's root set.
11547
11548 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
11549
11550         * reflection.c: make mono_reflection_setup_internal_class ()
11551         callable a second time to setup a new parent class.
11552
11553 2004-06-23  Dick Porter  <dick@ximian.com>
11554
11555         * threads.c: Check for WAIT_IO_COMPLETION return values.
11556
11557 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
11558
11559         * appdomain.c: Removed the g_free on the public key token. Now copy 
11560         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
11561         * assembly.c: Added public key token string value when loading 
11562         assemblies. Fix bug #60439.
11563         * icall.c: Added missing informations (like public key) in 
11564         GetReferencedAssemblies. Fix #60519.
11565         * image.h: Changed definition for public key token from const char*
11566         public_tok_value to guchar public_key_token [17];
11567         * reflection.c: Updated for changes to public key token.
11568
11569 2004-06-22  Lluis Sanchez Gual
11570
11571         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
11572         for the field in base classes.
11573
11574 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11575
11576         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
11577         mark headers as not supported, they are installed only for use by the
11578         debugger.
11579
11580 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
11581
11582         * *.c, *.h: avoid namespace pollution in public headers.
11583
11584 2004-06-21  Martin Baulig  <martin@ximian.com>
11585
11586         * exception.c (mono_get_exception_security): It's in
11587         "System.Security", not in "System".
11588
11589         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
11590         the exception classes.
11591
11592 2004-06-21  Martin Baulig  <martin@ximian.com>
11593
11594         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
11595         Protect the exception object from being finalized.
11596
11597 2004-06-21  Martin Baulig  <martin@ximian.com>
11598
11599         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
11600         public function.
11601
11602 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
11603
11604         * reflection.c: Load the assembly in mono_reflection_type_from_name,
11605         if it was not loaded before. Fix parts of #60439.
11606
11607 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
11608
11609         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
11610         code that was broken since Ben's change: wrappers are now
11611         dependent on the method signature only again.
11612
11613 2004-06-21  Martin Baulig  <martin@ximian.com>
11614
11615         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
11616         added interface support.
11617
11618 2004-06-21  Martin Baulig  <martin@ximian.com>
11619
11620         * class.c (mono_vtable_get_static_field_data): New public method.
11621
11622 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
11623
11624         * filewatcher.c : Windows build fix to be compliant with API changes.
11625
11626 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11627
11628         * class.h, class.c: more accessors.
11629         * metadata.h, metadata.c: prepare for hiding MonoType and
11630         MonoMethodSignature: people should use the accessors from now on
11631         outside of the tree.
11632
11633 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11634
11635         * *.c, *.h: more API cleanups.
11636
11637 2004-06-18  Jackson Harper  <jackson@ximian.com>
11638
11639         * assembly.c: Trace loading assemblies.
11640         * loader.c: Trace loading native libraries.
11641         * mono-config.c: Trace loading config files.
11642         
11643 2004-06-18  Dick Porter  <dick@ximian.com>
11644
11645         * locales.c: Tell ICU the lengths of strings, it can cope with
11646         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
11647
11648 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
11649
11650         * image.c: swapped name/filename;
11651
11652 2004-06-18  Martin Baulig  <martin@ximian.com>
11653
11654         * mono-debug-debugger.c (write_class): Write the parent class at
11655         the end of the header.
11656
11657 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11658
11659         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
11660
11661 2004-06-17  Raja R Harinath  <rharinath@novell.com>
11662
11663         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
11664         (bundle_obj): New conditional define.
11665         (BUILT_SOURCES): Remove.
11666         ($(bundle_srcs)): Make parallel-make safe.
11667         (libmonoruntime_la_LIBADD): Make unconditional.
11668         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
11669         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
11670
11671 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
11672
11673         * culture-info-tables.h: It was inconsistent with the latest
11674           supp info files.
11675
11676 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
11677
11678         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
11679         be loaded.
11680
11681         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
11682         with gcc 2.95.
11683
11684 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11685
11686         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
11687         cleaned up public header threads.h.
11688
11689 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11690
11691         * Makefile.am, *.c, *.h: more API cleanups.
11692
11693 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
11694
11695         * Makefile.am: removed monosn from compilation.
11696         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
11697         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
11698         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
11699         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
11700         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
11701         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
11702
11703 2004-06-15  Jackson Harper  <jackson@ximian.com>
11704
11705         * assembly.c: Make locales lower case when searching the GAC for
11706         assemblies. gacutil will always make locales lowercase when
11707         installing so this effectively makes them case insensitive.
11708         
11709 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
11710
11711         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
11712         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
11713           parameter which allows to choose whether the wait can be interrupted or 
11714           not. Also added the method mono_monitor_enter(), which locks the monitor
11715           using an infinite wait and without allowing interruption.
11716           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
11717           interrupted.
11718         * object.h: Added new fields in MonoThread. suspend_event holds the event
11719           used to susped/resume the thread. synch_lock is the lock object to use for
11720           modifying the thread state.
11721         * threads.c: Use the new synch_lock object for locking, instead of "this",
11722           which can generate deadlocks.
11723           Moved thread state change in Thread.Sleep and Thread.Join from managed
11724           to unmanaged code. This avoids a deadlock when the thread was suspended
11725           just after acquiring the thread lock.
11726           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
11727           Implemented Thread.Suspend using an event instead of ThreadSuspend,
11728           which is not fully implemented in the io-layer.
11729         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
11730
11731 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
11732
11733         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
11734         threads-types.h: more API cleanups.
11735
11736 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11737
11738         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
11739         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
11740         threadpool.c, threads.c: first pass at the exported API cleanup.
11741
11742 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
11743
11744         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
11745
11746 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11747
11748         * icall.c: added internalGetHome.
11749
11750 2004-06-14  Dick Porter  <dick@ximian.com>
11751
11752         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
11753         possible to return successfully when '.' or '..' were the only
11754         entries in a directory, but were skipped.  The MonoIOStat was not
11755         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
11756         Fixes bug 59574.
11757
11758 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11759
11760         * reflection.c: make binaries run on .Net 1.1 by default.
11761
11762 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11763
11764         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
11765
11766 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
11767
11768         * marshal.c: keep track of struct size with explicit layout
11769         (bug #59979).
11770
11771 2004-06-12  Martin Baulig  <martin@ximian.com>
11772
11773         * mono-debug-debugger.c: Comment out a debugging g_message().
11774
11775 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11776
11777         * reflection.c, reflection.h: do not free custom attrs that are cached.
11778         * icall.c: use braces to make code clearer.
11779
11780 2004-06-11  Martin Baulig  <martin@ximian.com>
11781
11782         * class.h (MonoInflatedField): New type.
11783         (MonoClassField): Replaced `MonoType *generic_type' with
11784         `MonoInflatedField *generic_info'.
11785
11786         * icall.c
11787         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
11788
11789 2004-06-11  Martin Baulig  <martin@ximian.com>
11790
11791         * reflection.c (mono_image_create_method_token): Correctly encode
11792         varargs methods.
11793
11794 2004-06-11  Martin Baulig  <martin@ximian.com>
11795
11796         * metadata.c (mono_metadata_parse_method_signature): When parsing
11797         a MethodDef which has VarArgs, also set sentinelpos if we don't
11798         have any parameters.
11799
11800 2004-06-11  Martin Baulig  <martin@ximian.com>
11801
11802         * verify.c (mono_method_verify): In CEE_CALL, use
11803         mono_method_get_signature() to get the method's signature, unless
11804         we're a PInvoke method.
11805
11806 2004-06-10  Jackson Harper  <jackson@ximian.com>
11807
11808         * assembly.c: Use <path>/lib/mono/gac for the extra paths
11809         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
11810         logical name as the supplied path is just a prefix to the gac not
11811         the direct path to it.
11812         
11813 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
11814
11815         * reflection.c: make the token for a created method match
11816         the token of the MethodBuilder it was created from
11817         (IKVM requires this behaviour now).
11818
11819 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
11820
11821         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
11822         reflection.c, socket-io.c: leak fixes.
11823
11824 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
11825
11826         * icall.c: handle sentinel pos in vararg methods in position different
11827         from 0.
11828
11829 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11830
11831         * culture-info-tables.h: freshly generated.
11832
11833 2004-06-09  Martin Baulig  <martin@ximian.com>
11834
11835         * loader.c (mono_get_method_constrained): Call `mono_class_init
11836         (constrained_class)'.   
11837
11838 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
11839
11840         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
11841         any methods. Fixes #59629.
11842
11843 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11844
11845         * culture-info-tables.h: reflecting locale-builder updates.
11846
11847 2004-06-08  Dick Porter  <dick@ximian.com>
11848
11849         * object.h:
11850         * locales.c: Fixed compile warnings, including a real bug in
11851         CompareInfo_internal_compare.
11852         
11853 2004-06-08  Dick Porter  <dick@ximian.com>
11854
11855         * locales.c
11856         (ves_icall_System_Globalization_CompareInfo_internal_index):
11857         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
11858         Double-check the resuls of usearches, because ICU currently
11859         ignores most of the collator settings here.  Fixes bug 59720.
11860         
11861 2004-06-08  Dick Porter  <dick@ximian.com>
11862
11863         * locales.c
11864         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
11865         Fix memory leak and segfault-causing typo.  No idea how this one
11866         lasted so long without being noticed.
11867
11868 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
11869
11870         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
11871         any methods. Fixes #59629.
11872
11873 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11874
11875         * assembly.c:
11876         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
11877         own the critical section before). Removed dead code (that's done
11878         in the preload hook).
11879
11880         (mono_assembly_load_with_partial_name): call the preload hook.
11881
11882 2004-06-08  Martin Baulig  <martin@ximian.com>
11883
11884         * metadata.c (mono_metadata_signature_alloc): Default
11885         `sentinelpos' to -1.
11886
11887         * reflection.c (mono_image_get_array_token): Likewise.
11888
11889 2004-06-08  Martin Baulig  <martin@ximian.com>
11890
11891         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
11892
11893         * metadata.c (mono_metadata_parse_method_signature): When parsing
11894         a MethodDef which has VarArgs, set sentinelpos.
11895
11896         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
11897         `gint16' since we're using -1 for non-varargs methods.
11898
11899         * reflection.c
11900         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
11901         (method_encode_signature): Added varargs support.
11902         (method_builder_encode_signature): Likewise.
11903         (mono_image_get_varargs_method_token): New static method.
11904         (mono_image_create_method_token): New public method; this is
11905         called via an icall instead of mono_image_create_token() when
11906         calling a varargs method.       
11907
11908 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
11909
11910         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
11911
11912 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11913
11914         * culture-info-tables.h : Reflecting the latest locale-builder that
11915           fixed empty array representation ({} to {0}).
11916
11917 2004-06-07  Jackson Harper  <jackson@ximian.com>
11918
11919         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
11920         looking up extra gac paths. This allows MONO_GAC_PATH to act
11921         exactly like a prefix.
11922         
11923 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
11924
11925         * reflection.c (mono_reflection_type_from_name): Make a copy of the
11926         type name before modifying it. Fixes #59405.
11927
11928 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11929
11930         * culture-info.h: added fields for "all datetime patterns".
11931         * locales.c: (  ves_icall_System_Globalization_CultureInfo
11932           _construct_datetime_format ()): fill xxx_patterns fields.
11933         * object.h: added fields for "all datetime patterns" to
11934           MonoDateTimeFormatInfo.
11935         * culture-info-tables.h: reflecting locale-builder updates.
11936
11937 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
11938
11939         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
11940         the event has no add and remove methods. Fixes #59629.
11941
11942 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
11943
11944         * object.c: Fixed possible integer overflow when allocating large
11945         strings.
11946
11947 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
11948
11949         * culture-info-tables.h: reflecting locale-builder updates.
11950
11951 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
11952
11953         * culture-info-tables.h: reflecting locale-builder updates.
11954
11955 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
11956
11957         * culture-info-tables.h: reflecting locale-builder updates.
11958
11959 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
11960
11961         * threads.c: Made Thread.Sleep abortable.
11962
11963 2004-06-02  Martin Baulig  <martin@ximian.com>
11964
11965         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
11966
11967         * debug-mono-symfile.h: Bumped symbol file version number to 37.
11968
11969 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
11970
11971         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
11972
11973 2004-05-30  Jackson Harper  <jackson@ximian.com>
11974
11975         * reflection.c: Do not hardcode assembly versions or public key
11976         tokens anymore. All of this except the corlib section was dead
11977         code anyways.
11978         
11979 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
11980
11981         * object.c (mono_runtime_invoke_array): Automatically create boxed
11982         objects for byref valuetypes if needed. Fixes #59300.
11983         
11984         * object.c (mono_method_return_message_restore): Handle 
11985         MONO_TYPE_OBJECT as well.
11986
11987 2004-05-28  Jackson Harper  <jackson@ximian.com>
11988
11989         * reflection.c: The modified type encoding was causing build
11990         problems. Reverted for now.
11991         
11992 2004-05-28  Jackson Harper  <jackson@ximian.com>
11993
11994         * reflection.c/h: Take an assembly ref so that we dont create
11995         fully qualified names when encoding types in the same assembly as
11996         the custom attribute being emitted.
11997         * appdomain.c: Increment version number.
11998         
11999 2004-05-26  Duncan Mak  <duncan@ximian.com>
12000
12001         * icall.c
12002         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
12003         Set the full version number (major, minor, build, revision).
12004
12005 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
12006
12007         * marshal.c (emit_struct_conv): increment src/dst after blit
12008         (mono_marshal_get_managed_wrapper,
12009         mono_marshal_get_native_wrapper): make sure we have marshalling
12010         info before marshalling params (info computation affects
12011         blittable)
12012
12013         * class.c (class_compute_field_layout): correctly deal with
12014         blittable
12015         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
12016         value types (as per what windows dows by default)
12017         (mono_class_setup_mono_type): System.ValueType is blittable
12018         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
12019         blittable
12020
12021         * marshal.c (mono_marshal_load_type_info): flag types  as
12022         non-blittable if the native layout doesn't match the managed
12023         layout
12024
12025 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12026
12027         * appdomain.c: don't add stuff in the private search path that is
12028         above the application base. If application base is not set, there's
12029         no private search path.
12030
12031 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
12032
12033         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
12034         byref struct arguments in native->managed marshalling.
12035
12036 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
12037
12038         * marshal.c (mono_marshal_get_runtime_invoke): correctly
12039         cache methods using signature (special case for methods
12040         that are value type or string class)
12041         
12042         * image.c (mono_image_close): clean up allocated GSList's
12043         in runtime_invoke_cache.
12044
12045 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12046
12047         * mono-config.c: set the correct path for mono_cfg_dir on windows when
12048         there's no MONO_CFG_DIR environment variable defined.
12049
12050 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12051
12052         * threads.c: windows version must be >= 0x0500 to include OpenThread.
12053
12054 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
12055
12056         * threadpool.c: Really wait for 500ms after the async call, even if the wait
12057           is interrumped.
12058         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
12059           before waiting for it, and call CloseHandle after the wait to unref it.
12060           This will make sure that handles are not disposed too early.
12061
12062 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12063
12064         * appdomain.c:
12065         * appdomain.h:
12066         * icall.c: removed
12067         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
12068         needed now.
12069
12070         * object.c: se the application_base only for the domain that runs
12071         Main. Fixes bug #59216,
12072
12073 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12074
12075         * appdomain.c:
12076         * object.c: only the domain in which Main is run have
12077         SetupInformation.ConfigurationFile set, so moved a few lines from
12078         appdomain.c to object.c.
12079
12080 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12081
12082         * appdomain.c: we tried to load [name].(dll|exe), but according
12083         to bug #57710, we must also try [culture]/[name].(dll|exe) and
12084         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
12085         There's a test case attached to bug #58922.
12086
12087 2004-05-27  Dick Porter  <dick@ximian.com>
12088
12089         * icall.c:
12090         * file-io.c: Implemented icalls for locking and unlocking regions
12091         in a file.
12092         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
12093         FALSE on error (fixes both compiler warning and real bug.)
12094
12095 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
12096
12097         * culture-info-tables.h: reflecting locale-builder updates.
12098
12099           (Added missing ChangeLog entry for 05/26)
12100
12101 2004-05-27  Jackson Harper  <jackson@ximian.com>
12102
12103         * locales.c: Fix some cut and paste errors.
12104         
12105 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12106
12107         * mono-config.c: set the correct path for config. directory on windows.
12108
12109 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12110
12111         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
12112           on win32.
12113
12114 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12115
12116         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
12117         from pinvoke functions.
12118         
12119         * marshal.c (mono_ftnptr_to_delegate): Implement this.
12120
12121 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12122
12123         * culture-info-tables.h: reflecting locale-builder updates.
12124
12125 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12126
12127         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
12128         #59086.
12129
12130 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
12131
12132         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
12133         * icall.c: Modified icalls for RNG.
12134         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
12135         Windows (CryptoAPI).
12136
12137 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12138
12139         * locales.c: Fix build.
12140
12141 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12142
12143         * culture-info-tables.h: reflecting locale-builder updates.
12144
12145 2004-05-25  Jackson Harper  <jackson@ximian.com>
12146
12147         * locales.c: When creating the current culture use the $LANGs
12148         specific culture. So DateTimeFormat and NumberFormat entries are created.
12149         
12150 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12151
12152         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
12153         a char array as parameter.
12154
12155 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
12156
12157         * image.c: In mono_image_open(), always use an absolute path name to
12158           look for already loaded images.
12159
12160 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
12161
12162         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
12163         missing in the windows build (like older cygwin include files).
12164
12165 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
12166
12167         * icall.c: Fixed check for possible integer overflow in Buffer_
12168         BlockCopy icall. Replaced comments style // by /* */.
12169
12170 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
12171
12172         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
12173         
12174         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
12175         check after MONO_VTADDR. Fixes pinvoke2.exe.
12176
12177         * marshal.h marshal.c metadata.h: Add beginnings of support for
12178         ftnptr -> delegate marshalling.
12179
12180 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12181
12182         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12183         * threads.c: Fix warnings.
12184
12185 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12186
12187         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12188         * icall.c: Registered icalls for Suspend and Resume.
12189         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12190           Thread.Abort.
12191         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12192         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12193         * process.c: Use WaitForSingleObjectEx.
12194         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12195           checkpoints.
12196         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12197           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12198           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12199           background threads. Added basic support for Abort in Windows.
12200           Start new threads using a managed delegate invoke wrapper. This wrapper
12201           has an interruption checkpoint that is needed since an interruption
12202           can be requested before the thread leaves the unmanaged code that starts 
12203           the thread.
12204         * marshal.c: Added interruption checkpoint after every native call, and
12205           also before managed calls for wrappers called from unmanaged code to
12206           go into managed code.
12207         * object.h: Added new field in MonoThread to keep track of interruption
12208           requests.
12209
12210 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12211
12212         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12213         calls.
12214
12215 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12216
12217         * appdomain.c:
12218         * assembly.c:
12219         * gc.c:
12220         * locales.c:
12221         * mono-config.c:
12222         * rand.c: getenv -> g_getenv (windows!)
12223
12224         * process.c: complete_path is also used on non-windows platforms.
12225
12226 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12227
12228         * icall.c: new signature for Process_Start.
12229
12230         * process.[ch]: new signature for Process_Start. If we're on windows
12231         and UseShellExecute is false, we have to search for the program by
12232         ourselves if we don't get a full path.
12233
12234 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12235
12236         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12237         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12238
12239 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12240
12241         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12242         Fixes bug #58373.
12243
12244 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12245
12246         * process.c: use double quotes to quote program name and arguments on
12247         windows. Fixes bug #58575.
12248
12249 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12250
12251         * file-io.c: don't return "." and ".." when using windows Find*File.
12252
12253 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12254
12255         * marshal.c: Don't pass wrappers to message init because method 
12256         addressed used to lookup metadata. part of remoting[2|3] fix.
12257
12258 2004-05-15  Jackson Harper  <jackson@ximian.com>
12259
12260         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12261         path is essentially the same as MONO_PATH except that it points to
12262         GACs instead of lib directories.
12263         * loader.h: The user gac is gone so we dont need function to
12264         enable/disable it.
12265         * mono-config.c: user gac option is now gone.
12266         
12267 2004-05-15  Jackson Harper  <jackson@ximian.com>
12268
12269         * culture-info.h: Make defines more consistent, add calendar data
12270         to the culture info table.
12271         * culture-info-tables.h: Add basic calendar data. Basically
12272         everyone gets default gregorian until all the data is
12273         updated.
12274         * locales.c: Use the new consistent defines. Set calendar data for
12275         culture info objects.
12276         * object.h: add a field for calendar data to CultureInfo
12277         
12278 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12279
12280         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12281         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12282         a signature.
12283         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12284         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12285         an extra param that is the pointer of the method to invoke. The IL for
12286         the invoke method is no longer specific to the method, but to the
12287         signature of the method. Thus, we can share the same code for multiple
12288         methods. This reduces the number of methods that have to be compiled.
12289
12290 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12291
12292         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12293
12294         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12295
12296         * icall.c: Optimize Buffer.BlockCopy.
12297
12298 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12299
12300         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12301         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12302         quote). Changed them to "MMMM yyyy".
12303
12304 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12305
12306         * rand.c
12307         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12308
12309 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12310
12311         * reflection.h: Updated after changes to managed structures.
12312
12313         * appdomain.c: Bump corlib version.
12314
12315 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12316
12317         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
12318         windows.
12319
12320 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12321
12322         * Makefile.am: link to ../os/libmonoos.la on windows.
12323
12324         * assembly.c:
12325                 -If MONO_DEBUG, warn about non-existing directories in
12326                 MONO_PATH.
12327                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12328                 compile time variable.
12329                 -Removed init_default_path and call mono_set_rootdir from
12330                 libmonoos.a instead (windows only).
12331
12332         * assembly.h: declare mono_assembly_getrootdir().
12333
12334         * domain.c:
12335         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12336
12337         * loader.c: s/getenv/g_getenv/
12338
12339 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12340
12341         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12342
12343         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12344
12345         * metadata.h: Add new marshalling conversions.
12346
12347         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12348         function.
12349
12350         * reflection.c (mono_reflection_get_type): Lookup the type in all
12351         modules of a multi-module assembly. Fixes #58291.
12352
12353 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12354
12355         * threads.c: Before aborting a background, set the StopRequested
12356         state.  This avoids throwing the Abort exception.
12357         In mono_thread_manage, don't continue with the shutdown until all
12358         aborted threads have actually stopped.
12359
12360 2004-05-10  Jackson Harper  <jackson@ximian.com>
12361
12362         * locales.c: Remove the modifier from culture names.
12363         
12364 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12365
12366         * Makefile.am: monosn is not installed any more. It has been deprecated
12367         in favor of sn.
12368
12369 2004-05-07  Jackson Harper  <jackson@ximian.com>
12370
12371         * locales.c
12372         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12373         Fix array construction, add bailout if the length is 0.
12374
12375 2004-05-07  Dick Porter  <dick@ximian.com>
12376
12377         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12378         machine doesn't have a DNS entry.  Patch by Urs Muff
12379         (umuff@quark.com), fixes bug 57928.
12380
12381 2004-05-06  Jackson Harper  <jackson@ximian.com>
12382
12383         * reflection.c: Handle null PublicTokens properly. alloc mem for
12384         assembly names culture so we dont crash when freeing it.
12385         
12386 2004-05-06  Jackson Harper  <jackson@ximian.com>
12387
12388         * assembly.c: Check the usergac when loading with partial names.
12389         
12390 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12391
12392         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12393         does nothing for now (not required for Linux/Windows) but the class
12394         library can call it (and a newer or modified runtime could need it).
12395         * icall.c: Registred icall.
12396
12397 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12398
12399         * loader.c: prints a message on module loading error we set MONO_DEBUG
12400         environment variable.
12401
12402 2004-05-05  Jackson Harper  <jackson@ximian.com>
12403
12404         * appdomain.c: Handle PublicKeyToken=null properly.
12405         
12406 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12407
12408         * environment.c|h: Added icall ves_icall_System_Environment_
12409         GetOSVersionString to get the current OS version as a string.
12410         * icall.c: Registred icall.
12411
12412 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12413
12414         * object.c: in mono_object_get_virtual_method(), take into account that
12415         non-virtual methods don't have a slot in the vtable. Check needed when
12416         the object is a proxy.
12417
12418 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12419
12420         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
12421         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
12422
12423         * object.c (mono_class_compute_gc_descriptor): Fix warning.
12424
12425         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
12426         passed when a valuetype is expected.
12427
12428         * object.c (mono_unhandled_exception): Only set the exit code if the
12429         exception happens in the main thread. Fixes thread5.exe.
12430
12431         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
12432         invalid names. Fixes #58047.
12433
12434 2004-05-03  Jackson Harper  <jackson@ximian.com>
12435
12436         * assembly.c: This line was committed accidently and is unneeded.
12437         
12438 2004-05-03  Jackson Harper  <jackson@ximian.com>
12439
12440         * icall.c: Add new icall for Assembly::LoadWithPartialName
12441         * assembly.c/.h: new function that probes the GAC to load partial
12442         assembly names by Paolo Molaro.
12443         
12444 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12445
12446         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
12447         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
12448         (type_get_fully_qualified_name): Added PublicKeyToken when building a
12449         full type name.
12450
12451 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12452
12453         * appdomain.c: fixed check for 'neutral' culture and removed warning.
12454         * reflection.c: fix bug when parsing a full type name and Version is not
12455         the last thing in the string.
12456
12457 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
12458
12459         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
12460         crashes when it is freed.
12461
12462 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12463
12464         * assembly.c: print the compat warning to stderr.
12465
12466 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
12467
12468         * assembly.c (mono_assembly_load_references): Add a compatibility
12469         hack to run old applications that might be still referencing the
12470         3300-based assemblies, only do this for System.xxx.
12471
12472 2004-05-01  Jackson Harper  <jackson@ximian.com>
12473
12474         * appdomain.c: If the culture is neutral we set it to "".
12475         
12476 2004-04-29  Jackson Harper  <jackson@ximian.com>
12477
12478         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
12479
12480 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
12481  
12482         * string-icalls.c: added low overhead function for copying chars
12483         * icall.c: added needed icall for the above function
12484  
12485 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12486
12487         * icall.c: fix return value of get_global_assembly_cache.  Implemented
12488         Environment.GetLogicalDrives.
12489
12490 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
12491
12492         * rand.c: try and talk to egd or prngd
12493         for random bytes if opening devices fail.
12494
12495 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
12496
12497         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
12498         alignment for the type using the native alignment of its members 
12499         instead of using klass->min_align.
12500
12501         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
12502
12503 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12504
12505         * file-io.c:
12506         * socket-io.c: added check for sys/aio.h.
12507
12508 2004-04-28  Dick Porter  <dick@ximian.com>
12509
12510         * threads.c: Don't abort a thread thats already aborting, when
12511         terminating everything.
12512
12513 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12514
12515         * icall.c: added 2 new async calls for Socket.
12516
12517         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
12518         IO on *nix systems.
12519
12520         * threadpool.c: removed unused variable.
12521
12522 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
12523
12524         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
12525
12526 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12527
12528         * locales.c: put back string_invariant_tolower () and
12529         string_invariant_toupper ().
12530
12531 2004-04-26 David Waite <mass@akuma.org>
12532
12533         * file-io.h:
12534         * socket-io.h:
12535         * threads.h:
12536         * unicode.h: remove comma from end of enumeration declarations
12537
12538 2004-04-26 David Waite <mass@akuma.org>
12539
12540         * debug-mono-symfile.h:
12541         * decimal.c:
12542         * mono_debug.h:
12543         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
12544
12545
12546 2004-04-26  Jackson Harper  <jackson@ximian.com>
12547
12548         * appdomain.c: Increment version number.
12549         
12550 2004-04-26  Jackson Harper  <jackson@ximian.com>
12551
12552         * appdomain.c: Set assembly references public token value when
12553         PublicKeyToken is specified, not the hash_value. Free public token
12554         values when free assembly name data. Previously the public key
12555         token was hex decoded, however we are using hex encoded public key
12556         tokens, so this is not neccasary.
12557         * assembly.c: Lookup assemblies in the gac if their public token
12558         value is set. Add function to allow enabling user gac
12559         lookups. Specify whether or not the assembly was loaded from the
12560         GAC. Compare full assembly names when checking the cache for
12561         assemblies (Temporarily disabled see comment in code). Remove
12562         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
12563         specifies trace-loader they get extra info to stdout on the
12564         loading of assemblies.
12565         * image.h: Add a field for an assembly references public token
12566         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
12567         whether an assembly has been loaded from the GAC.
12568         * image.c: Remove a corlib -> mscorlib name mapping.
12569         * loader.h: Add function to enable/disable the user gac.
12570         * mono-config.c: Check if the usergac is enabled in the config
12571         file.
12572         * icall.c: New icall to determine whether or not an assembly has
12573         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
12574         * tabldefs.h: Add constant for assemblyref flag that specifies a
12575         full public key is used instead of a public token.
12576         * reflection.c: Remove mscorlib -> corlib mappings. Set
12577         PublicTokenValue instead of hash value. This value is a hex
12578         string so it does not need to be expanded.
12579
12580 2004-04-26  Martin Baulig  <martin@ximian.com>
12581
12582         * mono-debug-debugger.c (mono_debugger_initialize): Set
12583         `mono_debugger_initialized' before calling mono_debug_lock().
12584
12585 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
12586
12587         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
12588           InternalToUpper/InternalToLower.
12589         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
12590           removed invariant culture shortcut.  This is now done in managed code.
12591         * locales.c: (string_invariant_toupper/tolower) removed.
12592
12593 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12594
12595         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
12596         Added Poll internal call.
12597
12598         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
12599         call for Poll. Select was too heavy for polling a single socket.
12600
12601         * threadpool.[ch]: added mono_threadpool_cleanup.
12602         * threads.c: use it. Don't use Thread_Abort on windows.
12603
12604 2004-04-23  Martin Baulig  <martin@ximian.com>
12605
12606         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
12607
12608 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
12609
12610         * icall.c: Registred new icalls for key pair protection and added an
12611         icall for Environment.GetFolderPath on Windows.
12612         * security.c|h: Added new icalls for key pair protection.
12613
12614 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12615
12616         * socket-io.c: don't display the non-supported family warning for known
12617         families. Now this is not displayed on windows when checking support
12618         for IPv4/IPv6.
12619
12620 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12621
12622         * class.c: don't display the layout warning for static fields.
12623
12624 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
12625
12626         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
12627         * locales.c, locales.h: Added new icalls for culture-specific
12628         Char.ToLower and Char.ToUpper.
12629
12630 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12631
12632         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
12633         by David Waite.
12634
12635 2004-04-20  Martin Baulig  <martin@ximian.com>
12636
12637         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
12638         of the type name before passing it to mono_reflection_type_from_name().
12639
12640 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
12641
12642         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
12643         encodings here. Fixes #56965.
12644
12645 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
12646
12647         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12648         fix test on strstr result not that I can see anything that
12649         relies on the result.
12650
12651 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
12652
12653         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
12654         Fixes #57081.
12655
12656         * marshal.c (mono_marshal_get_string_encoding): New helper function.
12657
12658         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
12659         function to determine which marshalling to use for strings. Fixes
12660         #56965.
12661
12662         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
12663
12664         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
12665
12666 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
12667
12668         * icall.c: #include mono-config.h
12669
12670 2004-04-15  Jackson Harper  <jackson@ximian.com>
12671
12672         * culture-info-tables.h: Fix date formats for en-US culture.
12673         
12674 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
12675
12676         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
12677         ThreadPool.SetMinThreads.
12678         * threadpool.c: Implemented ThreadPool.GetMinThreads and
12679         ThreadPool.SetMinThreads.
12680
12681 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12682
12683         * mono-config.c: also load the .config file in the directory
12684         where the assembly was found.
12685
12686 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
12687
12688         * assembly.c: load per-assembly config files.
12689         * icall.c: decrapified code to get the config dir and moved to
12690         mono-config.c.
12691         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
12692         per-assembly config files. When doing a dll map lookup give precedence
12693         to the per-assembly data.
12694
12695 2004-04-14  Martin Baulig  <martin@ximian.com>
12696
12697         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
12698         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
12699         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
12700
12701         * mono-debugger-debugger.c: While the debugger is locked, remember
12702         whether the symbol tables have changes and send one single
12703         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
12704
12705 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
12706
12707         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
12708
12709         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
12710         function.
12711
12712         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
12713         account when marshalling string arrays. Fixes #56965.
12714
12715 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
12716
12717         * icall.c: Add new icalls mapping for security.
12718         * security.c|h: Add internal calls for WindowsIdentity,
12719         WindowsImpersonationContext and WindowsPrincipal.
12720
12721 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
12722
12723         * class.c: Added comment to ensure the System.MonoDummy class
12724         is removed when no longer necessary
12725
12726 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
12727
12728         * appdomain.c: Pass arguments to the bootstraping exceptions to
12729         minimize JITed methods at boot
12730
12731         * metadata.c (mono_exception_from_name_two_strings): Allow for the
12732         second string to be null.
12733
12734         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12735         Change the protocol to minimize the JIT methods at startup.  Now
12736         it Returns the internal codepage, if the value of "int_code_page"
12737         is 1 at entry, and we can not compute a suitable code page
12738         number, returns the code page as a string.
12739
12740 2004-04-13  Jackson Harper  <jackson@ximian.com>
12741
12742         * culture-info-tables.h: Fix number of decimal digits for all
12743         english locales.
12744
12745 2004-04-13  Jackson Harper  <jackson@ximian.com>
12746
12747         * icall.c: Clairfy out of sync error message. It is not always
12748         your corlib that is out of sync.
12749
12750 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
12751
12752         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
12753         properties when only the set accessor is overriden. Fixes #55874.
12754
12755 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
12756
12757         * assembly.c (mono_assembly_load_references): Make this thread safe.
12758         Fixes #56327.
12759
12760 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
12761
12762         * monosn.c: Add missing initialization calls.
12763
12764 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
12765
12766         * locales.c:
12767         ves_icall_System_Globalization_CultureInfo_construct_number_format
12768         Fix g_assert so it compiles on fussier compilers re int/ptr
12769         mismatch
12770
12771 2004-04-08  Dick Porter  <dick@ximian.com>
12772
12773         * socket-io.h:
12774         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
12775         53992.  Also rearrange the code so that the internal calls return
12776         an error value and exceptions are thrown from managed code.
12777
12778         * icall.c: Add type info to the socket icalls.
12779
12780 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12781
12782         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
12783         owes me a beer.
12784
12785 2004-04-07  Martin Baulig  <martin@ximian.com>
12786
12787         * class.c (mono_class_from_generic_parameter): Don't default
12788         `klass->parent' to `mono_defaults.object_type'.
12789
12790 2004-04-07  Martin Baulig  <martin@ximian.com>
12791
12792         * reflection.c (mono_reflection_initialize_generic_parameter): Set
12793         `param->pklass->reflection_info'.       
12794
12795 2004-04-07  Jackson Harper  <jackson@ximian.com>
12796
12797         * culture-info-tables.h: Fix date separator symbol.
12798         
12799 2004-04-07  Martin Baulig  <martin@ximian.com>
12800
12801         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
12802         from System.Type to System.MonoType.
12803
12804 2004-04-07  Martin Baulig  <martin@ximian.com>
12805
12806         * reflection.h
12807         (MonoReflectionGenericParam): Added `has_reference_type' and
12808         `has_value_type' fields.
12809
12810         * reflection.c (mono_image_get_generic_param_info): Encode the
12811         correct flags if we have the `class' or `struct' constraint.
12812
12813 2004-04-07  Martin Baulig  <martin@ximian.com>
12814
12815         * reflection.h
12816         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
12817
12818 2004-04-07  Jackson Harper  <jackson@ximian.com>
12819
12820         * appdomain.c: Revert extra patches, just wanted to bump the
12821         version number.
12822         
12823 2004-04-07  Jackson Harper  <jackson@ximian.com>
12824
12825         * Makefile.am: Add culture-info private headers.
12826         * icall.c: Add new icalls for contructing locales.
12827         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
12828         * locales.h: Declare new culture info construction methods.
12829         * object.h: Add new fields used to avoid the CultureMap to
12830         MonoCultureInfo.
12831         * culture-info.h: Definition of structs used in the culture info
12832         tables.
12833         * culture-info-tables.h: Autogenerated tables that contain culture
12834         info data. This file was generated with the locale-builder tool.
12835         * appdomain.c: Incement corlib version number.
12836         
12837 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
12838
12839         * appdomain.c: (mono_runtime_init) move mono_thread_init
12840         to before mono_object_new calls so critical sections
12841         are initialized before use.
12842
12843 2004-04-07  Martin Baulig  <martin@ximian.com>
12844
12845         * icall.c
12846         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
12847         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
12848         (ves_icall_MonoGenericParam_initialize): Removed.
12849         (monogenericparam_icalls): Removed.
12850         (generictypeparambuilder_icalls): Added new table for
12851         System.Reflection.Emit.GenericTypeParameterBuilder.
12852
12853         * reflection.c
12854         (mono_reflection_define_generic_parameter): Removed.
12855         (mono_reflection_initialize_generic_parameter): This is now called
12856         from GenericTypeParameterBuilder's .ctor.
12857
12858 2004-04-06  Martin Baulig  <martin@ximian.com>
12859
12860         * class.c (mono_class_init): Don't inflate nested classes in a
12861         generic instance.
12862         (mono_type_get_name_recurse): Include the generic arguments for
12863         generic instances and generic type declarations.
12864         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
12865         (_mono_class_get_instantiation_name): Removed.
12866         (mono_class_create_generic): Always use `gklass->name' as our name.
12867
12868         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
12869
12870         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
12871         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
12872         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
12873         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
12874         closed generic methods here.
12875
12876         * reflection.c
12877         (mono_reflection_generic_inst_get_nested_types): Removed.
12878         (inflate_mono_method): Copy the generic parameters from the
12879         MonoMethodHeader into out MonoGenericMethod.
12880
12881 2004-04-06  Martin Baulig  <martin@ximian.com>
12882
12883         * row-indexes.h
12884         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
12885
12886         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
12887
12888         * reflection.c (build_compressed_metadata): If we have any entries
12889         in the GenericParam, MethodSpec or GenericParamConstraint tables,
12890         set the header version to 1.1.
12891
12892 2004-04-06  Martin Baulig  <martin@ximian.com>
12893
12894         * class.c (mono_class_init): If we're a generic instance,
12895         initialize our nested classes, too.
12896         (_mono_class_get_instantiation_name): Deal with the new `!%d'
12897         suffix. 
12898
12899 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12900
12901         * process.c: quote the argument passed to the shell on windows.
12902
12903 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
12904
12905         * threads.c (mono_alloc_special_static_data): Allow this to be
12906         called during startup.
12907
12908 2004-04-02  Martin Baulig  <martin@ximian.com>
12909
12910         * icall.c
12911         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
12912
12913 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
12914
12915         * icall.c: Fix build.
12916
12917 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
12918
12919         * Makefile.am: Added security.c|h.
12920         * icall.c: Added icall for get_UserName;
12921         * security.c: New file for security related icalls. Added function
12922         get_UserName for System.Environment (fix #56144).
12923         * security.h: New. Header file for security.c
12924
12925 2004-04-02  Dick Porter  <dick@ximian.com>
12926
12927         * icall.c: Deleted the icalls that were obsoleted some time ago
12928         by the ICU string code, and which were mixed into the icall
12929         rearranging.  Fixes bug 55969.
12930
12931         * string-icalls.h: 
12932         * string-icalls.c: Deleted the code that those icalls reference.
12933
12934 2004-04-01  Martin Baulig  <martin@ximian.com>
12935
12936         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
12937
12938         * class.c (mono_class_from_generic_parameter): Don't set 
12939         TYPE_ATTRIBUTE_INTERFACE.
12940         (my_mono_class_from_generic_parameter): Likewise.
12941
12942 2004-04-01  Martin Baulig  <martin@ximian.com>
12943
12944         * loader.c (find_method): Added an optional `MonoClass *ic'
12945         argument to search in a specific interface.
12946         (mono_get_method_constrained): New public function.
12947
12948 2004-04-01  Martin Baulig  <martin@ximian.com>
12949
12950         * reflection.c (mono_image_get_generic_field_token): Use the
12951         `handleref' cache here.
12952
12953 2004-04-01  Martin Baulig  <martin@ximian.com>
12954
12955         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
12956
12957         * reflection.c (create_generic_typespec): Use the `typespec' hash
12958         here, not the `typeref' one.    
12959
12960 2004-04-01  Martin Baulig  <martin@ximian.com>
12961
12962         * class.c (mono_class_inflate_generic_type): Moved the
12963         functionality into a new static inflate_generic_type() which
12964         returns NULL if it didn't do anything.  Only increment the
12965         `mono_stats.inflated_type_count' if we actually inflated
12966         something.
12967         (mono_class_get_full): Check the classes type to see whether we
12968         need to inflate it; also inflate MONO_TYPE_(M)VAR.
12969
12970 2004-04-01  Jackson Harper  <jackson@ximian.com>
12971
12972         * reflection.c: Set culture for assembly references.
12973         
12974 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
12975
12976         * reflection.[ch], icall.[ch], Fix support for pinning variables.
12977
12978 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12979
12980         * assembly.c:
12981         (do_mono_assembly_open): the critical section also covers
12982         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
12983
12984 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12985
12986         * threads.c:
12987         (mono_manage_threads): abort the background threads when finishing.
12988         Fixes bug #47232.
12989
12990 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12991
12992         * gc.c: only close the done_event handle if there was no timeout.
12993         C-ified comments.
12994
12995 2004-03-30  Martin Baulig  <martin@ximian.com>
12996
12997         * icall.c (icall_entries): It's called "System.Activator", not
12998         "System.Activation".    
12999
13000 2004-03-30  Martin Baulig  <martin@ximian.com>
13001
13002         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
13003         (mono_class_create_from_typespec): Likewise.
13004
13005 2004-03-30  Martin Baulig  <martin@ximian.com>
13006
13007         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
13008         `has_ctor_constraint' and `initialized'.
13009
13010 2004-03-30  Martin Baulig  <martin@ximian.com>
13011
13012         * reflection.c (encode_new_constraint): New static function to add
13013         the constructor constraint attribute to a type parameter.
13014         (encode_constraints): Call encode_new_constraint() if necessary.
13015
13016         * reflection.h
13017         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
13018
13019         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
13020         
13021 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
13022
13023         * reflection.c, icall.c: add support for pinning variables. 
13024
13025 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
13026
13027         * marshal.c (mono_marshal_get_managed_wrapper):
13028         init bool local with zero rather than null.
13029
13030 2004-03-29  Martin Baulig  <martin@ximian.com>
13031
13032         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
13033         the "official" behavior here.
13034         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
13035
13036 2004-03-29  Martin Baulig  <martin@ximian.com>
13037
13038         * icall.c: Reflect latest API changes.
13039
13040 2004-03-29  Martin Baulig  <martin@ximian.com>
13041
13042         * loader.c (mono_get_method_from_token): Also call
13043         mono_metadata_load_generic_params () for abstract and interface
13044         methods; replace the type arguments in the method signature with
13045         the ones which are loaded from the metadata.
13046
13047 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
13048
13049         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
13050         of the lock is not the current thread. MS.NET don't do it, in spite of
13051         what the documentation says. See bug #56157.
13052
13053 2004-03-28  Martin Baulig  <martin@ximian.com>
13054
13055         * class.c (mono_class_init): Don't call init_properties() and
13056         init_events() for generic instances; set `prop->parent' when
13057         inflating properties.
13058
13059         * reflection.c (mono_generic_inst_get_object): Call
13060         `mono_class_init (ginst->klass)'.
13061         (mono_type_get_object): Only create a MonoGenericInst if your
13062         generic type is a TypeBuilder.
13063         (do_mono_reflection_bind_generic_parameters): Only set
13064         `ginst->is_dynamic' if our generic type is a TypeBuilder.
13065
13066 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
13067
13068         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
13069         Fixes #56091.
13070
13071 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13072
13073         * icall.c: added Kill_internal icall.
13074         * process.[ch]: added Kill_internal icall.
13075
13076 2004-03-25  Martin Baulig  <martin@ximian.com>
13077
13078         * class.h (MonoStats): Added `generic_instance_count',
13079         `inflated_method_count', `inflated_type_count' and
13080         `generics_metadata_size'.       
13081
13082 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13083
13084         * reflection.c: no warnings now.
13085
13086 2004-03-25  Martin Baulig  <martin@ximian.com>
13087
13088         * class.c (mono_class_get_full): New public function; does a
13089         mono_class_get(), but also takes a `MonoGenericContext *'.
13090
13091         * loader.c (mono_field_from_memberref): Renamed to
13092         `field_from_memberref', made static and added `MonoGenericContext *'
13093         argument.
13094         (mono_field_from_token): Added `MonoGenericInst *' argument.
13095         (method_from_memberef): Likewise.
13096         (mono_get_method_from_token): Likewise.
13097         (mono_get_method_full): New public function; does a
13098         mono_get_method(), but also takes a `MonoGenericContext *'.
13099
13100         * verify.c (mono_method_verify): Get the method's generic context
13101         and pass it to mono_field_from_token(), mono_get_method_full() and
13102         mono_class_get_full().
13103
13104 2004-03-25  Martin Baulig  <martin@ximian.com>
13105
13106         * class.c (mono_class_inflate_generic_type): Take a
13107         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
13108         `MonoGenericMethod *'.
13109
13110 2004-03-25  Martin Baulig  <martin@ximian.com>
13111
13112         * loader.h (MonoMethodInflated): Store the MonoGenericContext
13113         instead of the MonoGenericMethod here.
13114
13115 2004-03-25  Martin Baulig  <martin@ximian.com>
13116
13117         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
13118         each time we create a new MonoGenericInst, we also create a new
13119         context which points back to us.
13120
13121         * class.c (inflate_method): Use `ginst->context' instead of
13122         creating a new context.
13123
13124         * loader.c (method_from_memberref): Use
13125         `klass->generic_inst->context' instead of creating a new context.
13126
13127 2004-03-25  Martin Baulig  <martin@ximian.com>
13128
13129         * class.h (MonoGenericContext): New struct.
13130         (MonoGenericMethod): Removed `generic_inst'.
13131
13132         * class.c (mono_class_inflate_generic_method): Take a
13133         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
13134
13135 2004-03-25  Martin Baulig  <martin@ximian.com>
13136
13137         * loader.h (MonoMethodInflated): New typedef.
13138
13139         * metadata.h (MonoMethodSignature): Removed `gen_method', make
13140         `generic_param_count' consume just 30 bits, added `is_inflated'
13141         and `has_type_parameters' flags (one bit each).
13142
13143         * class.c (mono_class_inflate_generic_method): Create a
13144         MonoMethodInflated instead of a MonoMethodNormal and set
13145         `is_inflated' in the method signature.
13146
13147         * class.h (MonoGenericMethod): Removed `generic_method'.
13148
13149 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
13150
13151         * image.c: Make sure the name of a MonoImage is always an absolute path.
13152           This fixes bug #54415.
13153
13154 2004-03-24  Martin Baulig  <martin@ximian.com>
13155
13156         * class.c (mono_class_setup_vtable): If we're a generic instance,
13157         use our generic type's vtable size.
13158
13159 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
13160
13161         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
13162         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
13163         problems.
13164
13165 2004-03-23  Martin Baulig  <martin@ximian.com>
13166
13167         * class.h (MonoDynamicGenericInst): Added `int count_events' and
13168         `MonoEvent *events'.
13169
13170         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
13171         (typebuilder_icalls): Added "get_event_info"; calls
13172         mono_reflection_event_builder_get_event_info(). 
13173
13174         * reflection.c (mono_reflection_generic_inst_initialize): Added
13175         `MonoArray *events'.
13176         (mono_reflection_event_builder_get_event_info): New function.
13177
13178 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
13179
13180         * object.h: add mono_type_initialization_init
13181
13182         * object.c (mono_runtime_class_init): 
13183         implement class constructor synchronization rules
13184         to cope with threading issues.  
13185         add mono_type_initialization_init
13186
13187         * appdomain.c (mono_runtime_init): call 
13188         mono_type_initialization_init
13189
13190         * class.h: removing initializing field from MonoVTable
13191
13192 2004-03-23  Martin Baulig  <martin@ximian.com>
13193
13194         * class.c (my_mono_class_from_generic_parameter): Use
13195         `param->name' if it's not NULL. 
13196
13197 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13198
13199         * class.c: do not insert non-virtual methods in the vtable.
13200         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13201         that means the method is non-virtual. This never would have
13202         happened before.
13203
13204 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13205
13206         * profiler.c: Added lock for accessing coverage_hash.
13207
13208 2004-03-22  Martin Baulig  <martin@ximian.com>
13209
13210         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13211         `method->method->signature->generic_param_count != 0' to make it
13212         work for interface methods.
13213
13214 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13215
13216         * process.c: quote the string passed to the shell using g_shell_quote.
13217
13218 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13219
13220         * threads.c:
13221         (mono_threads_manage): don't remove the finalizer thread and self
13222         from the threads hash table so that mono_thread_manage can be called
13223         more than once.
13224
13225 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13226
13227         * process.c: quote the arguments when UseShellExecute is true. Fixes
13228         bug #55790.
13229
13230 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13231
13232         * threads.c: set mono_thread_detach as a cleanup routine for every
13233         thread. This way it's always executed upon thread termination, either
13234         aborted or finished normally. No more xsp hangs!
13235
13236 2004-03-17  Martin Baulig  <martin@ximian.com>
13237
13238         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13239         `int count_nested' and a `MonoType **nested'.
13240
13241         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13242         most of the functionality into a new static
13243         do_mono_reflection_bind_generic_parameters() and don't take a
13244         `MonoType *nested_in' argument any more.  Don't compute nested
13245         types here.
13246         (mono_reflection_generic_inst_get_nested_types): New public method
13247         to get nested types.
13248
13249         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13250         we're a nested class.
13251
13252         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13253         mono_reflection_generic_inst_get_nested_types() to compute the
13254         nested types.
13255
13256 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13257
13258         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13259         descriptive error message under windows.
13260         
13261 2004-03-17  Martin Baulig  <martin@ximian.com>
13262
13263         * class.c (dup_type): Added `const MonoType *original' argument;
13264         copy the attrs from the original type.
13265
13266 2004-03-17  Martin Baulig  <martin@ximian.com>
13267
13268         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13269         `m->generic_inst_cache' here.
13270
13271 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13272
13273         * exception.h exception.c: Add stack_overflow_exception.
13274
13275 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13276
13277         * threadpool.c:
13278         (overlapped_callback): call SetEvent *after* invoking the callback.
13279         No need to call CloseHandle.
13280
13281 2004-03-16  Martin Baulig  <martin@ximian.com>
13282
13283         * reflection.c (mono_image_get_fieldref_token): Take a
13284         `MonoReflectionField *' instead of a `MonoClassField *' and a
13285         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13286
13287 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13288
13289         * appdomain.c: don't add the culture to the filename we're looking for
13290         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13291
13292 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13293
13294         * locales.c: don't ignore symbols when doing case insensitive compares.
13295         Thanks Dick! Fixes bug #54046.
13296
13297         * threads.c: surround 'threads' usage with enter/leave in
13298         mono_thread_manage.
13299
13300 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13301
13302         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13303         implicitly marshalled as [Out]. Fixes #55450.
13304
13305         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13306         an exception.
13307
13308 2004-03-16  Martin Baulig  <martin@ximian.com>
13309
13310         * class.c (mono_class_from_generic_parameter): Use the actual
13311         parameter name. 
13312
13313 2004-03-16  Martin Baulig  <martin@ximian.com>
13314
13315         * reflection.c (type_get_signature_size): New static function.
13316         Compues the size of the type in a method signature.
13317         (method_get_signature_size): New static function; calls
13318         type_get_signature_size() to compute the actual size of the
13319         method's signature.
13320         (method_encode_signature): Use method_get_signature_size() to get
13321         the signature's size rather than using `nparams * 10'.
13322
13323 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13324
13325         * file-io.h: define here WapiOverlapped on windows. I don't want the
13326         regular OVERLAPPED one.
13327
13328         * file-io.c:
13329         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13330         Disabling AIO on windows.
13331
13332 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13333
13334         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13335         bug #55385.
13336
13337 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13338
13339         * appdomain.c: upgraded corlib version.
13340
13341         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13342         and BeginWrite. Allow opening files for asynchrnous operations.
13343
13344         * file-io.h: new struct that maps FileStreamAsyncResult.
13345         * icall.c: added new icalls.
13346         * process.[ch]: support setting child process environment variables
13347         and use the SHELL or COMSPEC when UseShellExecute is true.
13348
13349         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13350         callback for async. IO is here and also BindHandle.
13351
13352         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13353         from here.
13354
13355 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13356
13357         * reflection.c (create_custom_attr): Allow len == 0.
13358
13359         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13360         computation on big-endian machines.
13361
13362 2004-03-13  Martin Baulig  <martin@ximian.com>
13363
13364         * class.h (MonoGenericInst): Added `int count_ifaces'.
13365
13366         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13367         `ginst->count_ifaces' instead `klass->interface_count' since we
13368         may get called before the vtable is created.
13369
13370         * loader.c (mono_method_get_param_names): If we're a generic
13371         instance, return and don't initialize the class.
13372
13373         * reflection.c (mono_reflection_setup_generic_class): Don't call
13374         ensure_runtime_vtable().
13375         (mono_reflection_bind_generic_parameters): Set
13376         `ginst->count_ifaces'.
13377
13378 2004-03-11  Jackson Harper <jackson@ximian.com>
13379
13380         * icall.c:
13381         * unicode.c:
13382         * unicode.h: Remove unused System.Char icalls.
13383         
13384 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13385
13386         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13387         code when we P/Invoke the first library in Windows.Forms, instead
13388         of when we first open the assembly.
13389
13390         * assembly.c: Drop the lookup from here.
13391
13392 2004-03-10  Martin Baulig  <martin@ximian.com>
13393
13394         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13395         class for properties, fields and events.  Finally fixes #54945.
13396
13397 2004-03-10  Martin Baulig  <martin@ximian.com>
13398
13399         * metadata.c (mono_metadata_class_equal): New static function;
13400         checks whether two generic instances or two generic parameters are
13401         equal.
13402         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13403         compare classes.        
13404
13405 2004-03-10  Martin Baulig  <martin@ximian.com>
13406
13407         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13408
13409         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13410         argument and write it into the `reflection_info' field.
13411
13412         * icall.c
13413         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13414         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13415
13416 2004-03-09  Jackson Harper  <jackson@ximian.com>
13417
13418         * char-conversions.h: use 8 bits for numeric data its all we need
13419         * icall.c: numeric data is only 8 bits now.
13420
13421 2004-03-09  Martin Baulig  <martin@ximian.com>
13422
13423         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
13424
13425         * class.c (init_properties, init_events): Initialize the new
13426         `parent' field.
13427
13428         * reflection.c (typebuilder_setup_properties): Likewise.
13429         (typebuilder_setup_events): Likewise.
13430
13431         * reflection.h (MonoEventInfo): Replaced `parent with
13432         `declaring_type' and `reflected_type'.
13433
13434         * icall.c (ves_icall_get_property_info): Distinguish between
13435         declaring and reflected type.
13436         (ves_icall_get_event_info): Likewise.
13437
13438 2004-03-09  Martin Baulig  <martin@ximian.com>
13439
13440         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
13441         (ves_icall_Type_GetField): Correctly set field->klass.
13442
13443 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
13444
13445         * loader.h: Fix warning.
13446
13447 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
13448
13449         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
13450         library routine if present.  Notice that it will still continue
13451         executing even if its missing, for those working on the Gtk#
13452         edition of Windows.Forms.
13453
13454         * assembly.c (do_mono_assembly_open): If loading the
13455         System.Windows.Forms call mono_loader_wini_init.
13456
13457 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
13458
13459         * class.h: Added MonoRemoteClass struct.
13460         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
13461         function for MonoStrings.
13462         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
13463         Added internal call for getting the proxy type.
13464         * marshal.c: Get the type of transparent proxies from its remote_class.
13465         Added methods that generate the IL for type checks and casts:
13466         mono_marshal_get_isinst, mono_marshal_get_castclass, 
13467         mono_marshal_get_proxy_cancast.
13468         * marshal.h: Declaration of the previous new methods.
13469         * object.c: Added new moethods for creating and updating MonoRemoteClass
13470         instances: mono_remote_class, mono_upgrade_remote_class, 
13471         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
13472         * verify.c: FIx transparent_proxy_fields layout.
13473         * appdomain.c: Bump corlib version.
13474
13475 2004-03-04  Jackson Harper  <jackson@ximian.com>
13476
13477         * icall.c: Add icall to access char conversion tables.
13478         * char-conversions.h: Character conversion tables.
13479         * Makefile.am: Add char-conversions.h private header file.
13480         
13481 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
13482
13483         * appdomain.c (unload_thread_main): Increase unloading timeout to
13484         10 sec as a temporary workaround for Nant problems.
13485
13486 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
13487
13488         * gc.c: Add checks for GC_enable and GC_disable.
13489
13490         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
13491         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
13492         (bug #54988).
13493         
13494 2004-02-27  Martin Baulig  <martin@ximian.com>
13495
13496         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13497         `MonoReflectionType *' instead of a `MonoType *'.
13498
13499 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
13500
13501         * gc.c (run_finalize): Avoid finalizing the object representing the
13502         finalizer thread.
13503         (finalizer_thread): Fix warning.
13504
13505 2004-02-25  Martin Baulig  <martin@ximian.com>
13506
13507         * class.c (_mono_class_get_instantiation_name): Added `int offset'
13508         argument for nested types.
13509         (mono_class_create_generic): Added support for nested generictypes.
13510
13511         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
13512         `GList *nested'.
13513
13514         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
13515
13516         * reflection.c (method_encode_signature): Increase the minimum
13517         value of `size' from 10 to 11.
13518         (mono_reflection_bind_generic_parameters): Take `int type_argc'
13519         and `MonoType **types' arguments instead of the `MonoArray
13520         *types'; added `MonoType *nested_in'.  Recursively instantiate
13521         nested classes. 
13522
13523 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
13524
13525         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
13526         stack_overflow_ex members which are used by exception handling.
13527
13528         * appdomain.c (mono_runtime_init): Initialize the new members.
13529
13530         * gc.c (mono_gc_enable): New helper function.
13531         * gc.c (mono_gc_disable): New helper function.
13532
13533 2004-02-23  Martin Baulig  <martin@ximian.com>
13534
13535         * icall.c: I must have been really stupid - make it actually work
13536         this time ;-)
13537
13538 2004-02-23  Martin Baulig  <martin@ximian.com>
13539
13540         * loader.c (method_from_memberref): Only inflate the method if
13541         it's in another klass.
13542
13543 2004-02-23  Martin Baulig  <martin@ximian.com>
13544
13545         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
13546         (mono_class_init): If we're a generic instance and an interface,
13547         compute `class->interface_id'; also create `class->interfaces'
13548         here and inflate them.
13549
13550         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
13551         `ginst->is_open'.
13552         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
13553
13554         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
13555
13556 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
13557
13558         * reflection.c (method_encode_code): Improved the error message
13559         generated by the exception.
13560
13561 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13562
13563         * icall.c: Martin did not do what he said in the ChangeLog for
13564         2004-02-18, but put back the changes for properties and events.
13565         Commenting those changes out again and adding comment to bug #54518.
13566         
13567         * process.c: removed warning.
13568
13569 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
13570
13571         * marshal.c (emit_struct_conv): Print an error message instead of
13572         asserting when a type does not have the StructLayout attribute.
13573
13574 2004-02-20  Martin Baulig  <martin@ximian.com>
13575
13576         * reflection.c (mono_type_get_object): Also use the cache for
13577         generic instances.
13578         (mono_reflection_bind_generic_parameters): Always compute
13579         `ginst->ifaces'.        
13580
13581 2004-02-20  Martin Baulig  <martin@ximian.com>
13582
13583         * class.h (MonoGenericMethod): Removed `klass'.
13584
13585         * class.c (mono_class_inflate_generic_method): Added `MonoClass
13586         *klass' argument.
13587
13588 2004-02-20  Martin Baulig  <martin@ximian.com>
13589
13590         * reflection.c (method_encode_methodspec): Actually use the
13591         uninflated signature for the memberref.
13592
13593 2004-02-20  Martin Baulig  <martin@ximian.com>
13594
13595         * class.h (MonoGenericMethod): Removed `declaring'.
13596
13597         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
13598         is NULL, compute it here.
13599
13600 2004-02-20  Martin Baulig  <martin@ximian.com>
13601
13602         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
13603
13604         * metadata.c (mono_metadata_generic_inst_hash): New method.
13605         (mono_metadata_generic_inst_equal): New method.
13606
13607         * reflection.c (mono_reflection_bind_generic_parameters): Use the
13608         `klass->image->generic_inst_cache' cache to avoid creating
13609         duplicate MonoGenericInst's.
13610
13611         * class.c (mono_class_inflate_generic_type): Use the cache.
13612
13613 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
13614
13615         * object.c: fixed gc descriptor calculation for embedded valuetypes.
13616
13617 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13618
13619         * icall.c: added Socket.WSAIoctl icall.
13620
13621         * socket-io.[ch]: implemented
13622         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
13623
13624 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
13625
13626         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
13627
13628 2004-02-18  Urs C Muff  <umuff@quark.com>
13629
13630         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
13631         this work on PPC and other big-endian architectures.
13632
13633         * debug-mono-symfile.h: Prepended the names of all the `guint32'
13634         fields with an underscore to make sure they're only accessed by
13635         the read32() macro.
13636
13637 2004-02-18  Martin Baulig  <martin@ximian.com>
13638
13639         * icall.c: Put the klass->refclass changes back for methods and
13640         fields, but not for properties and events.  We're currently not
13641         distinguishing between DeclaringType and ReflectedType for
13642         properties and events, that's what caused the regressions.
13643
13644 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13645
13646         * object.c:
13647         (mono_async_result_new): the handle can be NULL.
13648
13649         * threadpool.c: Use an event instead of a semaphore, don't initialize
13650         it until needed. This saves quite a few semaphores from being created
13651         when using the threadpool.
13652
13653 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
13654
13655         * object.c (mono_string_is_interned_lookup): Fix interning of long
13656         strings. Fixes #54473.
13657
13658         * domain.c (ldstr_equal): Optimize if the two strings are equal.
13659
13660         * icall.c: Revert the klass->refclass changes since they introduce
13661         regressions (bug #54518).
13662
13663 2004-02-18  Martin Baulig  <martin@ximian.com>
13664
13665         * class.c (mono_class_init): If we're a generic instance and don't
13666         come from a TypeBuilder, inflate our members here.
13667         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
13668         (mono_class_create_generic): New public method.
13669         (mono_class_initialize_generic): Removed.
13670         (get_instantiation_name): Renamed to
13671         _mono_class_get_instantiation_name() and made it public.
13672
13673 2004-02-18  Martin Baulig  <martin@ximian.com>
13674
13675         * class.c (mono_class_inflate_generic_type): Clear the new
13676         instance's `nginst->klass' when inflating a generic instance.
13677         (mono_class_is_subclass_of): Added (basic) support for generic
13678         instances.
13679
13680 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
13681
13682         * appdomain.h, domain.c: use a MonoCodeManager instead of a
13683         MonoMempool to hold compiled native code.
13684
13685 2004-02-17  Martin Baulig  <martin@ximian.com>
13686
13687         * class.h (MonoDynamicGenericInst): Added `count_properties' and
13688         `properties'.
13689
13690         * reflection.c (mono_reflection_generic_inst_initialize): Added
13691         `MonoArray *properties' argument.
13692
13693         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
13694
13695 2004-02-17  Martin Baulig  <martin@ximian.com>
13696
13697         * icall.c (ves_icall_Type_GetFields): Renamed to
13698         ves_icall_Type_GetFields_internal() and added a
13699         `MonoReflectionType *rtype' argument; pass it to
13700         mono_field_get_object() to set the field's "reflected" type.
13701         (ves_icall_Type_GetConstructors): Likewise.
13702         (ves_icall_Type_GetEvents): Likewise.
13703         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
13704         argument; pass it to mono_method_get_object() to set the method's
13705         "reflected" type.       
13706
13707 2004-02-17  Martin Baulig  <martin@ximian.com>
13708
13709         * class.h (MonoDynamicGenericInst): New type.
13710         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
13711
13712         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
13713         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
13714         (ves_icall_MonoGenericInst_GetFields): New interncall.
13715
13716         * class.c (mono_class_from_generic): Don't call
13717         mono_class_initialize_generic() if this is a dynamic instance;
13718         ie. it's being created from a TypeBuilder.
13719         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
13720         `class->byval_arg.type'.
13721
13722         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
13723         to `inflate_method' and made static.
13724         (mono_reflection_inflate_field): Removed.
13725         (mono_reflection_generic_inst_initialize): New public method.
13726
13727         * reflection.h (MonoReflectionGenericInst): Removed `methods',
13728         `ctors' and `fields'; added `initialized'.
13729
13730 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
13731
13732         * debug-helpers.c (mono_method_full_name): Fix output for empty
13733         namespaces.
13734
13735 2004-02-12  Martin Baulig  <martin@ximian.com>
13736
13737         * class.h (MonoClassField): Added `MonoType *generic_type'.
13738
13739         * reflection.c (mono_image_get_fieldref_token): Added support for
13740         instantiated generic types.
13741         (field_encode_inflated_field): Removed.
13742         (mono_image_get_inflated_field_token): Removed.
13743         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
13744
13745         * reflection.h (MonoReflectionInflatedField): Removed.
13746
13747 2004-02-12  Martin Baulig  <martin@ximian.com>
13748
13749         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
13750         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
13751
13752         * reflection.c (mono_image_get_methodspec_token): Take a
13753         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
13754         (mono_image_create_token): Check whether we have a
13755         `method->signature->gen_method' and call
13756         mono_image_get_methodspec_token() if appropriate.
13757         (inflated_method_get_object): Removed.
13758         (mono_reflection_bind_generic_method_parameters): Return a
13759         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
13760         (mono_reflection_inflate_method_or_ctor): Likewise.
13761
13762         * reflection.h (MonoReflectionInflatedMethod): Removed.
13763
13764 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
13765
13766         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
13767         for custom valuetype marshalling.
13768
13769         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
13770
13771 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13772
13773         * icall.c: fixed WSAGetLastError_internal name.
13774
13775 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
13776
13777         * threads.c (mono_thread_attach): Allow this to be called multiple
13778         times for a thread.
13779         
13780         * threads.c (build_wait_tids): Do not wait for ourselves.
13781
13782         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
13783         appdomain list is empty.
13784
13785         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
13786         memory returned by mono_string_builder_to_utf16, since it points into
13787         managed memory. Thanks to Bernie Solomon for noticing this.
13788
13789         * icall.c: Add AppDomainSetup icalls.
13790
13791         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
13792
13793         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
13794         types.
13795
13796         * reflection.c (reflection_methodbuilder_to_mono_method): Save
13797         custom attributes to the method_aux struct. Also fix array indexes etc.
13798
13799         * loader.c (mono_method_get_param_names): Make dynamic case work again.
13800         
13801 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
13802
13803         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
13804         (both static and runtime) and reduce startup time.
13805
13806 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
13807
13808         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
13809         AsAny marshalling conversion instead of crashing.
13810
13811         * marshal.c: Fix warnings.
13812
13813 2004-02-09  Martin Baulig  <martin@ximian.com>
13814
13815         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
13816
13817         * reflection.h (MonoReflectionInflatedMethod): Removed the
13818         `declaring' field, it's now in the unmanaged MonoGenericMethod.
13819
13820         * reflection.c (method_encode_methodspec): Removed the `method'
13821         argument; we get it from `gmethod->declaring'.
13822         (inflated_method_get_object): Removed the `declaring' argument.
13823
13824 2004-02-09  Martin Baulig  <martin@ximian.com>
13825
13826         * class.h (MonoGenericMethod): New type.
13827         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
13828         `generic_method'.
13829
13830         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
13831         a `MonoGenericMethod *gen_method' one.
13832
13833         * class.c (mono_class_inflate_generic_type): Take an additional
13834         `MonoGenericMethod * argument.  This is only non-NULL if we're
13835         inflating types for a generic method.   
13836         (mono_class_inflate_generic_signature): Renamed to
13837         inflate_generic_signature() and made static; take a
13838         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
13839         (inflate_generic_header): Take a `MonoGenericMethod *' argument
13840         instead of a `MonoGenericInst *' one.
13841         (mono_class_inflate_generic_method): Likewise.
13842
13843         * reflection.c (encode_generic_method_sig): Take a
13844         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
13845         (method_encode_methodspec): Likewise.
13846         (inflated_method_get_object): Likewise. 
13847
13848         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
13849         field with a `MonoGenericMethod *gmethod' one.  
13850
13851 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
13852
13853         * class.h (mono_class_has_parent): add parens to expansion
13854         so you can ! this.
13855
13856 2004-02-08  Martin Baulig  <martin@ximian.com>
13857
13858         * image.h (MonoImage): Removed `generics_cache'.
13859
13860         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
13861         instead of a `MonoType *' argument; removed the `inflate_methods'
13862         argument.  Don't inflate methods here.
13863
13864         * loader.c (find_method): If it's a generic instance, call
13865         mono_class_init() on the `sclass->generic_inst->generic_type'.
13866
13867         * metadata.c (mono_type_size): Make this work on uninitialized
13868         generic instances; call it on the `ginst->generic_type's class.
13869
13870         * reflection.c (mono_reflection_bind_generic_parameters): Call
13871         mono_class_from_generic() to create the `ginst->klass'.
13872
13873 2004-02-08  Martin Baulig  <martin@ximian.com>
13874
13875         * class.h (MonoClass): Changed type of `generic_inst' from
13876         `MonoType *' to `MonoGenericInst *'.
13877
13878 2004-02-08  Martin Baulig  <martin@ximian.com>
13879
13880         * icall.c (ves_icall_Type_BindGenericParameters): Just call
13881         mono_type_get_object(), this is now creating a `MonoGenericInst'
13882         for MONO_TYPE_GENERICINST.
13883         (ves_icall_MonoGenericInst_GetParentType): Likewise.
13884         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
13885
13886         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
13887         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
13888         (inflated_method_get_object): Added `MonoClass *refclass' argument.
13889         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
13890         and reflected type.
13891
13892         * reflection.h (MonoReflectionInflatedMethod): Removed
13893         `declaring_type' and `reflected_type'.
13894
13895 2004-02-08  Martin Baulig  <martin@ximian.com>
13896
13897         * class.h (MonoGenericInst): Added `MonoType *parent' and
13898         `MonoType **ifaces'.
13899
13900         * reflection.h (MonoReflectionGenericInst): Removed `klass',
13901         `parent' and `interfaces'.
13902
13903         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13904         `MonoType *' argument and return a `MonoType *'.
13905
13906         * icall.c
13907         (ves_icall_MonoGenericInst_GetParentType): New interncall.
13908         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
13909
13910 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
13911
13912         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
13913         valuetype marshalling.
13914
13915 2004-02-06  Martin Baulig  <martin@ximian.com>
13916
13917         * class.c
13918         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
13919         (my_mono_class_from_generic_parameter): Likewise.
13920
13921 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
13922
13923         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
13924         contents of the symbol files lazily.
13925
13926         * object.h (MonoThread): Add 'name' and 'name_len' fields.
13927
13928         * threads.h threads.c icall.c: New icalls for getting and setting the
13929         threads name.
13930
13931 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
13932
13933         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
13934         Raise an exception when the domain is not found.
13935
13936 2004-02-03  Martin Baulig  <martin@ximian.com>
13937
13938         * reflection.c (mono_image_get_methodspec_token): Use the
13939         uninflated signature; fixes gen-33.
13940
13941 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
13942
13943         * gc.c threads.c: Make the finalizer thread a normal managed thread so
13944         the finalizer code can use thread functionality.
13945
13946         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
13947         the finalizer thread.
13948
13949         * threads.c: Make some functions more robust.
13950
13951         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
13952
13953         * metadata.h: Add new marshalling conventions.
13954
13955         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
13956         stringbuilder marshalling. Fixes #53700.
13957
13958         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
13959
13960         * reflection.c (mono_image_get_type_info): Save declarative security
13961         info.
13962
13963         * reflection.c (mono_image_get_field_info): Handle uninitialized 
13964         unmanaged fields as well.
13965
13966         * appdomain.c: Bump corlib version.
13967
13968 2004-02-01  Martin Baulig  <martin@ximian.com>
13969
13970         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
13971         method type arguments.  
13972
13973 2004-01-30  Duncan Mak  <duncan@ximian.com>
13974
13975         * marshal.h: Add prototype for
13976         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
13977         and
13978         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
13979         fix the build.
13980
13981 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
13982
13983         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
13984         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
13985
13986 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
13987
13988         * marshal.c (mono_marshal_get_native_wrapper): Add support for
13989         custom marshalling of valuetypes.
13990
13991         * marshal.c: Fix some warnings.
13992
13993 2004-01-29  Martin Baulig  <martin@ximian.com>
13994
13995         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
13996         for generic method parameters.
13997
13998         * reflection.c (method_encode_methodspec): Write the uninflated
13999         signature into the methodspec table.
14000         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
14001         is always the uninflated method.
14002         (reflection_methodbuilder_to_mono_method): Copy the generic
14003         parameters from the MethodBuilder into `header->gen_params'.
14004
14005 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14006
14007         * class.c (mono_class_from_generic_parameter): Fix warning.
14008
14009 2004-01-27  Martin Baulig  <martin@ximian.com>
14010
14011         * class.c (mono_class_from_generic_parameter): Don't create
14012         `klass->methods' here.  
14013
14014 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
14015
14016         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
14017         extension since it does not work with libraries named lib<FOO>.dll.so.
14018
14019 2004-01-25  Martin Baulig  <martin@ximian.com>
14020
14021         * class.c (mono_class_inflate_generic_type): Added support for
14022         MONO_TYPE_GENERICINST.
14023
14024         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
14025         inflate methods on open constructed types.      
14026
14027 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14028
14029         * object.c: fire ProcessExit event in the root AppDomain after running
14030         Main. Fixes bug #53299.
14031
14032 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
14033
14034         * socket-io.c: include the new socket-wrappers.h header.
14035         Use the wrappers instead of the unix socket functions to make the code
14036         more clear.
14037
14038 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
14039
14040         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
14041
14042         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14043         Fixes #22532.
14044
14045 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
14046
14047         * reflection.c (mono_image_create_pefile): Handle the case when the
14048         entry point is not a MethodBuilder.
14049
14050         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14051         field to ReflectionMethod since it is not allways a builder.
14052
14053         * reflection.c (type_get_fully_qualified_name): New helper function to
14054         return the fully qualified name of a type.
14055
14056         * reflection.c (encode_marshal_blob): Always emit the fully qualified
14057         type name for custom marshallers.
14058
14059         * reflection.c (mono_marshal_spec_from_builder): Ditto.
14060
14061         * class.c (mono_class_setup_vtable): If a parent class already 
14062         implements an interface, use the implementing methods from that class.
14063         Fixes #53148.
14064
14065 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14066
14067         * threadpool.c: just return instead of ExitThread to allow for thread
14068         clean up earlier.
14069
14070 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
14071
14072         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
14073         when closing resource modules.
14074
14075         * reflection.c (mono_image_create_pefile): Handle the case when the
14076         entry point is not a MethodBuilder.
14077
14078         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14079         field to ReflectionMethod since it is not allways a builder.
14080
14081 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14082
14083         * marshal.c (mono_marshal_get_managed_wrapper): 
14084         mono_marshal_alloc takes native int so CONV_I
14085         the arg for 64bits.
14086
14087 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
14088
14089         * reflection.c (fixup_cattrs): New function to fixup the methoddef
14090         tokens in the cattr table. Fixes #53108.
14091
14092 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14093
14094         * loader.c: don't trim ".dll" before looking up in the config file.
14095         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
14096
14097 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
14098
14099         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
14100         Return the module which contains the resource as well.
14101         (ves_icall_System_Reflection_Module_Close): New icall.
14102
14103         * appdomain.c: Bump corlib version number.
14104
14105         * image.c (mono_image_addref): New public function.
14106
14107         * assembly.c: Call mono_image_addref.
14108
14109         * reflection.c (mono_module_get_object): Increase reference count of 
14110         the image.
14111
14112         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14113         Fixes #22532.
14114
14115         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
14116         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
14117         proper exceptions on DllImport problems.
14118
14119 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
14120
14121         * class.c, metadata.c: eliminate CSIZE macro.
14122
14123 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
14124
14125         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
14126         * object.h: Added async_callback field in MonoAsyncResult.
14127         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
14128         * verify.c: Added async_callback in MonoAsyncResult layout.
14129
14130 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
14131
14132         * reflection.c (mono_reflection_get_custom_attrs): Add support
14133         for Modules.
14134
14135 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14136
14137         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
14138         marshalling.
14139         (mono_marshal_method_from_wrapper): Add null pointer check.
14140
14141 2004-01-16  Martin Baulig  <martin@ximian.com>
14142
14143         * debug-mono-symfile.h: Set version number to 36 and reflect
14144         latest symbol writer changes.
14145
14146 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14147
14148         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
14149         multi-dimensional arrays.
14150         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
14151         (mono_class_from_mono_type): Use bounded_array_class_get.
14152         
14153         * class.c (mono_bounded_array_class_get): New function which takes
14154         a 'bounded' bool argument to distinguish vectors from one dimensional
14155         arrays.
14156
14157         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
14158         bounded_array_class_get if the array has bounds.
14159
14160         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14161         Search modules loaded using AssemblyBuilder:AddModule as well.
14162
14163 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14164
14165         * appdomain.c: increased corlib version.
14166         * filewatcher.c: removed g_print.
14167         * icall.c:
14168         (get_property_info): only allocate what is actually requested.
14169         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
14170
14171 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14172
14173         * Makefile.am: added filewatcher.[ch]
14174         * filewatcher.[ch]: FileSystemWatcher runtime support.
14175         * icall.c: added new FSW icalls.
14176
14177 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
14178
14179         * string-icalls.c: fix stringbuilder regression as suggested by
14180         Iain McCoy <iain@mccoy.id.au>.
14181
14182 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14183
14184         * process.c (process_read_stringtable_block): Recognize '007f' as
14185         a language neutral stringtable block.
14186
14187 2004-01-12  Patrik Torstensson
14188
14189         * object.h (MonoStringBuilder) : Changed layout to support our
14190         new stringbuilder class.
14191         * marshal.c: Change marshalling to support the new layout of 
14192         string builder.
14193         * appdomain.c: increased version number because new layout of
14194         string builder.
14195
14196 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14197
14198         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14199         assembly name as an string instead of an AssemblyName, since it is
14200         easier to extract info from it.
14201
14202         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14203         the culture subdirectories too. Fixes #52231.
14204
14205 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14206
14207         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14208         It takes 2 new parameters with an optional name for the method to look
14209         for and case ignoring info.
14210
14211         * threadpool.c: removed unused variable.
14212
14213 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14214
14215         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14216         It takes 2 new parameters with an optional name for the property to look
14217         for and case ignoring info.
14218         Fixes bug #52753.
14219
14220 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14221
14222         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14223         Fix #52451.
14224
14225 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14226
14227         * appdomain.c:
14228         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14229         Fixes bug #52630.
14230
14231 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14232
14233         * reflection.c: Add support for more than one unmanaged resource.
14234
14235         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14236         in field->def_value, as done in all other cases.
14237
14238         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14239         TypeBuilders.
14240
14241         * reflection.c (mono_reflection_create_runtime_class): Remove 
14242         errorneous assignment to klass->element_class, since it is already
14243         done in mono_reflection_setup_internal_class.
14244
14245 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14246
14247         * gc.c: added missing LeaveCriticalSection.
14248         * icall.c: indented a couple of lines.
14249         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14250         if we call EndInvoke inside a callback. Fixes bug #52601.
14251
14252 2004-01-07  Martin Baulig  <martin@ximian.com>
14253
14254         * mono-debug-debugger.h
14255         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14256
14257 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14258
14259         * appdomain.c: Use messages in NotImplementedException.
14260
14261         * exception.c (mono_get_exception_not_implemented): Now this takes
14262         a message argument.
14263
14264         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14265         exception instead of g_asserting an aborting when something is not
14266         implemented.
14267
14268         Add some inline docs.
14269
14270 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14271
14272         * reflection.h: Update after changes to object layout.
14273
14274         * reflection.c: Implement saving of unmanaged aka win32 resources.
14275
14276         * appdomain.c: Bump version number.
14277
14278         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14279         Handle missing domains gracefully.
14280
14281 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14282
14283         * file-io.c : On Windows, there are much more invalid_path_chars.
14284
14285 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14286
14287         * class.h, object.c: prepare for GetType () speedup.
14288
14289 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14290
14291         * profiler.c: workaround for --profile null reference exception on
14292           cygwin. Patch by Patrik Torstensson.
14293
14294 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14295
14296         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14297         make work for unaligned access.
14298
14299 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14300
14301         * class.c: small cleanup (class->fields [i] -> field).
14302         * image.c: check address of metadata is valid.
14303
14304 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14305
14306         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14307         search the list of loaded assemblies.
14308
14309         * reflection.c (mono_reflection_type_from_name): Use 
14310         mono_assembly_loaded instead of mono_image_loaded.
14311
14312         * reflection.c: Fix warnings.
14313
14314 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
14315
14316         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
14317         is dynamic. This is needed since an assembly can contain both dynamic and
14318         non-dynamic images.
14319
14320         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
14321         assembly->dynamic.
14322
14323         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14324
14325         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14326         to store modules loaded using AddModule.
14327
14328         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14329         on Modules.
14330
14331         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14332
14333         * reflection.c (mono_image_fill_export_table_from_module): New function to
14334         fill out the EXPORTEDTYPES table from a module.
14335
14336         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14337         into a separate function. Also handle loaded non-dynamic modules.
14338
14339         * reflection.c (mono_image_basic_init): Fix memory allocation.
14340
14341         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14342
14343         * assembly.c (mono_assembly_load_references): Make this public.
14344
14345 2003-12-19  Martin Baulig  <martin@ximian.com>
14346
14347         * class.c (mono_class_initialize_generic): Made this static, take
14348         a `MonoGenericInst *' instead of a `MonoClass *'.
14349         (mono_class_from_generic): Call mono_class_initialize_generic()
14350         unless we're already initialized or being called from
14351         do_mono_metadata_parse_generic_inst().
14352
14353         * class.h (MonoGenericInst): Added `initialized' and
14354         `init_pending' flags.
14355
14356         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14357         `mono_class_init (gklass)' or mono_class_initialize_generic()
14358         here; set `generic_inst->init_pending' while parsing the
14359         `type_argv'.
14360
14361 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14362
14363         * locales.c: include string.h for memxxx prototypes
14364
14365 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14366
14367         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14368         constructor when accessing literal fields.
14369
14370 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14371
14372         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14373
14374         * reflection.c (assembly_add_resource_manifest): New function to fill
14375         the MANIFESTRESOURCE table.
14376
14377         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14378
14379         * reflection.h: Update to changes in class layout.
14380
14381         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14382         Reenable call to mono_runtime_is_shutting_down ().
14383
14384         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14385         determine if the runtime is shutting down.
14386
14387 2003-12-16  Jackson Harper <jackson@ximian.com>
14388
14389         * icall.c: comment out call to mono_runtime_is_shutting_down to
14390         fix build.
14391         
14392 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14393
14394         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14395         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14396
14397 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14398
14399         * reflection.c: move definition of swap_with_size
14400         to before its first call
14401
14402 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14403
14404         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14405
14406         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14407         icall.
14408
14409         * object.c: Fix warnings.
14410
14411         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14412         members if FlattenHierarchy is set.
14413
14414         * reflection.c (mono_image_add_decl_security): New function to emit
14415         declarative security.
14416
14417         * reflection.h reflection.c: Add support for declarative security.
14418
14419         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14420         
14421 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
14422
14423         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14424         
14425         * appdomain.c verify.c: Moved corlib version checking into its own
14426         function in appdomain.c since it needs to create vtables etc.
14427
14428 2003-12-13  Patrik Torstensson <p@rxc.se>
14429
14430         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
14431         instead of unwrapped server.
14432
14433 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
14434
14435         * verify.c (check_corlib): Fix field index.
14436
14437 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
14438
14439         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
14440         GetGacPath icall.
14441
14442 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
14443
14444         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
14445         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
14446         cope with sizeof(size_t) != sizeof(guint32).
14447
14448 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14449
14450         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
14451         in case of failure.
14452
14453 2003-12-10  Mark Crichton <crichton@gimp.org>
14454
14455         * icall.c: removed the GetNonZeroBytes.  We now handle this case
14456         in managed code.
14457
14458         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
14459
14460 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
14461
14462         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
14463         marked as deleted.
14464
14465 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
14466
14467         * verify.c (check_corlib): Handle the case when the version field is 
14468         initialized by a static constructor.
14469
14470 2003-12-08  Patrik Torstensson  <p@rxc.se>
14471
14472     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
14473
14474 2003-12-08  Martin Baulig  <martin@ximian.com>
14475
14476         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
14477         a MonoReflectionGenericParameter, also take the parameter index
14478         and name as arguments.
14479         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14480         (ves_icall_MonoGenericParam_initialize): New interncall.
14481         (ves_icall_Type_make_byref_type): New interncall.
14482
14483         * reflection.h (MonoReflectionGenericParam): Derive from
14484         MonoReflectionType, not just from MonoObject.  Added `refobj' and
14485         `index' fields.
14486
14487         * reflection.c (mono_reflection_define_generic_parameter): Create
14488         and return a new MonoReflectionGenericParam; don't initialize the
14489         constraints here.
14490         (mono_reflection_initialize_generic_parameter): New public method;
14491         initializes the constraints and creates the `param->pklass'.
14492
14493 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
14494
14495         * reflection.h reflection.c: Use the new fields 'num_types', 
14496         'num_fields' and 'num_methods' to track the number of types etc.
14497
14498         * verify.c (check_corlib): Check corlib version number.
14499
14500 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
14501
14502         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
14503         function works on all methods.
14504
14505 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
14506
14507         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
14508         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
14509         the custom_type_info flag of the transparent proxy.
14510         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
14511         objects that supports IRemotingTypeInfo.
14512         * object.h: Added custom_type_info field in transparent proxy.
14513
14514 2003-12-06  Martin Baulig  <martin@ximian.com>
14515
14516         * class.c (mono_class_create_from_generic): Removed.
14517         (mono_class_from_generic): Check `ginst->klass' before doing
14518         anything else.  This is important to fully support "recursive"
14519         generic types.
14520
14521         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
14522         empty `generic_inst->klass' before doing anything else.
14523
14524 2003-12-06  Dick Porter  <dick@ximian.com>
14525
14526         * verify.c: 
14527         * object.h:
14528         * icall.c:
14529         * locales.c: Use C structs to access class fields.  Don't do a
14530         conversion between MonoString and UChar because both are
14531         platform-endian UTF-16.  Compare now takes startindex and count
14532         parameters.  Add a char overload for IndexOf.  Speed up the
14533         invariant string IndexOf.
14534
14535 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
14536
14537         * Makefile.am (monosn_LDADD): Fix parallel build.
14538
14539 2003-12-04  Martin Baulig  <martin@ximian.com>
14540
14541         * icall.c
14542         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14543         (ves_icall_Type_make_array_type): New interncall.       
14544
14545 2003-12-04  Martin Baulig  <martin@ximian.com>
14546
14547         * locales.c: also change it in the !HAVE_ICU case.
14548
14549 2003-12-04  Dick Porter  <dick@ximian.com>
14550
14551         * icall.c:
14552         * locales.c: construct_compareinfo is now in CompareInfo, not
14553         CultureInfo.
14554
14555 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
14556
14557         * image.c (mono_image_load_file_for_image): Cache loaded images in the
14558         image->files array.
14559
14560         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
14561         table as well.
14562
14563         * assembly.c (mono_assembly_load_references): Only load references
14564         once.
14565
14566         * class.c (mono_class_from_name): Avoid linear search of the 
14567         EXPORTEDTYPE table.
14568
14569         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
14570
14571 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
14572
14573         * image.h (MonoImage): Add 'field_cache' field.
14574
14575         * loader.c (mono_field_from_token): Cache field lookups.
14576         
14577         * reflection.c (mono_module_get_object): Fix name property.
14578
14579         * icall.c (ves_icall_get_enum_info): Update after changes to 
14580         mono_metadata_get_constant_index ().
14581
14582         * icall.c: Get rid of get_type_info icall, use a separate icall for
14583         each type property to avoid needless memory allocations. Fixes #51514.
14584
14585         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
14586         to avoid needless binary searches.
14587
14588         * class.c (class_compute_field_layout): Move the initialization of
14589         field->def_value to mono_class_vtable ().
14590
14591         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
14592         non-corlib types.
14593
14594         * object.c (mono_object_allocate): Make it inline.
14595
14596         * object.c (mono_object_allocate_spec): Make it inline.
14597         
14598 2003-12-02  Dick Porter  <dick@ximian.com>
14599
14600         * locales.c (create_NumberFormat): NumberFormatInfo construction.
14601         Patch by Mohammad DAMT (mdamt@cdl2000.com).
14602
14603 2003-12-01  Dick Porter  <dick@ximian.com>
14604
14605         * threads.c: Fix signature and call in CreateMutex and
14606         CreateEvent.
14607
14608 2003-12-01  Dick Porter  <dick@ximian.com>
14609
14610         * icall.c: 
14611         * locales.c: Implement string compares and searching
14612
14613         * object.h: Add extra Thread field
14614
14615 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
14616
14617         * reflection.c (fixup_method): Add support for MonoCMethod.
14618
14619 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
14620
14621         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
14622
14623         * reflection.c (assembly_name_to_aname): Allow extra characters in
14624         assembly names. Fixes #51468.
14625
14626 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
14627
14628         * exception.c (mono_exception_from_name_domain): New helper function.
14629
14630         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
14631         exception object in the correct domain.
14632
14633         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
14634         formatting + make a copy a the input data.
14635
14636         * loader.c (mono_get_method_from_token): Methods which contain
14637         native code do not have entries in the ImplMap.
14638
14639         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
14640         Thanks to Gonzalo for spotting this.
14641         
14642         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
14643         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
14644
14645         * assembly.h (mono_assembly_load_from): Split the second part of 
14646         assembly loading into a new public function.
14647
14648         * exception.h (mono_get_exception_bad_image_format): New function.
14649
14650 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
14651
14652         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14653         Enumerate all modules inside a dynamic assembly. Fixes #51293.
14654         
14655         * icall.c: Add new icall for creating dynamic methods.
14656
14657         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
14658
14659         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
14660
14661         * reflection.c (mono_reflection_create_dynamic_method): New icall to
14662         create a dynamic method.
14663
14664         * reflection.c (resolve_object): New helper function.
14665
14666         * reflection.c: Generalize ReflectionMethodBuilder and the functions
14667         which manipulate it so they can also work on dynamic methods.
14668
14669         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
14670         creating the MonoReflectionMethodAux structure if it is not needed.
14671         
14672         * reflection.h verify.c: Update after changes to object layout.
14673
14674         * reflection.c (method_builder_encode_signature): Fix compilation on
14675         gcc 2.95.x.
14676
14677 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
14678
14679         * appdomain.h: Added support for context static fields. Added static_data
14680           field to MonoAppContext and renamed thread_static_fields to a more
14681           generic special_static_fields in MonoAppDomain, since it can now contain
14682           context static fields.
14683         * domain.c: Updated hashtable name.
14684         * object.c: Replaced field_is_thread_static() for a more generic
14685           field_is_special_static() which also checks for context static attribute.
14686           In mono_class_vtable(), added support for static context fields.
14687         * threads.c: Changed methods that manage thread static fields to more
14688           generic methods so they can be reused both for thread and context static
14689           data.
14690         * threads.h: Declared some new methods.
14691
14692 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
14693
14694         * reflection.h: Update after changes to the managed types.
14695
14696         * reflection.c (encode_custom_modifiers): New helper function.
14697
14698         * reflection.c (method_encode_signature): Emit custom modifiers.
14699
14700         * reflection.c (field_encode_signature): Emit custom modifiers.
14701
14702 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
14703
14704         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
14705
14706         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
14707         implementation.
14708
14709         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
14710         icall.
14711
14712         * object.c (mono_field_get_value_object): New function.
14713
14714         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
14715         specific.
14716
14717 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
14718
14719         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
14720         return a preallocated out-of-memory exception instance.
14721
14722         * object.c (out_of_memory): Use the new function.
14723
14724         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
14725         flag is before the custom modifiers. Fixes #49802.
14726
14727 2003-11-16  Martin Baulig  <martin@ximian.com>
14728
14729         * class.c (mono_class_is_open_constructed_type): Implemented the
14730         MONO_TYPE_GENERICINST case.
14731
14732 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
14733
14734         * assembly.c (mono_assembly_fill_assembly_name): New function to
14735         fill out the MonoAssemblyName structure.
14736         (mono_assembly_open): Use the new function.
14737
14738         * icall.c (fill_reflection_assembly_name): New helper function.
14739
14740         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
14741         new function.
14742
14743         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
14744
14745 2003-11-15  Martin Baulig  <martin@ximian.com>
14746
14747         * class.c (mono_class_is_open_constructed_type): New public
14748         function; checks whether a type is an open constructed type,
14749         ie. whether it still contains type parameters.
14750         (mono_class_inflate_generic_type): If we're a type parameter and
14751         the inflated type is also a MONO_TYPE_(M)VAR, return the original
14752         type.
14753
14754         * class.h (MonoGenericInst): Added `guint32 is_open'.
14755
14756         * loader.c (method_from_methodspec): Check whether we're an open
14757         or closed constructed type and set `ginst->is_open'.
14758
14759         * reflection.c (mono_reflection_bind_generic_parameters): Check
14760         whether we're an open or closed constructed type and set
14761         `ginst->is_open'.
14762         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
14763         from open constructed types.
14764
14765 2003-11-15  Martin Baulig  <martin@ximian.com>
14766
14767         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14768         a generic instance (instead of a generic type declaration) with
14769         unbound generic parameters, bind them to our actual types.
14770
14771 2003-11-14  Martin Baulig  <martin@ximian.com>
14772
14773         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
14774
14775         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14776         an interface type, populate `res->interfaces' with instantiated
14777         versions of all the interfaces we inherit.
14778
14779 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
14780
14781         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
14782         when MONO_PATH is set but doesn't contain the install dir.
14783
14784 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14785
14786         * icall.c:
14787         (ves_icall_Type_GetInterfaces): don't return an interface twice when
14788         it's also implemented in base classes. Fixes bug #50927.
14789
14790 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
14791
14792         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
14793         if this method is called from a finalizer. Fixes #50913.
14794
14795 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
14796
14797         * threads.c: Implement VolatileRead/VolatileWrite
14798
14799         * icall.c: Add new icalls for VolatileRead/VolatileWrite
14800
14801 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14802
14803         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
14804         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
14805         2.95.3.
14806
14807         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
14808         from Peter Ross (pro@missioncriticalit.com).
14809         
14810 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
14811
14812         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
14813
14814 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14815
14816         * assembly.c (mono_assembly_load_references): Disable check because it
14817         triggers on older corlibs which lots of people have.
14818
14819 2003-11-12  Jackson Harper  <jackson@ximian.com>
14820
14821         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
14822         load corlib.dll if mscorlib.dll is not found.
14823         * assembly.h: Remove corlib name define.
14824         * class.c:
14825         * domain.c:
14826         * image.c: Change corlib name to mscorlib.
14827         
14828 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14829
14830         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
14831
14832 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
14833
14834         * appdomain.h: Added loader_optimization here to sync with the C#
14835         code, and add disallow_binding_redirects field.
14836
14837 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
14838
14839         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
14840
14841         * reflection.c (mono_image_build_metadata): Fix crash on modules
14842         with no types.
14843
14844         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
14845
14846         * icall.c (ves_icall_get_method_info): Return callingConvention as
14847         well.
14848
14849         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
14850         namespaces from the EXPORTEDTYPE table as well.
14851
14852         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
14853         from all modules inside the assembly.
14854         
14855 2003-11-11  Martin Baulig  <martin@ximian.com>
14856
14857         * reflection.c (mono_reflection_bind_generic_parameters): Make
14858         this work for interfaces.
14859
14860 2003-11-11  Martin Baulig  <martin@ximian.com>
14861
14862         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
14863
14864 2003-11-11  Martin Baulig  <martin@ximian.com>
14865
14866         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
14867         "MonoInflatedMethod" and "MonoInflatedCtor".
14868
14869 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
14870
14871         * reflection.c (resolution_scope_from_image): Use the assembly table
14872         from the manifest module, since other modules don't have it.
14873
14874         * debug-helpers.c (mono_type_full_name): New helper function.
14875
14876         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
14877
14878         * image.c (mono_image_load_file_for_image): New public function which
14879         is a replacement for the load_file_for_image in class.c.
14880
14881         * assembly.c (mono_assembly_load_module): A wrapper for the function
14882         above which does assembly association and reference loading too.
14883
14884         * class.c (mono_class_from_name): Call mono_assembly_load_module.
14885
14886 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14887
14888         * appdomain.c: not all of the attributes for the full assembly name
14889         are required and the order doesn't matter. Fixes bug #50787.
14890
14891 2003-11-10  Dick Porter  <dick@ximian.com>
14892
14893         * locales.c: Use platform-endian UTF16
14894
14895 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
14896
14897         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
14898         
14899 2003-11-10  Martin Baulig  <martin@ximian.com>
14900
14901         * metadata.c
14902         (mono_metadata_load_generic_params): Make this actually work.
14903
14904         * reflection.c (mono_reflection_bind_generic_parameters): If our
14905         parent is a generic instance, pass all the `types' to it, no
14906         matter whether it has the same number of type parameters or not.
14907
14908 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
14909
14910         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
14911
14912         * assembly.c (mono_assembly_load_references): Move the image<->assembly
14913         assignment code to this function so it gets called recursively for all
14914         modules.
14915
14916         * image.c (load_modules): Remove the assembly assignment since it is
14917         now done by mono_assembly_load_references.
14918         
14919         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14920         Add 'module' argument.
14921         (mono_module_get_types): New helper function.
14922         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
14923
14924 2003-11-08  Martin Baulig  <martin@ximian.com>
14925
14926         * class.c (mono_class_inflate_generic_method): Interface method
14927         don't have a header.
14928
14929         * reflection.c (mono_image_get_methodspec_token): Take an
14930         additional `MonoGenericInst *' argument instead of reading it from
14931         the header; this is necessary to support interfaces.
14932         (mono_image_create_token): Pass the `MonoGenericInst *' from the
14933         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
14934         (inflated_method_get_object): Take an additional `MonoGenericInst *'
14935         argument.
14936
14937         * reflection.h (MonoReflectionInflatedMethod): Added
14938         `MonoGenericInst *ginst'.
14939
14940 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
14941
14942         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
14943
14944 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
14945
14946         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
14947
14948 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
14949
14950         * reflection.c 
14951         (reflection_methodbuilder_from_method_builder):
14952         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
14953         initialize a ReflectionMethodBuilder structure.
14954         (mono_image_get_methodbuilder_token):
14955         (mono_image_get_ctorbuilder_token): New functions to emit memberref
14956         tokens which point to types in another module inside the same assembly.
14957
14958         * reflection.c: Use the new helper functions.
14959         
14960         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
14961
14962         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
14963         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
14964
14965         * reflection.c (resolution_scope_from_image): Emit a moduleref if
14966         neccesary.
14967
14968         * reflection.c (mono_image_build_metadata): Emit metadata only for the
14969         current module. Emit the manifest only for the main module.
14970
14971         * reflection.c (mono_image_create_token): Add assertion when a 
14972         memberref needs to be created.
14973
14974         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
14975
14976         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
14977         larger buffer for the custom attribute blob. Fixes #50637.
14978         
14979 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14980
14981         * threadpool.c: notify listener on async processing handles after
14982         invoking the async callback. Thanks to Zoltan.
14983
14984 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
14985
14986         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
14987         avoid code duplication.
14988
14989         * reflection.h (MonoDynamicImage): New type which is currently unused,
14990         but will be used through the ref.emit code in place of 
14991         MonoDynamicAssembly.
14992
14993         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
14994         object layout.
14995
14996         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
14997         a MonoDynamicImage instead of just a MonoImage.
14998         
14999         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
15000         icalls to ModuleBuilder but keep their semantics, so they will work
15001         with moduleb->assemblyb. This will change later.
15002         
15003 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15004
15005         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15006         object layout.
15007
15008         * reflection.c (mono_image_build_metadata): Avoid creation of a default
15009         main module, since it is now done by the managed code.
15010
15011 2003-11-03  Martin Baulig  <martin@ximian.com>
15012
15013         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
15014         `ginst->klass' here.
15015         (method_encode_methodspec): Don't use the `ginst->generic_method's
15016         klass if it's a generic instance, use `ginst->klass' in this case.
15017
15018 2003-11-03  Martin Baulig  <martin@ximian.com>
15019
15020         * reflection.c (mono_image_get_generic_method_param_info):
15021         Removed, use mono_image_get_generic_param_info() instead.
15022         (mono_image_get_type_info): Write the GenericParam table before
15023         the Method table.  This is neccessary because in the GenericParam
15024         table, type parameters of the class (ie. '!0' etc.) must come
15025         before the ones from its generic methods (ie. '!!0' etc).
15026
15027 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15028
15029         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
15030
15031 2003-11-02  Martin Baulig  <martin@ximian.com>
15032
15033         * reflection.c (create_generic_typespec): Take a
15034         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
15035         the generic parameters from it.
15036
15037 2003-11-02  Martin Baulig  <martin@ximian.com>
15038
15039         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
15040         instead of a `MonoClassField *' since we just need the type.
15041         (create_generic_typespec): New static function.  Creates a
15042         TypeSpec token for a generic type declaration.
15043         (mono_image_get_generic_field_token): New static function.
15044         (mono_image_create_token): If we're a FieldBuilder in a generic
15045         type declaration, call mono_image_get_generic_field_token() to get
15046         the token.
15047
15048 2003-11-02  Martin Baulig  <martin@ximian.com>
15049
15050         * reflection.h
15051         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
15052         `MonoReflectionGenericInst *declaring_type' and
15053         `MonoReflectionGenericInst *reflected_type' fields.
15054
15055         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
15056         `MonoReflectionGenericInst *declaring_type' and a
15057         `MonoReflectionGenericInst *reflected_type' argument instead of a
15058         single `MonoReflectionGenericInst *type' one.  Set
15059         `res->declaring_type' and `res->reflected_type' from them.
15060         (mono_reflection_inflate_field): Likewise.      
15061
15062 2003-11-02  Martin Baulig  <martin@ximian.com>
15063
15064         * class.c (mono_class_setup_vtable): Don't store generic methods
15065         in the vtable.  
15066
15067 2003-11-02  Martin Baulig  <martin@ximian.com>
15068
15069         * reflection.h (MonoReflectionGenericInst): Added
15070         `MonoReflectionType *declaring_type'.
15071
15072         * reflection.c (mono_reflection_bind_generic_parameters): Use
15073         `if (tb->parent)' instead of `klass->parent'.
15074
15075 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
15076
15077         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
15078         with an empty ASSEMBLY table.
15079
15080         * reflection.c (mono_image_build_metadata): Avoid using the same loop
15081         variable in the inner and outer loops.
15082
15083 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15084
15085         * metadata.h (mono_metadata_make_token): Put parentheses around macro
15086         argument.
15087
15088         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
15089         
15090         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
15091         icalls. Instead, do everything in managed code. This is needed since
15092         it is hard to restore the original domain etc. in unmanaged code in the
15093         presence of undeniable exceptions.
15094
15095         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
15096         New icalls to push and pop appdomain refs.
15097
15098 2003-10-31  Martin Baulig  <martin@ximian.com>
15099
15100         * class.c (inflate_generic_type): Renamed to
15101         mono_class_inflate_generic_type() and made it public.
15102
15103         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
15104         New interncall.
15105
15106         * loader.c (mono_field_from_memberref): Also set the retklass for
15107         typespecs.
15108
15109         * fielder.c (mono_image_get_inflated_field_token): New static
15110         method; creates a metadata token for an inflated field.
15111         (mono_image_create_token, fixup_method): Added support for
15112         "MonoInflatedField".
15113         (fieldbuilder_to_mono_class_field): New static function.
15114         (mono_reflection_inflate_field): New public function.
15115
15116         * reflection.h
15117         (MonoReflectionGenericInst): Added `MonoArray *fields'.
15118         (MonoReflectionInflatedField): New typedef.     
15119
15120 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
15121
15122         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
15123         for Solaris and other platforms without s6_addr16
15124
15125 2003-10-30  Martin Baulig  <martin@ximian.com>
15126
15127         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
15128         argument instead of two.
15129         (mono_class_inflate_generic_signature): Likewise.
15130         (inflate_generic_header): Likewise.
15131         (mono_class_inflate_generic_method): Likewise.  In addition, if
15132         `ginst->klass' is set, it becomes the new `method->klass'.
15133
15134         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
15135         field.
15136
15137         * reflection.c (encode_generic_method_sig): Write a 0xa as the
15138         first byte. [FIXME]
15139         (method_encode_methodspec): If we have generic parameters, create
15140         a MethodSpec instead of a MethodRef.
15141         (fixup_method): Added support for "MonoInflatedMethod" and
15142         "MonoInflatedCtor".
15143         (mono_image_create_token): Added support for "MonoInflatedMethod"
15144         and "MonoInflatedCtor".
15145         (inflated_method_get_object): New static function; returns a
15146         managed "System.Reflection.MonoInflatedMethod" object.
15147         (mono_reflection_bind_generic_method_parameters): Return a
15148         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
15149         (mono_reflection_inflate_method_or_ctor): Likewise.
15150         (mono_image_get_generic_method_param_info): Initialize unused
15151         fields to zero.
15152         (mono_image_get_generic_param_info): Likewise.
15153
15154         * reflection.h (MonoReflectionInflatedMethod): New public
15155         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
15156         "S.R.MonoInflatedCtor" classes.
15157
15158         * loader.c (method_from_memberref): If we're a TypeSpec and it
15159         resolves to a generic instance, inflate the method.
15160
15161 2003-10-28  Dick Porter  <dick@ximian.com>
15162
15163         * object.c (mono_runtime_run_main): Convert command-line arguments
15164         into utf8, falling back to the user's locale encoding to do so.
15165
15166 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
15167
15168         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
15169         at this time.
15170
15171         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
15172
15173         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
15174         up icalls at method definition time. Partially fixes #33569.
15175
15176 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
15177
15178         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
15179         marshalling of arrays. Fixes #50116.
15180
15181         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15182
15183         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15184         points to a vtable in the dying appdomain.
15185
15186         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15187         listeners into unmanaged code inside the lock.
15188
15189         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15190         domains and add some comments.
15191
15192 2003-10-25  Martin Baulig  <martin@ximian.com>
15193
15194         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15195
15196         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15197
15198         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15199         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15200         currently parsing.  Create the generic class and store it in
15201         `generic_inst->klass' before parsing the type arguments.  This is
15202         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15203         for an example.
15204         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15205         to support recursive typespec entries.
15206
15207         * class.c (mono_class_setup_parent): If our parent is a generic
15208         instance, we may get called before it has its name set.
15209         (mono_class_from_generic): Splitted into
15210         mono_class_create_from_generic() and mono_class_initialize_generic().
15211
15212 2003-10-25  Martin Baulig  <martin@ximian.com>
15213
15214         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15215         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15216         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15217         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15218
15219         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15220         (create_typespec): Likewise.
15221         (mono_reflection_bind_generic_parameters): Return a
15222         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15223         (mono_reflection_inflate_method_or_ctor): New public function.
15224
15225         * reflection.h (MonoReflectionGenericInst): New typedef.        
15226
15227 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15228
15229         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15230         inside the domain lock. Fixes #49993.
15231         
15232         * object.c (mono_class_vtable): When typed allocation is used, 
15233         allocate vtables in the GC heap instead of in the mempool, since the
15234         vtables contain GC descriptors which are used by the collector even
15235         after the domain owning the mempool is unloaded.
15236
15237         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15238
15239         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15240         reflect what it does. Also invalidate mempools instead of freeing
15241         them if a define is set.
15242
15243         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15244         of the appdomain.
15245         
15246         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15247         hold the finalizable objects in this domain.
15248
15249         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15250         appdomain.
15251
15252         * appdomain.c (mono_domain_set): New function to set the current
15253         appdomain, but only if it is not being unloaded.
15254
15255         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15256         appdomain which is being unloaded.
15257         
15258         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15259         unloading of the root appdomain.
15260
15261         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15262         icall to execute a method in another appdomain. Intended as a 
15263         replacement for InternalSetDomain, which can confuse the code 
15264         generation in the JIT.
15265
15266         * appdomain.c (mono_domain_is_unloading): New function to determine
15267         whenever an appdomain is unloading.
15268
15269         * appdomain.c (mono_domain_unload): New function to correctly unload
15270         an appdomain.
15271
15272         * assembly.c (mono_assembly_load_references): Check that an assembly
15273         does not references itself.
15274
15275         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15276         domain manually, it asks the finalizer thread to do it, then waits for
15277         the result. Also added a timeout.
15278
15279         * icall.c: Register the new icalls.
15280
15281         * threads.h threads.c: Export the mono_gc_stop_world and 
15282         mono_gc_start_world functions.
15283         
15284         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15285         function to fill out the mempool with 0x2a.
15286
15287 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15288
15289         * reflection.h (MonoReflectionMethodAux): New structure to store
15290         information which is rarely used, thus is not in the MonoMethod
15291         structure.
15292
15293         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15294         store the aux info.
15295
15296         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15297         and marshalling info into the aux structure.
15298
15299         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15300         from the aux structure.
15301
15302         * loader.c (mono_method_get_param_names): Retrieve the param names from
15303         the aux structure.
15304         
15305 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15306
15307         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15308         warning.
15309
15310 2003-10-21  Dick Porter  <dick@ximian.com>
15311
15312         * socket-io.c
15313         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
15314         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
15315
15316 2003-10-21  Martin Baulig  <martin@ximian.com>
15317
15318         * reflection.c (mono_reflection_bind_generic_parameters):
15319         `klass->parent' is NULL for interfaces.
15320
15321 2003-10-21  Martin Baulig  <martin@ximian.com>
15322
15323         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15324
15325 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15326
15327         * exception.c (mono_exception_from_name_msg): New helper function for
15328         creating exceptions and initializing their message field.
15329
15330         * exception.c: Simplify functions using the new helper.
15331
15332         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15333         New function.
15334
15335         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15336         mono_raise_exception, since otherwise gcc doesn't generate the function
15337         epilog for raise_exception, confusing the stack unwinding in the JIT.
15338         Fixes #45043.
15339
15340         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15341         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15342         Fixes #49499.
15343
15344 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15345
15346         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15347         utf8.
15348
15349 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15350
15351         * icall.c: Removed GetUninitializedObject method because
15352           AllocateUninitializedClassInstance does the same.
15353
15354 2003-10-18  Martin Baulig  <martin@ximian.com>
15355
15356         * class.c (inflate_generic_signature): Renamed to
15357         mono_class_inflate_generic_signature() and made it public.
15358         (my_mono_class_from_generic_parameter): New static function; if we
15359         don't already have the generic parameter's MonoClass, create a
15360         very simple one which is just used internally in the runtime and
15361         not passed back to managed code.
15362
15363         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15364
15365         * metadata.h (MonoMethodSignature): Moved the
15366         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15367         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15368
15369         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15370         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15371         interncall on the MonoMethod class, not on MethodInfo.
15372         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15373         calling mono_reflection_bind_generic_method_parameters() directly.
15374
15375         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15376         return the already computed `method->signature'.
15377         (method_from_methodspec): New static function to load a method
15378         from a MethodSpec entry.
15379         (mono_get_method_from_token): Call the new method_from_methodspec()
15380         for MethodSpec tokens.  
15381         (mono_get_method_from_token): If we're a generic method, load the
15382         type parameters.
15383
15384         * reflection.c (mono_image_get_memberref_token): Allow
15385         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15386         table.
15387         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15388         (mono_image_create_token): First check whether it's a generic
15389         method (so we'd need to create a MethodSpec), then do the other
15390         two alternatives.
15391         (mono_reflection_bind_generic_method_parameters): Return a
15392         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15393         called directly from the interncall.
15394
15395 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15396
15397         * reflection.c (load_public_key): Move loading of the public key
15398         into managed code.
15399
15400         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15401
15402         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15403         fields.
15404
15405         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15406         culture, hash_alg and public_key. Fixes #49555.
15407
15408 2003-10-17  Martin Baulig  <martin@ximian.com>
15409
15410         * class.h (MonoGenericInst): Moved this declaration here and added
15411         `MonoMethod *generic_method'.
15412
15413         * icall.c
15414         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15415         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15416
15417         * metadata.c (mono_metadata_type_equal): Two types of
15418         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15419         index; ie. don't compare the address of the `MonoGenericParam'
15420         structure.
15421         (mono_metadata_load_generic_params): Removed the `MonoMethod
15422         *method' argument.
15423
15424         * metadata.h (MonoGenericInst): Moved declaration to class.h.
15425         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
15426
15427         * reflection.c (method_encode_signature): Encode the number of
15428         generic parameters.
15429         (encode_generic_method_sig): New static function.
15430         (method_encode_methodspec): New static function; creates an entry
15431         in the MethodSpec table for a generic method.
15432         (mono_image_get_methodspec_token): New static function.
15433         (mono_image_create_token): Call mono_image_get_methodspec_token()
15434         for generic methods.
15435         (mono_reflection_bind_generic_method_parameters): New public
15436         function.  Instantiates a generic method.
15437
15438 2003-10-16  Martin Baulig  <martin@ximian.com>
15439
15440         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
15441         *gen_params' here from MonoMethodHeader.
15442
15443         * metadata.c (mono_metadata_parse_method_signature): If we have
15444         generic parameters, initialize `method->gen_params' and then set
15445         the correct `type->data.generic_param' in all the parameters.
15446
15447 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
15448
15449         * threads.c (mono_threads_get_default_stacksize): New function to 
15450         return the default stacksize.
15451
15452         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
15453         termination of the finalizer thread, since the previous method had
15454         race conditions. Fixes #49628.
15455
15456         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
15457         as for the other managed threads.
15458
15459 2003-10-16  Martin Baulig  <martin@ximian.com>
15460
15461         * class.c (inflate_generic_signature): Copy `generic_param_count'
15462         and `gen_params'.
15463
15464         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
15465         New interncall.
15466
15467         * metadata.c (mono_metadata_parse_method_signature): Actually set
15468         the `method->generic_param_count' here.
15469         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
15470
15471 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
15472
15473         * object.h: Add a new field to TypedRef to simplify the implementation
15474         of the REFANY opcodes in the JIT.
15475
15476         * icall.c: Make use of the new field.
15477
15478         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
15479         dynamically.
15480
15481 2003-10-15  Martin Baulig  <martin@ximian.com>
15482
15483         * class.c (mono_class_from_gen_param): Renamed to
15484         mono_class_from_generic_parameter() and moved most of the
15485         functionality from mono_reflection_define_generic_parameter()
15486         here; ie. we create a "real" class here.
15487         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
15488         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
15489         previously been called.
15490
15491         * class.h (MonoGenericParam): Moved the declaration of this struct
15492         here from metadata.h and added `MonoMethod *method'.
15493
15494         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
15495         interncall.
15496
15497         * loader.c (mono_get_method_from_token): If we have any generic
15498         parameters, call mono_metadata_load_generic_params() to read them
15499         from the MONO_TABLE_GENERICPAR.
15500
15501         * metadata.c (mono_metadata_load_generic_params): Added
15502         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
15503
15504         * metadata.h (MonoMethodSignature): Replaced
15505         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
15506         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
15507
15508         * reflection.c (mono_reflection_define_generic_parameter): Moved
15509         most of the functionality into the new
15510         mono_class_from_generic_parameter(); set the `method' field if
15511         we're a method parameter.       
15512
15513 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
15514
15515         * marshal.c (emit_struct_conv): if native size is 0
15516         emit no code.
15517
15518 2003-10-14  Martin Baulig  <martin@ximian.com>
15519
15520         * icall.c: The generics API has changed in the spec since it was
15521         added to System.Type; these modifications make it match the spec
15522         again.
15523         (ves_icall_Type_GetGenericParameters): Renamed to
15524         `ves_icall_Type_GetGenericArguments'.
15525         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
15526         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
15527         `ves_icall_MonoType_get_HasGenericArguments'.
15528         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
15529         `ves_icall_MonoType_get_IsGenericParameter'.
15530         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
15531         this is no interncall anymore.
15532         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
15533         `ves_icall_TypeBuilder_get_IsGenericParameter'.
15534
15535 2003-10-14  Martin Baulig  <martin@ximian.com>
15536
15537         * reflection.c (mono_reflection_bind_generic_parameters): Also
15538         inflate generic methods if we're reading the class from IL.
15539
15540 2003-10-13  Martin Baulig  <martin@ximian.com>
15541
15542         * reflection.c (mono_reflection_define_generic_parameter): This
15543         method isn't called directly from the icall anymore; take a
15544         `MonoReflectionAssemblyBuilder *' so we can use this for type and
15545         method generic parameters.
15546         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
15547         (method_builder_encode_signature): Encode generic parameters.
15548         (mono_image_get_method_info): Write generic params to the
15549         MONO_TABLE_GENERICPARAM table.
15550
15551         * reflection.h (MonoReflectionMethodBuilder): Added
15552         `MonoArray *generic_params'.
15553
15554         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
15555
15556         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
15557         wrapper for mono_reflection_define_generic_parameter().
15558         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
15559
15560 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
15561
15562         * marshal.h: Add missing function to fix build.
15563
15564         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
15565         the SetLastError pinvoke attribute.
15566
15567         * marshal.c (mono_marshal_set_last_error): New helper function called
15568         by the generated code.
15569         
15570         * marshal.c (mono_mb_emit_branch): New helper function.
15571
15572         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
15573
15574         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15575         classes as parameters and return values of delegates. Fixes #29256. 
15576
15577 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
15578
15579         * locales.c: use gint32 in non HAVE_ICU case
15580
15581 2003-10-11  Martin Baulig  <martin@ximian.com>
15582
15583         * mono-debug.c (mono_debug_add_method): Added a workaround for
15584         bug #48591.
15585
15586 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
15587
15588         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
15589         delegates passed to native code must use the STDCALL calling 
15590         convention. Fixes #35987.
15591
15592 2003-10-10  Martin Baulig  <martin@ximian.com>
15593
15594         * class.c (inflate_generic_type): If we're inflating for a generic
15595         type instance (and not for a generic method), return
15596         MONO_TYPE_MVAR unchanged.
15597
15598 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15599
15600         * string-icalls.c: Join ignores null strings in the source array.
15601         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
15602         * threads.c: GetAvailableTheads is slightly more accurate.
15603
15604 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
15605
15606         * threads.h threads.c : add mono_threads_set_default_stacksize
15607         and pass default to CreateThread calls.
15608
15609 2003-10-09  Dick Porter  <dick@ximian.com>
15610
15611         * icall.c:
15612         * locales.h:
15613         * locales.c: Internal calls for constructing CultureInfo and
15614         related objects from libicu (if its available.)
15615
15616 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
15617
15618         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
15619
15620 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15621
15622         * threadpool.c: added an argument to async_invoke_thread that is the
15623         item to process, pass the MonoAsyncResult to the thread start function
15624         when creating a new thread. This way we don't need to acquire any lock
15625         when we're creating a new thread. Readded a semaphore for faster
15626         response times (instead of that Sleep i added).
15627
15628 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
15629
15630         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
15631         get daylight change dates better on Windows, fix handling
15632         of platforms without tm_gmtoff.
15633
15634 2003-10-06  Martin Baulig  <martin@ximian.com>
15635
15636         * class.c (inflate_generic_method): Renamed to
15637         mono_class_inflate_generic_method() and made public.
15638         (mono_class_init): Don't inflate the generic methods here.
15639         (mono_class_from_generic): Added `gboolean inflate_methods'
15640         argument.  Inflate the methods here.
15641
15642         * loader.c (mono_method_get_param_names): Ignore instances of
15643         generic types for the moment.
15644
15645         * reflection.c (fixup_method): Added support for inflated methods.
15646         (mono_image_create_token): Use mono_image_get_methodref_token()
15647         for inflated methods.
15648         (mono_custom_attrs_from_param): Ignore instances of generic types
15649         for the moment.
15650         (mono_reflection_bind_generic_parameters): New public function.
15651         Moved all the functionality from
15652         ves_icall_Type_BindGenericParameters() here and added support for
15653         dynamic types.
15654         (mono_reflection_define_generic_parameter): Initialize
15655         `klass->methods' here.
15656
15657         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
15658         functionality into mono_reflection_define_generic_parameter().
15659         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
15660         TypeBuilder, return that TypeBuilder.
15661
15662 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15663
15664         * appdomain.c: removed mono_delegate_semaphore.
15665
15666         * threadpool.c:
15667         (mono_thread_pool_add): moved hash table creation inside and the thread 
15668         creation outside of the critical region.
15669         (mono_thread_pool_finish): removed obsolete code.
15670         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
15671         continue or exit the thread depending on the queue.
15672
15673 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
15674
15675         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
15676         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
15677         handle more bool marshalling options
15678
15679 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
15680
15681         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
15682         arrays of structs. Also add a more descriptive error message when
15683         a structure member is marshalled as LPArray.
15684
15685 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
15686
15687         * marshal.c (mono_marshal_get_native_wrapper): Add support for
15688         marshalling arrays of complex types. Fixes #29098. Also remove an
15689         usused and incomplete function.
15690
15691 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
15692
15693         * gc.c: report heap_size - free_bytes as total memory allocated
15694         (bug#49362).
15695
15696 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
15697
15698         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
15699         fix timezone handling problems on Windows.
15700         
15701         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
15702         asserts when the year is outside the range handled by ms the functions.
15703
15704         * class.c (setup_interface_offsets): If the class is an interface,
15705         fill out its interface_offsets slot.
15706
15707 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15708
15709         * threadpool.c: mark threadpool threads as background.
15710
15711 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
15712
15713         * decimal.c - define DECINLINE to nothing if not using GCC
15714
15715 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
15716
15717         * assembly.c: More refcount fixes.
15718
15719 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15720
15721         * string-icalls.c: if we're not trimming, return the same string.
15722         When not splitting, don't create a new string.
15723
15724 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15725
15726         * image.c:
15727         (mono_image_open): increment the ref_count inside the critical section.
15728
15729 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
15730
15731         * image.c (mono_image_open): Fix reference counting bug.
15732
15733 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
15734
15735         * marshal.c (mono_marshal_type_size) struct alignment changed for 
15736         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
15737         64bits. Avoid leak in mono_marshal_get_native_wrapper when
15738         mono_lookup_pinvoke_call throws.        
15739
15740 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
15741
15742         * reflection.c (mono_reflection_parse_type): Fix #49114.
15743
15744         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
15745         temporary workaround for cygwin header problem.
15746
15747         * object.c (mono_object_isinst): Synchronize this with the code
15748         generated by the JIT for casts.
15749
15750 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
15751
15752         * reflection.c (encode_type): Fix #38332.
15753
15754 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
15755
15756         * marshal.c (mono_marshal_method_from_wrapper): New function to return
15757         the original method from the wrapper method.
15758
15759 2003-09-25  Martin Baulig  <martin@ximian.com>
15760
15761         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
15762         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
15763         (ves_icall_Type_get_IsGenericInstance): New interncall.
15764
15765 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
15766
15767         * object.c: fix cast warning in big endian code.
15768
15769 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
15770
15771         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
15772         
15773 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15774
15775         * assembly.c: don't call check_env from mono_assembly_load. It's
15776         already done once in mono_assemblies_init and may cause headaches when
15777         multiple threads are loading assemblies.
15778
15779 2003-09-19  Martin Baulig  <martin@ximian.com>
15780
15781         * reflection.c (mono_reflection_define_generic_parameter): Don't
15782         allocate `klass->methods', set `klass->flags' to
15783         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
15784
15785 2003-09-18  Martin Baulig  <martin@ximian.com>
15786
15787         * class.c (mono_class_init): Don't create `class->methods' if it's
15788         already initialized.
15789
15790         * metadata.c (mono_metadata_load_generic_params): Make this
15791         actually work.
15792
15793         * reflection.c (mono_reflection_define_generic_parameter): Set
15794         parent class and interfaces from the constraints.
15795
15796         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
15797         to keep this struct in sync with the declaration in TypeBuilder.cs.
15798
15799 2003-09-17  Martin Baulig  <martin@ximian.com>
15800
15801         * metadata.h (MonoType): Replaced the data's `int type_param'
15802         field with `MonoGenericParam *generic_param'.
15803         (MonoGenericParam): Added `MonoClass *klass'.
15804
15805         * class.c (mono_class_from_gen_param): Removed the
15806         `MonoImage *image' and `int type_num' arguments.
15807
15808         * metadata.c (mono_metadata_parse_generic_param): New static
15809         method; creates a MonoGenericParam which just contains the index.
15810         (do_mono_metadata_parse_type): Call
15811         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
15812         MONO_TYPE_MVAR.
15813
15814         * reflection.c (mono_image_typedef_or_ref): Generic type
15815         parameters may be in the same assembly, but never use a typedef
15816         for them.
15817         (mono_reflection_define_generic_parameter): We're now creating a
15818         "real" class for the type parameter; it's now safe to call
15819         mono_class_from_mono_type() on the class'es type, it'll do the
15820         right thing.
15821
15822 2003-09-16  Martin Baulig  <martin@ximian.com>
15823
15824         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
15825         `symfile->range_entry_size' and `symfile->class_entry_size' here;
15826         the `symfile' data structure must be fully initialized before it
15827         gets added to the table.
15828
15829 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
15830
15831         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
15832
15833         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
15834         class init trampolines.
15835
15836 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
15837
15838         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
15839         to the built-in profiler to turn off time and allocation profiling
15840         respectively.
15841
15842 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
15843
15844         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
15845         g_direct_equal.
15846
15847         * debug-helpers.c (mono_method_full_name): Print the wrapper type
15848         in human readable form.
15849
15850 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
15851
15852         * reflection.c icall.c: Fixed warnings.
15853
15854         * image.c (load_class_names): Use a temporary hash table to hold the
15855         namespaces in order to avoid doing many string comparisons.
15856
15857         * image.h: Fix typo.
15858
15859         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
15860         Pass NULL instead of g_direct_equal to the GHashTable constructor 
15861         since the NULL case is short-circuited inside g_hash_table_lookup, 
15862         leading to better performance.  
15863
15864         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
15865         obtain the first custom attribute for a given index. Depends on the
15866         CustomAttribute table being sorted by the parent field.
15867
15868         * reflection.c (mono_custom_attrs_from_index): Use the new function 
15869         for better performance.
15870
15871 2003-09-07  Martin Baulig  <martin@ximian.com>
15872
15873         * class.c (mono_class_init): If we're a generic instance, inflate
15874         all our methods instead of loading them from the image.
15875         (mono_class_from_generic): Set `class->methods = gklass->methods'.
15876
15877 2003-09-07  Martin Baulig  <martin@ximian.com>
15878
15879         * mono-debug-debugger.c: Added support for constructors.
15880
15881 2003-09-06  Martin Baulig  <martin@ximian.com>
15882
15883         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
15884         New interncall.
15885
15886         * reflection.c (mono_reflection_setup_generic_class): Call
15887         ensure_runtime_vtable() to create the vtable.
15888
15889 2003-09-05  Martin Baulig  <martin@ximian.com>
15890
15891         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
15892         MONO_TYPE_MVAR.
15893
15894 2003-09-04  Martin Baulig  <martin@ximian.com>
15895
15896         * reflection.c (mono_reflection_define_generic_parameter): Generic
15897         parameters start with zero.
15898
15899 2003-09-04  Martin Baulig  <martin@ximian.com>
15900
15901         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15902
15903         * reflection.h (MonoReflectionGenericParam): New typedef.
15904         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
15905         the generic parameters from the managed TypeBuilder.
15906
15907         * reflection.c (mono_reflection_define_generic_parameter): New function.
15908         (mono_reflection_create_runtime_class): Encode generic parameters.
15909         (mono_reflection_setup_generic_class): New function; this is
15910         called after adding adding all generic params to the TypeBuilder.
15911         (encode_type): Added MONO_TYPE_VAR.
15912
15913 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
15914
15915         * class.h class.c (mono_class_needs_cctor_run): Moved this method
15916         here from the JIT.
15917
15918         * assembly.h assembly.c: Moved the AOT loading code into an assembly
15919         load hook.
15920
15921 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
15922
15923         * reflection.h reflection.c class.h class.c: Delete duplicate 
15924         definition of mono_type_get_name () from reflection.c and export the
15925         one in class.c.
15926
15927         * class.c: Class loading fixes from Bernie Solomon 
15928         (bernard@ugsolutions.com).
15929
15930         * reflection.c: Endianness fixes from Bernie Solomon 
15931         (bernard@ugsolutions.com).
15932         
15933 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
15934
15935         * assembly.h assembly.c: Define a file format version for AOT
15936         libraries.
15937         
15938         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
15939
15940         * appdomain.h (MonoJitInfo): New field to determine whenever the
15941         code is domain neutral.
15942         
15943 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
15944
15945         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
15946
15947 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
15948
15949         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
15950         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
15951         Avoid caching the result since strings must be domain specific. Fixes
15952         #48050.
15953
15954 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
15955
15956         * marshal.c (mono_marshal_init): Make this callable multiple times
15957         since it is hard to find a correct place to call it.
15958
15959         * object.c (mono_runtime_class_init): Execute static constructors in
15960         the correct appdomain.
15961
15962         * image.c (build_guid_table): Handle the case when multiple images have
15963         the same GUID.
15964
15965 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15966
15967         * icall.c: added a couple of icalls for System.Web.
15968
15969 2003-08-28  Martin Baulig  <martin@ximian.com>
15970
15971         * icall.c (ves_icall_Type_BindGenericParameters): Use
15972         `klass->generic_inst' instead of `&klass->byval_arg' in the
15973         mono_type_get_object() call.  The returned type must be
15974         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
15975
15976 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
15977
15978         * NOTES: New file.
15979
15980         * object.c (mono_class_proxy_vtable): Make it thread safe.
15981
15982         * pedump.c: Fix warning.
15983
15984         * object.c appdomain.h: Get rid of metadata_section. 
15985         It is no longer needed and it was causing deadlocks with domain->lock.
15986
15987         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
15988
15989 2003-08-26  Martin Baulig  <martin@ximian.com>
15990
15991         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
15992
15993 2003-08-26  Martin Baulig  <martin@ximian.com>
15994
15995         * pedump.c (main): Call mono_metadata_init(),
15996         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
15997         and mono_loader_init().
15998
15999 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
16000
16001         * loader.h: Add missing include to fix build.
16002
16003         * image.h: mono_image_load_references is no more.
16004
16005         * assembly.c: Reworked assembly loading to make it really thread safe.
16006         After these changes, the assembly returned by mono_assembly_open is
16007         fully initialized, i.e. all its references assemblies are loaded.
16008
16009         * assembly.c (mono_image_load_references): Renamed to 
16010         mono_assembly_load_references, and made private, since clients no
16011         longer need to call it.
16012
16013         * class.c: Removed calls to mono_assembly_load_references, since it was
16014         a source of deadlocks.
16015
16016         * loader.h loader.c class.h class.c: Protect data structures using a 
16017         new lock, the loader lock.
16018
16019         * class.c (mono_class_setup_vtable): Create temporary hash tables and
16020         GPtrArrays only when needed.
16021
16022         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
16023         into empty structures by mcs. Fixes pinvoke7.cs.
16024         
16025         * domain.c (mono_init): Call a new initialization function.
16026
16027         * appdomain.c (mono_runtime_init): Call the new initializer function
16028         of the marshal module.
16029
16030         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
16031         inserted into empty structures by mcs. Fixes pinvoke7.cs.
16032
16033         * marshal.h marshal.c: Added locks around the wrapper caches to make
16034         this module thread safe.
16035
16036         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
16037         this argument. Fixes pinvoke1.exe.
16038
16039 2003-08-25  Lluis Sanchez <lluis@ximian.com>
16040
16041         * object.h: Added call_type field to MonoMethodMessage and the corresponding
16042         enumeration of values. Removed fields to store remote call output values in
16043         MonoAsyncResult. Not needed any more.
16044         * object.c: Initialize call_type and async_result fields in mono_message_init.
16045         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
16046         dispatching the message.
16047         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
16048         async call to finish. To do it use a message with EndInvoke call type.
16049
16050 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
16051
16052         * loader.h loader.c (mono_method_hash_marhal_info): New function which
16053         determines whenever a method has marshalling info.
16054
16055 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16056
16057         * assembly.c: fix the build on windows.
16058
16059 2003-08-22 Lluis Sanchez <lluis@ximian.com>
16060
16061         * object.cs: Fixed bug #47785.
16062
16063 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
16064
16065         * string-icalls.c (StringReplace): If their are no occurances of
16066         the old string found return a reference to the supplied
16067         string. This saves some memory and matches MS behavoir.
16068         
16069 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16070
16071         * socket-io.c: fixed compilation for systems that define AF_INET6
16072         and don't define SOL_IP/SOL_IPV6.
16073
16074 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
16075
16076         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
16077         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
16078
16079         * rawbuffer.c rawbuffer.h: Make this module thread safe.
16080
16081         * domain.c: Make this module thread safe.
16082
16083         * domain.c (mono_init): Call new initialization function.
16084
16085         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
16086         reference types too. Fixes #38812.
16087
16088         * image.c (mono_image_init): Fixed warnings.
16089
16090         * class.c (mono_class_from_typeref): Handle assembly load failure
16091         correctly.
16092
16093         * appdomain.c (add_assemblies_to_domain): Handle the case when
16094         the references of an assembly are not yet loaded.
16095
16096         * metadata.c image.c assembly.c: Moved initialization of global
16097         variables to a separate function called at startup since lazy 
16098         initialization of these variables is not thread safe.
16099         
16100         * image.c assembly.c: Made this module thread safe by adding locks in 
16101         the appropriate places.
16102
16103         * domain.c (mono_init): Call the new initialization functions of the
16104         three modules.
16105
16106 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
16107
16108         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
16109           make a direct call. It is proxy's work to make the call asynchronous.
16110           mono_delegate_end_invoke(): If the targe is a proxy, just collect
16111           the return values.
16112         * object.cs: mono_method_call_message_new(): read AsyncResult and
16113           state object from parameters list, if this info is requested.
16114         * object.h: Added fields to store remote call output values in
16115           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
16116
16117 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16118
16119         * object.h: add needed fields to MonoThread.
16120         * threads.c, threads.h: allow registering a function to cleanup data
16121         allocated per thread by the JIT.
16122
16123 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16124
16125         * loader.h: portability fix by Bernie Solomon
16126         * <bernard@ugsolutions.com>.
16127
16128 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
16129
16130         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
16131         return a MonoArray. This simplifies the code and also ensures that
16132         the cache allways contains an object reference as a value.
16133
16134         * icall.c (ves_icall_get_parameter_info): Simplified using the new
16135         function.
16136
16137 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16138
16139         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
16140         fixes a problem with byte ordering when getting the address family for
16141         a socket.
16142
16143 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
16144
16145         * .cvsignore: Added monosn.
16146
16147         * reflection.h reflection.c loader.c: Added support for parameter
16148         marshalling to dynamically created types. Fixes #47295.
16149
16150 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
16151
16152         * rand.c: remove useless warnings.
16153
16154 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16155
16156         * class.c: implemented ldtoken for methods and fieldrefs.
16157
16158 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16159
16160         * threadpool.c: when mono_async_invoke was called, no one took care of
16161         monitoring the queue. So if the method invoked took some time and we
16162         got new async invoke requests after 500 ms (the thread created waited
16163         that long in WaitForSingleObject), the new async invoke was not called
16164         until the previous one finished.
16165
16166         This is fixed now. Thanks to Totte for helping with it.
16167
16168 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16169
16170         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
16171
16172 2003-08-11  Martin Baulig  <martin@ximian.com>
16173
16174         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
16175
16176 2003-08-06  Martin Baulig  <martin@ximian.com>
16177
16178         * mono-debug-debugger.c: Added support for static fields,
16179         properties and methods.
16180
16181 2003-08-06  Martin Baulig  <martin@ximian.com>
16182
16183         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16184         make this work for applications with multiple application domains.
16185
16186 2003-08-04  Martin Baulig  <martin@ximian.com>
16187
16188         * mono-debug-debugger.c: Completely reworked the type support; the
16189         most important thing is that we're now just using one single
16190         `MonoType' instance per type.
16191
16192 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16193
16194         * mono-endian.h, mono-endian.c, icall.c: Added icall
16195         ves_icall_System_Double_AssertEndianity to assert double word endianity
16196         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16197
16198 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16199
16200         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16201         support, icalls and fixes.
16202
16203 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16204
16205         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16206         classes that are a punctuation character in .NET is not the same a
16207         g_unichar_ispunct.
16208
16209 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16210
16211         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16212
16213 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16214
16215         * icall.c: Add new MemCopy internalcall.
16216         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16217         Simplified code; It is not necessary to handle all the cases here,
16218         as the C# code takes care of it.  Only handle the case of the name
16219         resource embedded into the assembly.
16220
16221         Changed signature to return the data pointer and the size of the
16222         data. 
16223
16224 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16225
16226         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16227         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16228
16229 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16230
16231         * socket-io.c: ignore EINTR error in select.
16232
16233 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16234
16235         * class.h, class.c: removed unused subclasses field in MonoClass.
16236
16237 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16238
16239         * icall.c: improve fix of get_base_definition(). If the parent class
16240           doesn't have the mehod, look at the parent of the parent.
16241         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16242           to check if a parameter is an in or out parameter
16243           (PARAM_ATTRIBUTE_IN is not set by default).
16244           mono_method_return_message_restore(): Use mono_class_value_size to
16245           get the size of a value type. mono_type_stack_size (parameterType)
16246           does not return the correct value if parameterType is byRef.
16247           mono_load_remote_field(), mono_load_remote_field_new(),
16248           mono_store_remote_field(), mono_store_remote_field_new():
16249           raise exception if the remote call returns an exception.
16250
16251 2003-07-28  Martin Baulig  <martin@ximian.com>
16252
16253         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16254         method.  This is a wrapper around mono_runtime_invoke() which
16255         boxes the instance object if neccessary.
16256
16257 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16258
16259         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16260         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16261
16262 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16263
16264         * icall.c: disable mcs bug workaround.
16265
16266 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16267
16268         * object.c (mono_runtime_class_init): Take the metadata_section
16269         mutex before obtaining the domain mutex.
16270
16271         * appdomain.h: Added definition of metadata_section mutex here. 
16272
16273         * object.c: define metadata_mutex here.
16274
16275 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16276
16277         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16278         fixed.
16279
16280 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16281
16282         * reflection.c: Fix bug #46669
16283
16284 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16285
16286         * exception.c:
16287         * exception.h:
16288         * icall.c:
16289         * object.h: fill in the type name for TypeLoadException.
16290
16291 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16292
16293         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16294         relationship between TypeBuilders while compiling corlib) and bug
16295         45993 (Array types returned from the runtime while compiling
16296         corlib were from the loaded corlib).
16297
16298 2003-07-22  Martin Baulig  <martin@ximian.com>
16299
16300         * mono-debug-debugger.c: Reworked the type support a bit more;
16301         distinguish between types and classes.
16302
16303 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16304
16305         * icall.c: add IsArrayImpl icall.
16306
16307 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16308
16309         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16310         initializing real_size only once. Also fix bug #46602.
16311
16312 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
16313
16314         * object.c: Renamed mono_metadata_section to metadata_section.
16315
16316 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
16317
16318         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
16319           empty array if the type is an array. Fixed.
16320           ves_icall_MonoMethod_get_base_definition: if the base method
16321           is abstract, get the MethodInfo from the list of methods of
16322           the class.
16323         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16324           and it was 1-based. Fixed in mono_param_get_objects.
16325
16326 2003-07-20  Martin Baulig  <martin@ximian.com>
16327
16328         * mono-debug.h: Set version number to 31.
16329         (mono_debug_init): Added `MonoDomain *' argument.
16330
16331         * mono-debug-debugger.c: Reworked the type support; explicitly
16332         tell the debugger about builtin types; pass the `klass' address to
16333         the debugger.
16334
16335 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16336
16337         * image.c: Allow new metadata tables to be loaded without a
16338         warning. Also update the warning message to give the new constant value.
16339                 
16340 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16341
16342         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16343         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16344         array type representation changes.
16345
16346 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16347
16348         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16349         on Environment.Exit () call.
16350
16351 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16352
16353         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16354         requires a matching corlib.
16355
16356 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16357
16358         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16359           Committed again without the CRs.
16360         
16361 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16362
16363         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16364           getting it from the "this" socket instance. Did not work
16365           if the socket is a subclass of Socket.
16366           Also fixed bug #35371.
16367
16368 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16369
16370         * metadata.c: fixed size for TypedByRef.
16371         * loader.c: when searching for a method, consider the vararg amrker.
16372         * unicode.c, decimal.c: constify some arrays.
16373
16374 2003-07-15  Dick Porter  <dick@ximian.com>
16375
16376         * socket-io.c: Fixed compilation for gcc < 3.2.
16377
16378         Fixed compilation for machines that don't have AF_INET6 (thanks to
16379         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16380
16381         Fixed compile warnings.
16382         
16383         Fixed formatting and line endings.
16384
16385 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16386
16387         * socket-io.h:
16388         * socket-io.c: Added IPv6 support.
16389
16390 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16391
16392         * class.c (mono_class_is_assignable_from): New function to implement
16393         the is_assignable_from logic. Used by mono_object_isinst, 
16394         Type::IsAssignableFrom () and the interpreter.
16395
16396         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16397         Object, even interfaces.
16398         
16399         * object.c (mono_object_isinst): Implement in terms of 
16400         is_assignable_from.
16401
16402         * icall.c (ves_icall_type_is_assignable_from): New icall.
16403
16404 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16405
16406         * domain.c (foreach_domain): fix compiler warning.
16407
16408 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16409
16410         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16411         not available on all plattforms
16412
16413 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16414
16415         * image.h image.c: Store the metadata version string in MonoImage.
16416         * icall.c: New icall to retrieve the image version.
16417         * reflection.c (create_dynamic_image): Fill in the image version field
16418         * reflection.c (build_compressed_metadata): Use the image version
16419         from the image structure.
16420
16421 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16422
16423         * appdomain.c: modified comment.
16424         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
16425         That will be its last iteration when mono_gc_cleanup is called from
16426         mono_runtime_cleanup and before the domain is unloaded.
16427
16428         Fixes bug #45962.
16429
16430 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
16431
16432         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
16433         attributes.
16434
16435 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16436
16437         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
16438         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
16439         Bernie Solomon <bernard@ugsolutions.com>.
16440
16441 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16442
16443         * object.c, object.h: provide mono_object_new_fast() for faster
16444         allocation in some special cases.
16445
16446 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
16447
16448         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
16449         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
16450
16451 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
16452
16453         * threadpool.c: fix leaks.
16454
16455 2003-07-01  Dick Porter  <dick@ximian.com>
16456
16457         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
16458         using MonoGHashTables.  Fixes threadpool bug posted to list.
16459
16460 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16461
16462         * image.h, image.c: added support to load an assembly from a byte array.
16463         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
16464         assembly bundle support.
16465
16466 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
16467
16468         * threadpool.c (mono_thread_pool_add): keep a reference to the
16469         AsyncResult to prevent GC
16470
16471 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16472
16473         * class.c: leak fix.
16474
16475 2003-06-25  Dick Porter  <dick@ximian.com>
16476
16477         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
16478         for the async object, the WaitHandle object will close the handle.
16479         Fixes bug 45321.
16480
16481 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16482
16483         * class.c: in mono_array_class_get (), lookup from the hash with the
16484         same type we insert: this works around a bug in
16485         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
16486         lluis. The real fix will have to wait for after the release.
16487
16488 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16489
16490         * icall.c: fix memory leak when getting type members.
16491
16492 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16493
16494         * reflection.c: added more pubtoken special cases.
16495
16496 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
16497
16498         * class.c: handle field offset correctly when class size
16499         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
16500
16501 2003-06-20  Martin Baulig  <martin@ximian.com>
16502
16503         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
16504         *image' field.
16505
16506 2003-06-20  Martin Baulig  <martin@ximian.com>
16507
16508         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
16509
16510 2003-06-20  Martin Baulig  <martin@ximian.com>
16511
16512         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
16513         just distinguish between variables in registers and variables at
16514         an offset relative to a register.
16515
16516 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16517
16518         * icall.c: #ifdef out latest changes until mcs is fixed.
16519
16520 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16521
16522         * icall.c: return members in metadata order.
16523
16524 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16525
16526         * icall.c: avoid infinite loop in GetTimeZoneData.
16527
16528 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
16529
16530         * icall.c: added Marshal.Prelink/All icalls.
16531
16532 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16533
16534         * object.c, object.h: fix warnings and do some overflow checking
16535         when creating arrays.
16536
16537 2003-06-17  Dick Porter  <dick@ximian.com>
16538
16539         * file-io.h:
16540         * file-io.c: File attributes need to be tweaked slightly when
16541         passed from the managed to the w32 world.
16542
16543 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16544         * profiler.h profiler-private.h profiler.c: Rework last patch
16545         based on suggestion by Paolo.
16546         
16547 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16548
16549         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
16550         instruction level coverage data collection.
16551         * profiler.h profiler.c (: Added new callback function which can be
16552         used by the profiler to limit which functions should have coverage
16553         instrumentation.
16554         * profiler.c (mono_profiler_load): Call g_module_build_path to
16555         generate the file name of the profiler library.
16556
16557 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16558
16559         * profiler.c, profiler.h, profiler-private.h: added basic block 
16560         coverage profiling API.
16561
16562 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
16563
16564         * reflection.c (mono_reflection_create_runtime_class): Add support
16565         for events in dynamically generated code.
16566
16567         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
16568         not allocated.
16569
16570 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16571
16572         * icall.c: when getting timezone info, return reasonable values if we
16573         can't get the actual data.
16574
16575 2003-06-14  Dick Porter  <dick@ximian.com>
16576
16577         * threads.c (start_wrapper): Remove the reference to the thread
16578         object in the TLS data, so the thread object can be finalized.
16579         This won't be reached if the thread threw an uncaught exception,
16580         so those thread handles will stay referenced :-( (This is due to
16581         missing support for scanning thread-specific data in the Boehm GC
16582         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
16583
16584 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
16585
16586         * reflection.c: ensure streams and tables are first allocated with
16587         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
16588
16589 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16590
16591         * icall.c: fixed GetElementType for byrefs (bug# 44792).
16592
16593 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
16594
16595         * reflection.c (mono_reflection_create_runtime_class): Add support for
16596         properties to dynamically created classes.
16597         * reflection.c: Fix a few places where non-MonoObjects were inserted
16598         into the tokens hashtable.
16599
16600 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16601
16602         * object.c: some support to handle out of memory exceptions.
16603
16604 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
16605
16606         * marshal.c (mono_marshal_get_native_wrapper): support reference
16607         return types
16608
16609 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16610
16611         * object.h, object.c: more portability stuff from Bernie Solomon.
16612         Unexport mono_object_allocate(). Added mono_object_unbox ().
16613         Set exitcode when an unhandled exception is thrown.
16614
16615 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
16616
16617         * marshal.c (mono_marshal_get_native_wrapper): use custom
16618         marshaler for return types.
16619
16620 2003-06-10  Dick Porter  <dick@ximian.com>
16621
16622         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
16623         ip_mreq is available
16624
16625 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
16626
16627         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
16628         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
16629         by Bernie Solomon <bernard@ugsolutions.com>.
16630
16631 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
16632
16633         * gc.c (mono_gc_init): Avoid error message on shutdown when
16634         GC_DONT_GC=1 is used.
16635
16636         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
16637         New icall to return the GUID of a module.
16638
16639 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16640
16641         * class.c: ensure instance size always includes the parent's size
16642         even whem class size is set explicitly (fixes bug#44294).
16643
16644 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16645
16646         * profiler.h, profiler.c: made the simple profiler thread-safe,
16647         get more accurate timing info. Allow the loading of an
16648         externally-developed profiler module.
16649
16650 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
16651
16652         * marshal.c (mono_marshal_get_native_wrapper): improved
16653         class/byref arguments.
16654         (mono_marshal_get_native_wrapper): better string marshaling support.
16655
16656 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
16657
16658         * class.c: ensure .pack and .size are handled correctly and
16659         simplified layout of static fields.
16660
16661 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
16662
16663         * appdomain.c
16664         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
16665
16666         * loader.c (mono_lookup_pinvoke_call): look for modules in the
16667         current directory (fix bug 44008)
16668
16669 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
16670
16671         * marshal.c (mono_marshal_get_native_wrapper): started support for
16672         custom marshalers.
16673         (mono_delegate_to_ftnptr): consider marshalling specifications
16674
16675 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
16676
16677         * reflection.c, reflection.h: emit custom marshal info.
16678
16679 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16680
16681         * object.c: free the GError.
16682         * icall.c: added CloseEvent_internal.
16683         * threads.[ch]:
16684         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
16685         call.
16686
16687 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
16688
16689         * loader.c (mono_method_get_signature): Add support for dynamic
16690         assemblies.
16691
16692 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
16693
16694         * reflection.c: fixed bug #43905.
16695
16696 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16697
16698         * class.c, domain.c, icall.c, metadata.h, object.h: support for
16699         handling TypedReference and ArgIterator.
16700         * loader.c, loader.h: added function to get signature at call site.
16701
16702 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16703
16704         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
16705         data readonly. Buglets and warning fixes. Some MethodSpec support.
16706
16707 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16708
16709         * class.h, class.c, object.c: remove relative numbering support.
16710
16711 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
16712
16713         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
16714         free the string, until we get a chance to fix Gtk#
16715
16716 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16717
16718         * marshal.c: revert last patch.
16719
16720 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
16721
16722         * icall.c: updates for new mono_class_vtable() not calling
16723         the type constructor anymore.
16724
16725 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
16726
16727         * object.h, object.c: separate vtable creation from type
16728         initialization. Make running the .cctor thread safe.
16729
16730 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
16731
16732         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
16733
16734 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
16735
16736         * loader.c (mono_get_method): consider calling convention
16737
16738 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
16739
16740         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
16741         to return the invisible global type for a module.
16742
16743         * reflection.c (mono_image_build_metadata): Emit global fields too.
16744
16745 2003-05-20  Peter Williams  <peterw@ximian.com>
16746
16747         * loader.c (mono_lookup_internal_call): Add a few newlines.
16748
16749 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
16750
16751         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
16752         literal strings.
16753
16754         * appdomain.c (set_domain_search_path): Recalculate search path when
16755         AppDomainSetup.PrivateBinPath changes.
16756
16757         * object.c (mono_class_compute_gc_descriptor): It turns out some
16758         parts of the class libs (like System.Thread) holds pointers to
16759         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
16760         to treat native int a pointer type here.
16761         
16762 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
16763
16764         * appdomain.h, domain.c: add hashtable for jump target resolution.
16765
16766 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
16767
16768         * reflection.h reflection.c icall.c: Added new icalls 
16769         GetManifestResourceInfoInternal, GetModulesInternal and support
16770         infrastructure.
16771
16772 2003-05-16  Dick Porter  <dick@ximian.com>
16773
16774         * icall.c:
16775         * file-io.h:
16776         * file-io.c: Implement System.IO.MonoIO::GetTempPath
16777
16778 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
16779
16780         * object.c: mono_store_remote_field: little fix to previous patch.
16781
16782 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16783
16784         * class.c: add constructors to array classes.
16785         * icall.c: special case array construction for InternalInvoke (),
16786
16787 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
16788
16789         * class.h class.c reflection.c object.c: Added support for field
16790         defaults in dynamically generated classes.
16791
16792 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
16793
16794         * reflection.c: properly encode charset for ddlimport.
16795
16796 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
16797
16798         * threads.c: allow compiling without GC.
16799
16800 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16801
16802         * appdomain.h, object.c, object.h, threads.c, threads.h: added
16803         handling of thread static data.
16804
16805 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16806
16807         * reflection.h, reflection.c: added mono_custom_attrs_free ().
16808
16809 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
16810
16811         * class.c (mono_array_class_get): always set the serializable flags
16812         (mono_array_class_get): always set the SEALED attribute for array types
16813
16814 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
16815
16816         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
16817         attributes (fix for bug 42021).
16818
16819 2003-05-12  Dick Porter  <dick@ximian.com>
16820
16821         * gc.c: Don't run finalizers when the finalizer thread is
16822         finishing up, because the default domain has already been
16823         destroyed.
16824
16825 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
16826
16827         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
16828         value is null, we should throw an exception.   This is slightly
16829         different than the other conventions used for the constructor.
16830
16831 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16832
16833         * socket-io.c: fixed windows build.
16834
16835 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16836
16837         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
16838
16839 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
16840
16841         * object.c (mono_string_new_wrapper): Compatibility fix for MS
16842         compilers.
16843
16844 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
16845
16846         * class.c (mono_class_layout_fields): Add experimental GC aware
16847         auto layout facility. Requires class library changes to work correctly.
16848
16849         (mono_class_setup_vtable): Avoid overriding explicit interface
16850         method implementations. Fixes iface3.exe test.
16851
16852         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
16853         object reference.
16854         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
16855         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
16856
16857         * metadata.h: Add new type classification macro which determines
16858         whenever the type holds an object reference.
16859
16860 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
16861
16862         * marshal.c (mono_marshal_get_native_wrapper): cleanups
16863
16864 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
16865
16866         * gc.c (finalizer_thread): Work around a GC bug.
16867
16868 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
16869
16870         * marshal.c (emit_struct_conv): allow unions
16871
16872         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
16873
16874 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
16875
16876         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
16877
16878 2003-05-06  Martin Baulig  <martin@ximian.com>
16879
16880         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
16881
16882 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16883
16884         * socket-io.c:
16885         (Select_internal): allow NULLs, don't create arrays if not needed.
16886         Coupled with Socket.cs changes.
16887
16888         * threadpool.c:
16889         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
16890         register a finalizer for it that will close the semaphore handle. This
16891         fixes the leak and make Lupus' test run with > 4080 loops.
16892
16893 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
16894
16895         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
16896         Jerome Laban (bug #42287)
16897
16898 2003-05-02  Martin Baulig  <martin@ximian.com>
16899
16900         * debug-mono-symfile.h
16901         (MonoSymbolFile): Moved declaration into mono-debug.h.
16902         (MonoDebugMethodJitInfo): Likewise.
16903         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
16904         argument.
16905         (_mono_debug_address_from_il_offset): Take a
16906         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
16907
16908         * mono-debug.h
16909         (MonoDebugDomainData): New struct.
16910         (mono_debug_get_domain_data): New function.
16911         (mono_debug_add_method): Take an additional `MonoDomain *'
16912         argument.
16913         (mono_debug_source_location_from_address): Likewise.
16914         (mono_debug_il_offset_from_address): Likewise.
16915         (mono_debug_address_from_il_offset): Likewise.
16916
16917 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
16918
16919         * reflection.c: one more check for null type in custom attrs.
16920
16921 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16922
16923         * reflection.c: avoid warning (comparison is always false due to limited
16924         range of data type).
16925
16926 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16927
16928         * icall.c: throw an exception in Type.GetField if the argument 'name'
16929         is NULL.
16930
16931 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
16932
16933         * reflection.c: fixed handling of enums in named arguments to custom
16934         attributes (bug #42123).
16935
16936 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
16937
16938         * reflection.c: use the right array element type and handle
16939         a null for a Type argument, too.
16940
16941 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
16942
16943         * reflection.c: handle arrays as arguments to custom attributes.
16944
16945 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16946
16947         * reflection.c: handle a string value in a custom attr
16948         ctor that takes an object.
16949
16950 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
16951
16952         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
16953         (fix bug #42063)
16954
16955 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
16956
16957         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
16958
16959 2003-04-27  Martin Baulig  <martin@ximian.com>
16960
16961         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
16962         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
16963         MONO_DEBUGGER_EVENT_BREAKPOINT.
16964         (mono_breakpoint_trampoline_code): Removed.
16965         (mono_debugger_event_handler): The last argument is now a
16966         `guint32'.
16967         (mono_debugger_insert_breakpoint_full): Removed the
16968         `use_trampoline' argument.
16969         (mono_debugger_method_has_breakpoint): Likewise.
16970         (mono_debugger_trampoline_breakpoint_callback): Renamed to
16971         mono_debugger_breakpoint_callback(); take the method and
16972         breakpoint number as arguments.
16973
16974 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
16975
16976         * metadata.c: fix off by one when loading parameters attributes.
16977
16978 2003-04-24  Martin Baulig  <martin@ximian.com>
16979
16980         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
16981
16982 2003-04-24  Martin Baulig  <martin@ximian.com>
16983
16984         * mono-debug-debugger.c: Moved all code which interacts with the
16985         Mono Debugger here.
16986
16987         * debug-mono-symfile.c: This code now just deals with the symbol
16988         file itself, the debugger code is now in mono-debug-debugger.c.
16989
16990 2003-04-23  Martin Baulig  <martin@ximian.com>
16991
16992         * mono-debug.c (mono_debug_source_location_from_il_offset):
16993         New method; like mono_debug_source_location_from_address(), but
16994         takes an IL offset instead of a machine address.
16995
16996 2003-04-23  Martin Baulig  <martin@ximian.com>
16997
16998         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
16999         `line' field; this is now computed by the debugger.
17000
17001 2003-04-23  Martin Baulig  <martin@ximian.com>
17002
17003         * mono-debug.[ch]: New files.  This is the new debugging interface.
17004
17005         * mono-debug-debugger.[ch]: New files.  Moved all code which
17006         interacts with the Mono Debugger here.
17007
17008 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
17009
17010         * domain.c (mono_init): initialize mono_defaults.monitor_class
17011
17012 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
17013
17014         * reflection.c (method_encode_code): Add a spicy exception to help
17015         future compiler authors.
17016
17017 2003-04-21  Martin Baulig  <martin@ximian.com>
17018
17019         * icall.c
17020         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17021         Make this work with relative pathnames; g_filename_to_uri() needs
17022         an absolute filename.
17023
17024 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
17025
17026         * icall.c: Track name changes in Object and ValueType.
17027
17028 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
17029
17030         * metadata.c (mono_type_stack_size): size should be a multiple of
17031         sizeof (gpointer)
17032
17033 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17034
17035         * gc.c:
17036         (internal_domain_finalize): moved into mono_domain_finalize. No need
17037         to create another thread because the finalizers will be run in the
17038         finalizer thread.
17039         
17040         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
17041         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
17042         to be run (MS does this too).
17043
17044 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
17045
17046         * object.c (mono_class_compute_gc_descriptor): Update comment.
17047
17048         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
17049
17050         * image.h: Add synchronized wrapper cache.
17051
17052         * image.c (do_mono_image_open): Initialize cache.
17053
17054         * reflection.c (create_dynamic_mono_image): Initialize cache.
17055
17056 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17057
17058         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
17059         ves_icall_System_Buffer_ByteLengthInternal.
17060
17061 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17062
17063         * reflection.c: setup klass->nested_in earlier. Allow
17064         a dash in the assembly name.
17065
17066 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
17067
17068         * metadata.c (mono_type_to_unmanaged): dont access
17069         type->data.klass for MONO_TYPE_OBJECT
17070         (mono_type_to_unmanaged): consider System.Delegate class
17071
17072 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
17073
17074         * class.c: just setup supertypes in the proper place instead of
17075         initializing the full element class for arrays.
17076
17077 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17078
17079         * class.c: ensure the element class of arrays is initialized.
17080         Setup the supertype info for array classes, too.
17081
17082 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
17083
17084         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
17085
17086 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17087
17088         * Makefile.am: re-added -m option when running cygpath. This way,
17089         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
17090         separator.
17091         * mono-config.c: same codepath for locating mono config file for WIN32
17092         and the rest.
17093         * assembly.c: if mono_assembly_setrootdir is called, don't override
17094         the value set.
17095
17096 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17097
17098         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
17099         MONO_ASSEMBLIES variable.
17100
17101 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
17102
17103         * icall.c: added Assembly::GetNamespaces() icall.
17104
17105 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17106
17107         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
17108
17109 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
17110
17111         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
17112         * object.c: fixed bug in the construction of vtable for proxies
17113
17114 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
17115
17116         * object.c (mono_array_new): Mark mono_array_new as an icall.
17117
17118 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17119
17120         * class.c: fixed test for public method when overriding interfaces.
17121         Closes bug #40970.
17122
17123 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17124
17125         * appdomain.h, domain.c: added mono_domain_foreach() to
17126         be able to access the currently loaded appdomains.
17127         * object.c: make string interning work across sppdomains.
17128         Mark some functions for use as icalls.
17129
17130 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
17131
17132         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
17133
17134         * reflection.h reflection.c: Allocate long living data using 
17135         GC_MALLOC_ATOMIC so the collector does not need to scan it.
17136
17137         * reflection.c: Double the allocation size in streams instead of
17138         increasing it, to prevent unneccesary copying on large assemblies.
17139         
17140         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
17141         creation if the assembly does not have the Run flag set.
17142
17143 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
17144
17145         * class.h: avoid the C++ keywords in header files (Jerome Laban
17146         spotted and fixed this).
17147
17148 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17149
17150         * object.c:
17151         (mono_unhandled_exception): fill in the arguments for the
17152         UnhandledException event. Only trigger that event for the default
17153         domain (as MS does).
17154
17155 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
17156
17157         * object.c: Improve typed allocation stuff based on suggestions from
17158         Paolo. Also turn it on if the GC library supports it.
17159
17160 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17161
17162         * object.c object.h class.h: Added experimental typed allocation
17163         facility using the interfaces in gc_gcj.h.
17164
17165         * os/gc_wrapper.h: Added new include files.
17166         
17167 2003-04-03  Martin Baulig  <martin@ximian.com>
17168
17169         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
17170         which is not yet enabled by default.
17171
17172         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
17173         functions.
17174         (mono_gc_lock, mono_gc_unlock): New static functions.
17175
17176         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
17177         functions; stop/start the world for the garbage collector.  This
17178         is using the windows API; we need to complete the SuspendThread()/
17179         ResumeThread() implementation in the io-layer to make this work on Unix.
17180         (mono_gc_push_all_stacks): New public function; tells the garbage
17181         collector about the stack pointers from all managed threads.
17182
17183 2003-04-03  Martin Baulig  <martin@ximian.com>
17184
17185         * object.h (MonoThread): Added `gpointer stack_ptr'.
17186
17187         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17188
17189 2003-04-03  Martin Baulig  <martin@ximian.com>
17190
17191         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17192
17193 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17194
17195         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17196         field.last.
17197
17198 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17199
17200         * loader.c (mono_lookup_internal_call): Report the corlib that is
17201         out of sync.
17202
17203 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17204
17205         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17206         System.DBNull (it's class not valuetype).
17207
17208 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17209
17210         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17211         if the array method was already assigned a token (fixes bug#40646).
17212
17213 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17214
17215         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17216         if no assembly is given.
17217
17218 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17219
17220         * metadata.h: Added the new tables.
17221
17222         * row-indexes.h: Added definitions for new tables.
17223
17224         * metadata.c: Add schemas for new tables, and add support for
17225         computing the sizes of them.
17226
17227         * class.c: Update for handling the new type cases.
17228
17229 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17230
17231         * metadata.h (MONO_TYPE_IS_VOID): new macro
17232
17233 2003-03-31  Martin Baulig  <martin@ximian.com>
17234
17235         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17236
17237         * threads.c (mono_thread_new_init): Call `thread_created' in the
17238         mono_thread_callbacks.
17239
17240 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17241
17242         * loader.h: added marshalbyrefobject_class to mono_defaults
17243         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17244         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17245           generation of output parameters.
17246           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17247         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17248           contextbound and the target object belongs to the context of the caller.
17249         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17250         * object.c: Implemented support for interfaces and abstract classes
17251           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17252           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17253
17254 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17255
17256         * class.h class.c (mono_class_is_subclass_of): New function.
17257         
17258         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17259         routines for most common case (calls from ArrayList::ToArray).
17260
17261         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17262         routine so programs which call Environment::Exit() can be profiled.
17263
17264         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17265         Added MONO_ARCH_SAVE_REGS.
17266
17267         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17268
17269 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17270
17271         * blob.h: Add a couple of new MonoType types definitions.
17272
17273         * tabledefs.h: Add a couple of new call convs.
17274
17275 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17276
17277         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17278         the layout of the class.
17279
17280         * reflection.c (alloc_table): double the size on overflow to avoid
17281         unnecessary copying.
17282
17283         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17284         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17285         null so it can be garbage collected.
17286         
17287 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17288
17289         * reflection.c (mono_reflection_get_type): Return the resolved type
17290         only if it is in the assembly we searched.
17291
17292         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17293
17294         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17295         method.
17296
17297 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17298
17299         * appdomain.c:
17300         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17301         the right one is 'file:///blah', but MS allows it.
17302         * assembly.c:
17303         (mono_assembly_open): allow 'file://blah'
17304
17305         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17306
17307 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17308
17309         * socket-io.c: fixes bug #40310.
17310
17311 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
17312
17313         * reflection.c (mono_reflection_parse_type): handle deeply nested
17314         types correctly.
17315
17316         * reflection.c (mono_image_create_token): Use unique token values
17317         since they will be put into a hash table.
17318
17319         * class.c (mono_class_setup_vtable): If a method occurs in more than
17320         one place in the vtable, and it gets overriden, then change the
17321         other occurances too.
17322
17323         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17324         object as return type.
17325
17326 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17327
17328         * icall.c: Deleted "ToString" implementation for double and float
17329         because they are full implemented in managed code.
17330
17331 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17332
17333         * reflection.c, reflection.h: implemented and exported functions
17334         to retrieve info about custom attributes.
17335
17336 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17337
17338         * appdomain.c: moved Uri handling to assembly.c
17339         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17340         work when using a file Uri in *nix and windows.
17341
17342         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17343         GetReferencedAssemblies.
17344
17345 2003-03-18  Dick Porter  <dick@ximian.com>
17346
17347         * icall.c: Rename a couple of internal calls
17348
17349         * threads.c: Set the thread state to Stopped when a thread exits.
17350         Fixes bug 39377.
17351
17352 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17353
17354         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17355         New icall.
17356
17357         * object.c (mono_class_vtable): fix warning.
17358
17359 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17360
17361         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17362
17363         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17364         memory.
17365         (method_encode_clauses): Create exception info structures in the right
17366         order.
17367         (mono_reflection_setup_internal_class): Initialize supertypes field.
17368
17369         * class.c object.c: Handle interfaces which implement other interfaces 
17370         correctly.
17371
17372         * class.h class.c: Move the supertypes array initialization code into 
17373         a separate function so it can be used for dynamic types too. Also call
17374         it earlier, in mono_class_init(), since it can be used before the
17375         type is initialized.
17376
17377 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17378
17379         * Makefile.am:
17380         * assembly.c:
17381         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17382
17383         * appdomain.c:
17384         * appdomain.h:
17385         * marshal.c:
17386         * object.c: remove warnings.
17387
17388 2003-03-13  Martin Baulig  <martin@ximian.com>
17389
17390         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17391         (MonoDebugLexicalBlockEntry): New types.
17392
17393         * debug-mono-symfile.c
17394         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17395
17396 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17397
17398         * process.c: ret can be any non-zero value accroding to MS doc.
17399
17400 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17401
17402         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17403         fixing a warning for a miss-used prototype, would have cause
17404         random memory corruption.
17405
17406 2003-03-07  Martin Baulig  <martin@ximian.com>
17407
17408         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17409         getting really annoying ....
17410
17411 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17412
17413         * reflection.c (fixup_method): added support for array methods.
17414
17415 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17416
17417         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17418         (pointed out by Michael Adams).
17419
17420 2003-03-04  Dick Porter  <dick@ximian.com>
17421
17422         * icall.c: Temporarily reverted the Double and Single ToString()
17423         change, because it broke nunit.
17424
17425 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
17426
17427         * object.h, threads.h: make include files compatible with C++
17428         (patch by Jerome Laban <jlaban@wanadoo.fr>).
17429
17430 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17431
17432         * icall.c: Erased ToString helper functions for Double and Single.
17433         Now, that implementations ar all in managed code (Double and Single
17434         Formatters).
17435
17436 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
17437
17438         * appdomain.c: Added method for initializing the default context of
17439         a domain. Added internal call for getting the default context.
17440         * appdomain.h: Added context variable in MonoDomain struct.
17441         * domain.c: mono_domain_set also sets the default context of the domain
17442         * icall.c: Mapped internal method InternalGetDefaultContext.
17443         * object.c: mono_object_get_virtual_method returns always a remoting
17444         wrapper if the object is a transparent proxy.
17445         mono_runtime_invoke_array: when creating an object by calling the
17446         constructor, if the created object is a proxy, then the constructor should
17447         be called using the a remoting wrapper.
17448
17449 2003-03-03  Dick Porter  <dick@ximian.com>
17450
17451         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
17452         variable so it compiles on solaris.  Problem spotted by
17453         Christopher Taylor <ct@cs.clemson.edu>
17454
17455 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17456
17457         * appdomain.c:
17458         (get_info_from_assembly_name): don't leak value.
17459
17460         * icall.c:
17461         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
17462         result.
17463
17464 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
17465
17466         * assembly.c: export mono_image_load_references ().
17467         * class.c: handle function pointers. mono_class_from_name() now
17468         supports nested type names directly.
17469
17470 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
17471
17472         * reflection.h reflection.c: Encode already created dynamic methods 
17473         and fields correctly as a DEF instead of a REF.
17474
17475         * reflection.c: Get rid of the force_ref argument to 
17476         mono_image_typedef_or_ref since it was wrong in the first place.
17477
17478         * string-icalls.c: add error checking to string constructors according
17479         to the MSDN docs.
17480
17481         * reflection.c: Emit types in the order their TypeBuilders were 
17482         created. Previously, a new table index was assigned to each type before
17483         the tables were emitted. This was wrong because the signature blob
17484         might already refer to a type by its original table index.
17485
17486 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
17487
17488         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
17489         change.
17490         
17491 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17492
17493         * Makefile.am: make assemblies dir have \ instead of / on windows.
17494
17495 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
17496
17497         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
17498         iterate over the NESTEDCLASS table using a linear search since the
17499         table is not guaranteed to be sorted by the secondary key.
17500
17501         * class.c (mono_class_create_from_typedef): fixed up call to
17502         mono_metadata_nesting_typedef.
17503         
17504 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
17505
17506         * marshal.c (mono_string_to_byvalstr): clear the memory as
17507         suggested by Jerome Laban <jlaban@wanadoo.fr>
17508
17509 2003-02-26  Dick Porter  <dick@ximian.com>
17510
17511         * process.c: Cope with padding in .rsrc blocks
17512
17513 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17514
17515         * metadata.h: reverted the filter_len change, it breaks reflection
17516         
17517 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17518
17519         * metadata.h: added a new field to store the filter_len
17520         
17521
17522 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
17523
17524         * reflection.c: handle custom attributes for types and members
17525         created with Reflection.Emit (bug#38422).
17526
17527 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
17528
17529         * reflection.c: define RTSpecialName automatically for constructors for
17530         compatibility with MS.NET.
17531
17532         * reflection.c (mono_reflection_create_runtime_class): initialize
17533         nested_in field of dynamically created classes.
17534
17535 2003-02-22  Martin Baulig  <martin@ximian.com>
17536
17537         * debug-mono-symfile.h: Incremented version number.
17538
17539 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17540
17541         * object.h icall.c process.c: fix warnings.
17542
17543 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17544
17545         * appdomain.h appdomain.c:
17546         (mono_domain_try_type_resolve): split the 
17547         name_or_tb argument into a name and a tb argument.
17548         (mono_domain_has_type_resolve): new function to check whenever the
17549         application has registered a TypeResolve event handler.
17550         
17551         * icall.c reflection.h reflection.c: move the type resolve logic into
17552         mono_reflection_get_type () so it will be invoked when 
17553         Assembly::GetType () is called.
17554
17555         * reflection.c:
17556         (mono_reflection_get_type): renamed to get_type_internal.
17557         (mono_reflection_get_type): fixed type name generation so it works 
17558         for nested types too.
17559         (mono_reflection_get_type): call has_type_resolve () to avoid the 
17560         costly type name generation if there is no resolve event handler.
17561
17562 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17563
17564         * class.c, image.c: load exported types from file references.
17565
17566 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
17567
17568         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
17569           used to cache the managed methods used to create proxies and make 
17570           remote invocation of methods.
17571         * class.h: Added in MonoVTable a flag to indicate that a class needs 
17572           to be remotely created.
17573         * object.c: Modified the method mono_class_vtable(). It now initializes 
17574           the remote flag of the vtable. Modified mono_object_new_specific(), 
17575           so now it checks the remote flag.
17576         * icall.c: Added a couple of internal methods, one for enabling instance 
17577           creation interception for a type, and one for creating objects bypassing
17578           the remote check.
17579
17580 2003-02-18  Martin Baulig  <martin@ximian.com>
17581
17582         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
17583         New interncall to get a method's metadata token.
17584
17585         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
17586         New interncall for the debugger.
17587
17588 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
17589
17590         * class.c (mono_class_setup_vtable): allocate supertype array
17591
17592 2003-02-18  Martin Baulig  <martin@ximian.com>
17593
17594         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
17595
17596 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17597
17598         * reflection.c:
17599         (assembly_name_to_aname): jump over unknown properties (i've found
17600         something like: 'type, assembly, version=xxx, custom=null, public...',
17601         so now will ignore custom=null and still get the rest of the values).
17602
17603 2003-02-17  Dick Porter  <dick@ximian.com>
17604
17605         * threads.c: Have Thread.Start() wait for a semaphore to signal
17606         that the thread has set up all its local data.  This fixes bug
17607         34323, where Abort() raced the new thread's TLS data.
17608
17609         Also removes the handle_store() call from start_wrapper, because
17610         threads are now always created suspended and there is no longer a
17611         race between the parent and child threads to store the info.
17612
17613 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
17614
17615         * image.c: explain the #- heap issue in a message, hopefully
17616         avoiding FAQs on mono-list.
17617
17618 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17619
17620         * icall.c:
17621         (GetEntryAssembly): if the domain has not invoked
17622         AppDomain.ExecuteAssembly yet, return the assembly of the default
17623         AppDomain.
17624
17625 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
17626
17627         * class.c (mono_ldtoken): make it work in dynamic assemblies.
17628
17629 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
17630
17631         * metadata.c, reflection.c: simple speedup to type hash
17632         and equals code.
17633
17634 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
17635
17636         * image.c, image.h, class.c, assembly.c: move module loading
17637         to MonoImage. When loading metadata, consider alignemnet from
17638         the start of metadata, not from the metadata address in memory.
17639
17640 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
17641
17642         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
17643         AssemblyBuilder objects. Factored out custom attribute creation into
17644         a separate function.
17645         (create_custom_attr): new function to create custom attributes.
17646
17647 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
17648
17649         * Makefile.am: Got tired of typing the full pathname to pedump.
17650         Until there is another option, am installing this.
17651
17652 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
17653
17654         * class.c (class_compute_field_layout): always set field->parent 
17655         (mono_ldtoken): use mono_defaults.fieldhandle_class;
17656
17657 2003-02-11  Dick Porter  <dick@ximian.com>
17658
17659         * threads-types.h:
17660         * monitor.c: Rewrote Monitor, making lock much faster and
17661         Pulse/Wait work as specified.  Also uses much fewer handles, and only
17662         creates them as needed.
17663
17664         * exception.c: Added SynchronizationLockException
17665
17666         * threads.c: Deleted old Monitor implementation.  The new one is
17667         in a new file.
17668
17669 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
17670
17671         * class.c: handled TypedReference type code. Set the correct size for
17672         class data. Setup interface_offsets for interface classes, too.
17673
17674 2003-02-09  Martin Baulig  <martin@ximian.com>
17675
17676         * debug-mono-symfile.h: Reflect latest symbol writer changes.
17677
17678 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
17679
17680         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
17681         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
17682         * object.c: fixed mono_object_get_virtual_method () for interfaces.
17683         * verify.c: check for code that runs after the end of the method.
17684
17685 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17686
17687         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
17688         "System.Math::Round2".
17689         * sysmath.h: Added Floor, Round and Round2 definitions.
17690         * sysmath.c: Modified certain functions that were not 100% compliant
17691         with MS.NET (math precision) and added the implementation of Floor,
17692         Round and Round2.
17693
17694 2003-02-07  Martin Baulig  <martin@ximian.com>
17695
17696         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
17697
17698 2003-02-07  Martin Baulig  <martin@ximian.com>
17699
17700         * debug-mono-symfile.c: Reflected latest symwriter changes.
17701         (mono_debug_create_mono_symbol_file): Removed.
17702         (mono_debug_open_mono_symbol_file): Take an argument which
17703         specifies whether to create a dynamic symbol file.
17704
17705 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
17706
17707         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
17708
17709 2003-02-05  Martin Baulig  <martin@ximian.com>
17710
17711         * reflection.c (mono_image_build_metadata): Make this public,
17712         protect it against being called multiple times, don't create
17713         resources and don't build the compressed metadata here.
17714         (mono_image_create_pefile): Do this here.
17715
17716         * icall.c
17717         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
17718
17719 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17720
17721         * socket-io.c: fixed bug #36322.
17722
17723 2003-02-06  Piers Haken <piersh@friskit.com>
17724
17725         * appdomain.[ch]:
17726         * class.h:
17727         * debug-mono-symfile.c:
17728         * icall.c:
17729         * loader.c:
17730         * mono-config.c:
17731         * monosn.c:
17732         * reflection.c:
17733         * socket-io.c: warning cleanups
17734
17735 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
17736
17737         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
17738         function. works like remoting invoke, but does a check for the Proxy first.
17739
17740 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
17741
17742         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
17743
17744 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
17745
17746         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
17747         array of pointers.
17748         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
17749         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
17750
17751         * object.c (mono_store_remote_field_new): used by the new jit
17752         instead of mono_store_remote_field
17753         (mono_load_remote_field_new): used by the new jit
17754         instead of mono_load_remote_field
17755
17756 2003-02-05  Patrik Torstensson
17757
17758         * appdomain.c: changed unload to take the domain id instead
17759         of domain
17760         
17761         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
17762
17763
17764 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17765
17766         * appdomain.c: don't look for assemblies in ApplicationBase if
17767         PrivateBinPathProbe is set.
17768
17769 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17770
17771         * object.c: make the first argument in main_args contain the absolute
17772         path to the assembly. Fixes bug #37511.
17773
17774 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17775
17776         * icall.c: get correct UTC offset for countries not using daylight
17777         time saving. Fixes bug #30030.
17778
17779 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17780
17781         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
17782         and 1 are the family).
17783
17784 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
17785
17786         * icall.c (ves_icall_InternalExecute): removed wrong assertion
17787
17788         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
17789
17790 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
17791
17792         * reflection.c: added support for SignatureHelper tokens, which is
17793         needed by the Calli opcode.
17794
17795         * reflection.h: track changes to SignatureHelper class.
17796
17797         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
17798
17799 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17800
17801         * appdomain.c: fixed loading assemblies from PrivateBinPath.
17802
17803 2003-02-03  Patrik Torstensson
17804         * appdomain.[c|h], domain.c : 
17805          - Added support for getting a domain via domain id
17806          - Support for setting and getting domain from System.AppDomain 
17807            (used in cross appdomain channel)
17808          - Added support for get/set for a MonoAppContext on a thread 
17809            (Context class in System.Runtime.Remoting.Contexts),
17810          - Removed hack in Get/SetData and ExecuteAssembly.
17811         
17812         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
17813         the managed world to get control when a proxy is created.
17814
17815         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
17816         
17817 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
17818
17819         * icall.c
17820         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17821         Populate the codebase field as well.
17822
17823 2003-02-02  Martin Baulig  <martin@ximian.com>
17824
17825         * debug-mono-symfile.c
17826         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
17827         (mono_debug_symfile_add_method): Allow interncalls.
17828
17829 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17830
17831         * icall.c: throw parse exception if strtod fails or the string is empty.
17832
17833 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
17834
17835         * marshal.c: handle object type separately from defined
17836         class types.
17837
17838 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
17839
17840         * marshal.c: handle NATIVE_LPSTR for strings when it's
17841         explicitly specified.
17842
17843 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
17844
17845         * reflection.c, reflection.h, icall.c: setup the reflection
17846         handle cache for ModuleBuilders and AssemblyBuilders.
17847
17848 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
17849
17850         * reflection.c (reflection_methodbuilder_to_mono_method): set
17851         pinvoke flag
17852
17853 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17854
17855         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
17856
17857 2003-01-29  Dick Porter  <dick@ximian.com>
17858
17859         * threads.c: No need for the fake_thread kludge now that Thread
17860         doesn't run a class constructor
17861         
17862 2003-01-29  Dick Porter  <dick@ximian.com>
17863
17864         * threads.c: Use g_direct_hash instead of the rather bogus
17865         g_int_hash
17866
17867 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
17868
17869         * marshal.c (mono_marshal_get_native_wrapper): add check for null
17870         (fix pinvoke12.exe)
17871         (mono_marshal_get_struct_to_ptr): generate valid IL code
17872         (mono_marshal_get_ptr_to_struct): generate valid IL code
17873         (*): correctly set sig->pinvoke, we need to memdup the signature
17874         to do that
17875
17876 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17877
17878         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
17879         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
17880
17881 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
17882
17883         * profiler.c: provide more callers information.
17884
17885 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
17886
17887         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
17888
17889         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
17890
17891         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
17892
17893 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17894
17895         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
17896         exception instead of going into an infinite loop on dates which it 
17897         can't yet handle.
17898
17899         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
17900         out-of-range exception if needed.
17901
17902         * class.c (mono_class_setup_vtable): allow a virtual method to provide
17903         an implementation for an interface method and to override an inherited
17904         method at the same time. 
17905         Imagine a scenario when a virtual method is used to override a
17906         virtual abstract method in a parent class, and this same method 
17907         provides an implementation for an method inherited from an interface. 
17908         In this case, the interface resolution code will set im->slot, which 
17909         means that the virtual method override pass will skip this method 
17910         which means a pointer to the abstract method inherited from the parent
17911         will remain in the vtable of this non-abstract class.
17912
17913         * class.c: (mono_class_setup_vtable): continue search for a real 
17914         method if only an abstract method is found.     
17915
17916 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
17917
17918         * reflection.c: add size to encoding for ByValStr and ByValArray
17919         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
17920
17921 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17922
17923         * class.c (mono_class_setup_vtable): pass the override info as an
17924         argument.
17925
17926         * class.c (mono_class_setup_vtable): set the slot of overriding methods
17927         correctly.
17928         
17929         * reflection.c (ensure_runtime_vtable); add support for method 
17930         overrides.
17931         
17932 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17933
17934         * reflection.c (resolution_scope_from_image): Hack to work to work with
17935         dynamic assemblies.
17936
17937         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
17938         added a 'force_ref' argument to force this function to allways return 
17939         a TypeRef. This is needed by mono_image_get_memberref_token ().
17940         
17941 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17942
17943         * reflection.c (mono_image_get_type_info): interfaces really don't have
17944         a parent.
17945
17946         * reflection.c (mono_image_basic_init): fill out missing fields of
17947         image structure.
17948
17949         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
17950         dynamic assemblies. This is required so dynamic assemblies show up in
17951         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
17952         Type::GetType() etc. This is consistent with MS behaviour.
17953
17954         * image.c image.h reflection.c: add newly created classes to the name 
17955         cache so mono_class_get () will find them.      
17956
17957 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17958
17959         First part of changes to get IKVM.NET running under mono.
17960         
17961         * appdomain.h, appdomain.c: added new function 
17962         mono_domain_try_type_resolve() which will emit TypeResolve events. 
17963         This function will call AppDomain::DoTypeResolve to do the actual work.
17964
17965         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
17966         moved existing code dealing with dynamic tokens to a new function 
17967         called mono_reflection_lookup_dynamic_token (). This function will 
17968         raise TypeResolve events when appropriate. Since reflection.c is not 
17969         part of libmetadata, a new hook function called 
17970         mono_lookup_dynamic_token() is added to class.c which will call this.
17971
17972         * assembly.h assembly.c: make the invoke_load_hook function public,
17973         so it can be called for dynamic assemblies.
17974
17975         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
17976
17977         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
17978         type isn't found.
17979
17980         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
17981         MonoGHashTable, since it contains pointers to objects which the GC 
17982         needs to track.
17983
17984         * assembly.c (search_loaded): remove unused variable.
17985         
17986 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
17987
17988         * object.c: fixed issue exposed by gcc-generated IL programs
17989         that use RVA data for pointers.
17990
17991 2003-01-25  Martin Baulig  <martin@ximian.com>
17992
17993         * threads.c (start_wrapper): Moved the initialization of
17994         `start_func' above the mono_new_thread_init() call to which we
17995         pass it as argument.
17996
17997 2003-01-24  Martin Baulig  <martin@ximian.com>
17998
17999         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
18000         the MonoThread pointer.
18001
18002 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
18003
18004         * icall.c: Rename `PowImpl' to Pow.
18005
18006 2003-01-23  Dick Porter  <dick@ximian.com>
18007
18008         * threads.c (start_wrapper): Create a Thread object if needed, so
18009         the Main() thread can do the class initialisation in a subthread
18010         that has been set up to allow managed code execution.
18011
18012         Pass the thread ID instead of the MonoThread pointer to the thread
18013         start and attach callbacks.  This change is required, because the
18014         jit thread start callback must be called _before_ the Thread
18015         object can be created.
18016         
18017         (mono_thread_init): Removed much object creation code that is no
18018         longer needed.  No managed code is called from here now.
18019
18020         * object.c (mono_runtime_exec_managed_code): Create a subthread
18021         for Main, and call back to the runtime to use it.
18022         Set the exit code when Main exits.
18023
18024         * gc.c: Make sure domain finalisation happens in a subthread.
18025         Re-enable threaded GC, fixing bug 31333 (again).
18026
18027         * environment.c: System.Environment internall calls (so far just
18028         ExitCode is here, the others are still in icall.c)
18029
18030         * appdomain.c (mono_runtime_cleanup): All threads running managed
18031         code should have finished before mono_runtime_cleanup() is
18032         reached, so no need to clean up threads.
18033
18034 2003-01-22  Martin Baulig  <martin@ximian.com>
18035
18036         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
18037         `gpointer func' arguments.      
18038         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
18039         but added `MonoThread *thread' argument.
18040         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
18041
18042         * threads.c (mono_new_thread_init): Added `gpointer func' argument
18043         and pass it to the mono_thread_start_cb callback.
18044         (mono_install_thread_callbacks): New public function to install a
18045         set of callbacks which are set by the debugger.
18046         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
18047
18048 2003-01-22  Martin Baulig  <martin@ximian.com>
18049
18050         * Makefile.am: Install debug-mono-symfile.h.
18051
18052 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
18053
18054         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
18055
18056 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
18057
18058         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
18059         * class.c (mono_ptr_class_get): correctly set access levels of pointers
18060         (mono_array_class_get): correctly set access levels of arrays
18061
18062 2003-01-20      Patrik Torstensson
18063         * image.h (MonoAssemblyName): changed major, minor, build, revision
18064         from signed to unsigned.
18065
18066 2003-01-20  sean kasun <skasun@azstarnet.com>
18067
18068         * reflection.c (load_cattr_value): Now this handles
18069         MONO_TYPE_SZARRAY.  Fixes bug #35629
18070
18071 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
18072
18073         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
18074         integer value
18075
18076 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18077
18078         * decimal.c: fixed bug #26056.
18079
18080 2003-01-17  Martin Baulig  <martin@ximian.com>
18081
18082         * gc.c: Raise an ExecutionEngineException instead of using g_error().
18083
18084 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18085
18086         * exception.[ch]:
18087         (mono_get_exception_type_initialization): new function.
18088
18089         * object.c: throw a TypeInitializationException when an exception is
18090         thrown invoking the class constructor.
18091
18092 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18093
18094         * reflection.c: fixed attribute reading.
18095
18096 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18097
18098         * icall.c:
18099         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
18100         provided, look for the type in the calling assembly and then in
18101         mscorlib; if the assembly name is provided, only try that one.
18102
18103 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
18104
18105         * object.c: register the vtable before there is a chance it's
18106         queried again recursively.
18107
18108 2003-01-13  Duncan Mak  <duncan@ximian.com>
18109
18110         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
18111         gc-internal.h. 
18112         
18113 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
18114
18115         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
18116
18117 2003-01-11  Martin Baulig  <martin@ximian.com>
18118
18119         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
18120         this to 20 for the release.
18121
18122 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
18123
18124         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
18125
18126         * loader.c (mono_method_get_marshal_info): bug fix
18127
18128         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
18129         structures with explicit layout
18130
18131 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18132
18133         * profiler.c: made the output more readable (and sorted). 
18134         Added caller information for the allocation profiler.
18135
18136 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
18137
18138         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
18139
18140 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18141
18142         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
18143         to get value types.
18144         
18145 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
18146
18147         * object.c, profiler.h, profiler.c, profiler-private.h:
18148         Added object allocation profiler.
18149
18150 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
18151
18152         * reflection.h, reflection.c: handle global methods.
18153         Compress blob entries.
18154
18155 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
18156
18157         * marshal.c: fix compilation.
18158
18159 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
18160
18161         * loader.c (mono_method_get_marshal_info): impl.
18162
18163         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
18164
18165 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18166
18167         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
18168         for reference types.
18169
18170 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
18171
18172         * loader.c: fixed off by one error in loaded parameter names.
18173
18174 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
18175
18176         * marshal.c (mono_marshal_get_icall_wrapper): like
18177         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
18178         instead of a MonoMethod.
18179
18180 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18181
18182         * decimal.c: fixed bug #36537.
18183
18184 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18185
18186         * marshal.c: throw a missing method exception if a
18187         P/Invoke method is not found.
18188
18189 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18190
18191         * icall.c: allow a null this for constructors.
18192
18193 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18194
18195         * icall.c: raise the proper exceptions if the arguments to the
18196         internal Invoke are incorrect.
18197
18198 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18199
18200         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18201
18202 2003-01-03  Martin Baulig  <martin@ximian.com>
18203
18204         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18205
18206 2002-12-31  Martin Baulig  <martin@ximian.com>
18207
18208         * debug-mono-symfile.c: Completely rewrote the type section.
18209         Instead of using individual malloc()ed fields, we use one big
18210         continuous memory area and offsets into this area.
18211         See the comments in the source code for details.
18212
18213 2002-12-30  Martin Baulig  <martin@ximian.com>
18214
18215         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18216
18217 2002-12-30  Martin Baulig  <martin@ximian.com>
18218
18219         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18220         line number table in this data blob instead of using an external
18221         pointer.
18222
18223 2002-12-28  Martin Baulig  <martin@ximian.com>
18224
18225         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18226
18227 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18228
18229         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18230         as a boxed return type.
18231
18232 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18233
18234         * appdomain.c
18235         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18236         g_build_filename to properly get separators on the filename created.
18237
18238         * object.h: Small change, introduce MonoMarshalByRefObject to
18239         track the layout of that structure in the C# universe as we make
18240         changes there.
18241
18242 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18243
18244         * object.c: removed assert to allow static fields on interfaces.
18245         * loader.c: a TypeSpec may be used for any type, not just arrays.
18246
18247 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18248
18249         * class.c, class.h: added mono_class_array_element_size ().
18250         Ignore static methods in interfaces.
18251
18252 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18253
18254         * threads.c: fixed the build under cygwin.
18255
18256 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18257
18258         * reflection.c: handle nullref constants. Allocate keys for
18259         reflection handles with the GC.
18260
18261 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18262
18263         * threads.c, threads.h: added mono_thread_get_abort_signal()
18264         to get a suitable signal for thread abort.
18265
18266 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18267
18268         * metadata.c: fix handling of ExportedType table.
18269
18270 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18271
18272         * icall.c: added WriteWindowsDebugString internal call.
18273
18274 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18275
18276         * reflection.h: added fields to match C# implementation.
18277
18278 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18279
18280         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18281
18282 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18283
18284         * gc.h, gc-internal.h: Rename header for GC internal calls to
18285         gc-internal.h from gc.h as to not clash with Boehm GC having its
18286         header installed as <gc.h> in outside include paths.
18287         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18288         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18289
18290 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18291
18292         * icall.c: assign minor, build and revision in FillName.
18293
18294 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18295
18296         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18297         Added support for running code generated by Reflection.Emit.
18298
18299 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18300
18301         * appdomain.c: check for NULL argument in LoadFrom.
18302
18303 2002-12-10  Dick Porter  <dick@ximian.com>
18304
18305         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18306
18307 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18308
18309         * appdomain.c: fix buglet when building exe file name.  Handle full
18310         assembly name (needed after latest changes to AssemblyName).
18311         * image.c:
18312         (mono_image_close): free some hashtables.
18313
18314 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
18315
18316         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
18317         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
18318         on some systems (redhat 7.3) 
18319
18320 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
18321
18322         * threads.c: delete the critical section of a sync block,
18323         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18324
18325 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18326
18327         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18328
18329 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18330
18331         * appdomain.[ch]: handle the assembly preload event to try loading the
18332         assemblies using the paths we have in the current domain.
18333
18334         * assembly.[ch]: created an assembly preload hook that is called to try
18335         loading the assembly by other means that the ones provided here.
18336
18337         * domain.c: initialize the domain search path.
18338
18339         From now on, assemblies (TODO: except corlib and System) are loaded
18340         according to these rules when using mono_assembly_load ():
18341
18342                 1. It tries to load the assembly from the ApplicationBase
18343                 of the current domain appending .dll and .exe (TODO: have to
18344                 try loading from name/name.dll and name/name.exe).
18345
18346                 2. It tries the search path specified in PrivateBinPath for the
18347                 current domain (if any).
18348
18349                 3. Previous behavior.
18350
18351 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18352
18353         * icall.c: implemented GetInterfaceMap() related icall.
18354         * domain.c, loader.h: load MethodInfo in mono_defaults.
18355
18356 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18357
18358         * gc.c: disable the finalizer thread for now, untill all the issues
18359         with it are resolved.
18360
18361 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18362
18363         * string-icalls.c: handle embedded nulls in string ctor when the
18364         length is specified.
18365
18366 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18367
18368         * class.c: look for explicit interface implementation in parent
18369         classes, too.
18370
18371 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18372
18373         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18374
18375 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18376
18377         * gc.c: protect handles with a critical section.
18378
18379 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18380
18381         * icall.c:
18382         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18383         parameters. If no assembly specified, try getting the type from all
18384         the assemblies in the current domain, else, load the assembly and get
18385         the type from it.
18386
18387 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18388
18389         * marshal.c: applied patch from Aleksey Demakov that fixes
18390         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18391
18392 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18393
18394         * icall.c: fixed get_location.
18395
18396 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18397
18398         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18399         declarations to make it work with older gcc. 
18400
18401         * loader.c (mono_get_method): set signature->pinvoke for native calls
18402
18403 2002-11-20  Dick Porter  <dick@ximian.com>
18404
18405         * threads.c (mono_thread_init): Set the main thread's handle
18406
18407 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18408
18409         * gc.c: allow compilation without GC support. Changed to match the
18410         mono coding style.
18411
18412 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18413
18414         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18415
18416 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18417
18418         * reflection.c: set a public key token on the core assemblies.
18419
18420 2002-11-18  Dick Porter  <dick@ximian.com>
18421
18422         * threads.c: Split out some thread initialisation so that other
18423         files can set the start callback function.
18424
18425         * gc.c: Run finalisers in a separate thread, to avoid stack
18426         overflow.  Fixes bug 31333.
18427
18428         * appdomain.c: Set up GC finalisation thread.
18429
18430         * reflection.c: 
18431         * object.c: 
18432         * domain.c: Use gc.h macros for GC_malloc
18433         
18434 2002-11-15  Dick Porter  <dick@ximian.com>
18435
18436         * threadpool.c: 
18437         * threads.c:
18438         * appdomain.c: Removed mono_runtime_init_with_attach(),
18439         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
18440         merging the extra parameter with the existing function.  Removed
18441         unneeded code in mono_thread_attach().
18442
18443 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
18444
18445         * image.c (mono_image_loaded_by_guid): a method to get loaded
18446         images by guid. 
18447         (load_metadata_ptrs): we store the guid as string.
18448
18449 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
18450
18451         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
18452
18453         * metadata.c (mono_guid_to_string): imported method form Zoltan
18454         Varga (slightly modified)
18455
18456         * assembly.c (mono_assembly_open): load precompiled code
18457
18458         * loader.h (MonoMethod): we store the method token for use in the
18459         aot compiler. 
18460
18461 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18462
18463         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
18464         the hook function called when an assembly is loaded.
18465         
18466         * domain.c: Modified file.
18467         (mono_domain_assembly_load): removed hash table insertion of assemblies.
18468
18469         Fixes bug #33196.
18470
18471 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
18472
18473         * reflection.c: Map PEFileKind to the value expected by the WinNT
18474         image loader. 
18475
18476 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18477
18478         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
18479         Read until the buffer is filled completely.
18480
18481 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18482
18483         * icall.c: implemented MonoType.InternalGetEvent ().
18484
18485 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18486
18487         * appdomain.c: implemented InitAppDomainSetup. Delayed
18488         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
18489         the entry_assembly.
18490
18491         * assembly.c: base_dir is now an absolute path ending with
18492         G_DIR_SEPARATOR.
18493
18494         * icall.c: modified get_location according to the above changes.
18495
18496         * object.c: init AppDomain.SetupInformation for the default domain after
18497         we have the entry assembly.
18498
18499         * domain.c: when unloading a domain, setup = NULL.
18500
18501 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
18502
18503         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
18504
18505 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
18506
18507         * object.h, object.c: introduced mono_object_get_virtual_method ()
18508         to lookup the method invoked on an object when a callvirt is done on
18509         a method.
18510         * icall.c: make MethodInfo::Invoke() always do a virtual call.
18511
18512 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18513
18514         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
18515         current domain when loaded an assembly and failed to load it.
18516
18517         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
18518
18519 2002-10-31  Dick Porter  <dick@ximian.com>
18520
18521         * icall.c: 
18522         * file-io.h: 
18523         * file-io.c: Return the error status in a parameter, as the
18524         GetLastError() value has long since been blown away if we try and
18525         look it up in a subsequent internal call invocation.  Delete the
18526         GetLastError() internal call, because it's useless.
18527
18528 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
18529
18530         * class.[ch]: added cast_class to fix bug 29517
18531
18532 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
18533
18534         * marshal.c: create valid IL code in the filter clause:
18535         the new JIT is less forgiving:-)
18536
18537 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18538
18539         * icall.c: removed get_property internal call.
18540
18541 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
18542
18543         * appdomain.h domain.c: Added an ID to appdomains.
18544         
18545         * threads.c threads.h icall.c: Implement icall
18546         Thread:GetDomainID(), and remove unused icall 
18547         CurrentThreadDomain_internal.
18548
18549 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18550
18551         * icall.c: Don't recurse through the base types in GetConstructor.
18552         Fixes bug #32063. 
18553
18554 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18555
18556         * mempool.h, mempool.c: added mono_mempool_empty() and
18557         mono_mempool_stats().
18558
18559 2002-10-23  Dick Porter  <dick@ximian.com>
18560
18561         * file-io.c: 
18562         * file-io.h: 
18563         * icall.c: Added MonoIO.GetFileType internal call
18564
18565 2002-10-17  Dick Porter  <dick@ximian.com>
18566
18567         * appdomain.c (mono_runtime_cleanup): Don't signal the async
18568         delegate semaphore before waiting for all threads to finish,
18569         because new threads can also call async delegates.  Fixes bug
18570         32004.
18571
18572         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
18573         of 3 seconds, in case another async job is queued.  (This part is
18574         needed because the bug fix reintroduced the 3s exit lag.)  This
18575         makes the mono_runtime_shutdown flag superfluous.
18576
18577 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18578
18579         * reflection.c: include ehader size in method section headers.
18580         Really check for suplicated modules entries.
18581
18582 2002-10-17  Martin Baulig  <martin@gnome.org>
18583
18584         * debug-mono-symfile.c: Added back support for locals.
18585
18586 2002-10-14  Martin Baulig  <martin@gnome.org>
18587
18588         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
18589         MONO_TYPE_VOID.
18590
18591 2002-10-14  Martin Baulig  <martin@gnome.org>
18592
18593         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
18594         mono_class_get() instead of looking in the class cache. 
18595
18596 2002-10-13  Martin Baulig  <martin@gnome.org>
18597
18598         * debug-mono-symfile.c: Set version number to 28, include the
18599         signature in method names.
18600
18601 2002-10-13  Martin Baulig  <martin@gnome.org>
18602
18603         * debug-mono-symfile.h: Set version number to 27.
18604
18605 2002-10-11  Martin Baulig  <martin@gnome.org>
18606
18607         * gc.c: Don't register/unregister NULL pointers as disappearing links.
18608
18609 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18610
18611         * metadata.c, metadata.h: added helper function to allocate signatures.
18612
18613 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18614
18615         * icall.c: added internal call to get the location of machine.config.
18616
18617 2002-10-08  Martin Baulig  <martin@gnome.org>
18618
18619         * debug-mono-symfile.c: Ignore classes with a pending init for the
18620         moment.
18621
18622 2002-10-03  Dick Porter  <dick@ximian.com>
18623
18624         * threads.c: Freebsd pthread_t is a pointer
18625
18626 2002-10-03  Dick Porter  <dick@ximian.com>
18627
18628         * socket-io.c: Implemented GetHostName_internal
18629
18630 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18631
18632         * mono-config.c:
18633         (mono_config_parse_file): don't leak the text.
18634
18635 2002-10-02  Martin Baulig  <martin@gnome.org>
18636
18637         * debug-mono-symfile.c: Added support for methods.
18638
18639 2002-10-01  Martin Baulig  <martin@gnome.org>
18640
18641         * debug-mono-symfile.c: Don't emit methods and line numbers for
18642         the dynamic symbol file, just write the type table.  We can easily
18643         have an external helper program which creates a symbol file for an
18644         IL file.        
18645
18646 2002-10-01  Dick Porter  <dick@ximian.com>
18647
18648         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
18649         Only add the handle to the cleanup array when we're about to
18650         launch the thread.  Bug 31425 deadlocked when the test was run on
18651         mono under w32.
18652
18653 2002-10-01  Martin Baulig  <martin@gnome.org>
18654
18655         * debug-mono-symfile.c: Added support for properties.
18656
18657 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18658
18659         * reflection.c: unaligned store fix from Mark Crichton
18660         <crichton@gimp.org>.
18661
18662 2002-09-27  Martin Baulig  <martin@gnome.org>
18663
18664         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
18665         New interncall.
18666
18667 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18668
18669         * assembly.h, assembly.c: use a sane API to hook into the assembly
18670         loading process instead of a useless special-purpouse hack
18671         (ngen needs a hook, too, for example).
18672
18673 2002-09-27  Dick Porter  <dick@ximian.com>
18674
18675         * threads.c (mono_thread_init): Call GetCurrentProcess() so
18676         io-layer can set up some process handle info.  Not needed on w32,
18677         but doesn't hurt either.
18678
18679         * process.c: Pass the program name in the second parameter to
18680         CreateProcess, so the path is searched.  Include the working
18681         directory. Implemented process name, process enumeration, and some
18682         process detail internal calls.
18683         
18684         * icall.c: Added internal calls for process lookup, and some
18685         process details
18686
18687 2002-09-26  Martin Baulig  <martin@gnome.org>
18688
18689         * assembly.c (mono_install_open_assembly_hook): New global
18690         function to install a function to be invoked each time a new
18691         assembly is loaded.
18692         (mono_assembly_open): Run this callback function if set.
18693
18694         * debug-mono-symfile.c: Put back line numbers for the dynamic
18695         symbol file and also record the .il file as source file.  This
18696         allows us to install the temporary symbol file as `file.dbg' just
18697         like a compiler-generated one.
18698
18699 2002-09-26  Nick Zigarovich <nick@chemlab.org>
18700
18701         * Corrected typo in gc.c (BOHEM vs BOEHM).
18702
18703 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18704
18705         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
18706         GetProperties. Also avoid calling g_slist_length in GetProperties and
18707         GetMethods.
18708
18709 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18710
18711         * reflection.c: avoid unaligned stores (bug spotted by
18712         Mark Crichton  <crichton@gimp.org>).
18713
18714 2002-09-25  Martin Baulig  <martin@gnome.org>
18715
18716         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
18717         instead of guint64 for addresses and added prologue/epilogue info.
18718
18719 2002-09-25  Martin Baulig  <martin@gnome.org>
18720
18721         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
18722         store line number info.  For the dynamic symbol file, we only need
18723         to provide the JIT generated dynamic line number info for the dynamic
18724         symbol file.
18725
18726 2002-09-25  Martin Baulig  <martin@gnome.org>
18727
18728         * debug-mono-symfile.h: Incremented version number.
18729
18730 2002-09-24  Martin Baulig  <martin@gnome.org>
18731
18732         * class.c (mono_debugger_class_init_func): New global function
18733         pointer variable.
18734         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
18735         call it.
18736
18737         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
18738         function.  This is called via the mono_debugger_class_init_func
18739         hook to add all types to the dynamic type table.
18740         (ves_icall_MonoDebugger_GetType): New interncall to get a class
18741         from its metadata token.
18742
18743         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
18744         New interncall for the debugger.
18745
18746 2002-09-24  Nick Drochak <ndrochak@gol.com>
18747
18748         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
18749         before using it in case it is null.
18750         
18751 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18752
18753         * metadata.c: allow custom modifiers in local var signatures
18754         (bug spotted by Zoltan Varga).
18755
18756 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18757
18758         * class.c: deal with the <Module> class that may have a NULL vtable.
18759         Eliminate warnings.
18760
18761 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18762
18763         * image.c, image.h: more strong name helpers.
18764         * monosn.c: more work: convert pem keys to cryptoapi format.
18765
18766 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18767
18768         * string-icalls.c: speedup IndexOf.
18769
18770 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18771
18772         * icall.c: updates from Zoltan.2.Varga@nokia.com.
18773
18774 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18775
18776         * icall.c: cleanup: use mono_object_domain ().
18777
18778 2002-09-23  Martin Baulig  <martin@gnome.org>
18779
18780         * debug-mono-symfile.c: Improved type support.
18781
18782 2002-09-22  Martin Baulig  <martin@gnome.org>
18783
18784         * debug-mono-symfile.c: Added support for reference types and strings.
18785
18786 2002-09-22  Martin Baulig  <martin@gnome.org>
18787
18788         * debug-mono-symfile.c: Started to work on the type table.
18789
18790 2002-09-21  Martin Baulig  <martin@gnome.org>
18791
18792         * debug-mono-symfile.c: Largely reworked the symbol table format.
18793         The symbol table is now incrementally updated each time a new
18794         method is added.  We're now also using our own magic and version
18795         so that you don't need to recompile all your classes if the
18796         dynamic table changes.
18797         (mono_debug_update_mono_symbol_file): Removed.
18798         (mono_debug_symfile_add_method): New function to add a method.
18799
18800 2002-09-21  Martin Baulig  <martin@gnome.org>
18801
18802         * icall.c
18803         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
18804         New interncall.
18805
18806         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
18807         New interncall to get a method from its metadata token.
18808
18809 2002-09-21  Martin Baulig  <martin@gnome.org>
18810
18811         * debug-mono-symfile.c: Create type table.
18812
18813 2002-09-20  Martin Baulig  <martin@gnome.org>
18814
18815         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
18816
18817 2002-09-20  Martin Baulig  <martin@gnome.org>
18818
18819         * debug-mono-symfile.c: Provide information about params and locals.
18820
18821 2002-09-20  Martin Baulig  <martin@gnome.org>
18822
18823         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
18824         New interncall.
18825
18826         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
18827         interncall to get a method from its metadata token.
18828
18829 2002-09-20  Martin Baulig  <martin@gnome.org>
18830
18831         * debug-mono-symfile.c: Added a few checks for method->header
18832         being non-NULL.  This should never happen, but for the moment
18833         let's use a g_warning() rather than a g_assert().
18834
18835 2002-09-19  Mark Crichton  <crichton@gimp.org>
18836
18837         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
18838         even if support for it isn't present.  Added an #ifdef to fix this.
18839
18840         * socket-io.c: Added checks back for Solaris support.
18841
18842 2002-09-19  Martin Baulig  <martin@gnome.org>
18843
18844         * debug-mono-symfile.c (read_string, write_string): Reflect latest
18845         changes in the symbol file format.
18846
18847 2002-09-18  Martin Baulig  <martin@gnome.org>
18848
18849         * debug-mono-symfile.c: Set version number to 21.
18850
18851 2002-09-18  Dick Porter  <dick@ximian.com>
18852
18853         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
18854         on netbsd.  Fixes bug 30051.
18855
18856 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18857
18858         * reflection.c:
18859         (set_version_from_string): little fix.
18860
18861 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18862
18863         * monosn.c, Makefile.am: added strong name utility.
18864         * reflection.h, reflection.c: implemented delayed signing,
18865         locale, version and hash id assembly attributes.
18866
18867 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18868
18869         * loader.c, metadata.c: load param attributes in signatures.
18870
18871 2002-09-16  Martin Baulig  <martin@gnome.org>
18872
18873         * debug-mono-symfile.c: Added string table with all method names.
18874
18875 2002-09-14  Martin Baulig  <martin@gnome.org>
18876
18877         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
18878         fast method lookup.
18879
18880 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18881
18882         * reflection.c: record the public key token of referenced assemblies.
18883
18884 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18885
18886         * image.c, image.h: added functions to get the strong name and the
18887         public key of an assembly.
18888         * pedump.c: use them.
18889
18890 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
18891
18892         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
18893
18894 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
18895
18896         * marshal.c (mono_marshal_get_managed_wrapper): Added
18897         MONO_TYPE_BOOLEAN 
18898
18899 2002-09-11  Martin Baulig  <martin@gnome.org>
18900
18901         * gc.c: Call GC_unregister_disappearing_link() on all links when
18902         finalizing them, this is necessary to aviod a crash in boehm's
18903         finalize handler.
18904
18905 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18906
18907         * gc.c: handle GetTarget for finalized objects spotted and fixed by
18908         nick@chemlab.org.
18909
18910 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18911
18912         * icall.c: implemented MonoType::Module.
18913         * reflection.c, reflection.h: mono_module_get_object () from
18914         Tomi Pakarinen <tomi.pakarinen@welho.com>.
18915
18916 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18917
18918         * icall.c: ignore overridden methods in GetMethods ().
18919         Fix for FieldInfo::SetValue().
18920         * object.c: handle float/double in runtime invoke.
18921
18922 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18923
18924         * object.c: allow a constructor to be called again on an object.
18925
18926 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18927
18928         * class.h, class.c: move field layout code to it's own function and
18929         export it. Get an interface id earlier. Move fields in MonoClass
18930         so they are more cache friendly and align the bitfields.
18931         * loader.c: temporary handle get_param_names() for a runtime method.
18932         * reflection.c, reflection.h: more code to handle runtime creation of
18933         types.
18934
18935 2002-09-09  Martin Baulig  <martin@gnome.org>
18936
18937         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
18938         signature with the pinvoke field being set for the actual call.
18939
18940 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18941
18942         * icall.c: removed some unused icalls. Start of map of glib charsets
18943         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
18944
18945 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18946
18947         * debug-helpers.c: break infinite loop (found and fixed by
18948         Holger Arnold <harnold@gmx.de>).
18949
18950 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18951
18952         * icall.c: target may be null in create_delegate.
18953
18954 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18955
18956         * marshal.c: handle a boolean return type.
18957
18958 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18959
18960         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
18961
18962 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18963
18964         * gc.c: fix weakreferences.
18965
18966 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18967
18968         * icall.c: added icall to get default codepage.
18969
18970 2002-09-03  Dick Porter  <dick@ximian.com>
18971
18972         * threads.h: 
18973         * threads.c: Use MonoThread instead of MonoObject where
18974         apropriate.
18975
18976         Store running thread objects in a hash table, so that we have all
18977         the info to hand when waiting for them to finish
18978         (means we don't need OpenThread() any more, so mingw builds should
18979         be fully functional again.)
18980
18981         * verify.c:
18982         * object.h: Added thread ID to MonoThread
18983
18984 2002-09-03  Martin Baulig  <martin@gnome.org>
18985
18986         * icall.c (System.Reflection.Assembly::get_location): New interncall.
18987
18988 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18989
18990         * icall.c: fixed leak in get_temp_path. Thanks lupus.
18991
18992 2002-09-03  Martin Baulig  <martin@gnome.org>
18993
18994         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
18995         argument to store the end address of the disassembled instruction.
18996
18997         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
18998         here from debug-symfile.h.
18999         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
19000         JIT into this struct.
19001         (MonoSymbolFile): Added `char *image_file' field.
19002         (MonoDebugGetMethodFunc): Removed.
19003         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
19004         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
19005         (mono_debug_find_method): New method.
19006
19007         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
19008         create a full symbol file.
19009         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
19010         and static symbol files.
19011         (mono_debug_find_method): The symbol file keeps an internal method hash,
19012         call this to get a MonoDebugMethodInfo from a MonoMethod.
19013
19014         * debug-symfile.[ch]: Removed.
19015
19016 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
19017
19018         * image.c (do_mono_image_open): Remove linker version check.
19019
19020 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
19021
19022         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
19023         wrappers for instance methods.
19024         
19025 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19026
19027         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
19028
19029 2002-08-28  Dick Porter  <dick@ximian.com>
19030
19031         * Makefile.am: Export HOST_CC for w32 builds
19032
19033 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19034
19035         * file-io.c process.c: MonoString are null terminated, no
19036         need for mono_string_to_utf16() anymore.
19037
19038 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19039
19040         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
19041
19042 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
19043
19044         * icall.c, reflection.h: speedup System.MonoType.
19045
19046 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19047
19048         * reflection.c: allow null as the value of a string argument in
19049         custom attributes constructors.
19050
19051 2002-08-27  Martin Baulig  <martin@gnome.org>
19052
19053         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
19054         `trampoline_address' field.
19055
19056 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
19057
19058         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
19059         check (fixes bug #29486) 
19060
19061 2002-08-27  Martin Baulig  <martin@gnome.org>
19062
19063         * debug-mono-symfile.c: Changed the file format in a way that allows us
19064         open it read-only and to use a specially malloced area for all the
19065         dynamic data.  We can now also generate a symbol file on-the-fly if we're
19066         debugging IL code and there is no MCS generated symbol file for it.
19067
19068 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19069
19070         * object.c: added a define for a good string and array
19071         creation speedup (not enabled by default because we need to deal with
19072         the synch stuff).
19073
19074 2002-08-26  Martin Baulig  <martin@gnome.org>
19075
19076         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
19077         function to create a dynamic symbol file.  This is used by the
19078         debugger to create a symbol file for IL code on-the-fly.
19079
19080 2002-08-26  Martin Baulig  <martin@gnome.org>
19081
19082         * loader.c (mono_lookup_pinvoke_call): Include the error message
19083         from g_module_error() in the error message.
19084
19085 2002-08-24  Martin Baulig  <martin@gnome.org>
19086
19087         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
19088         function to update the symbol file.  The symbol file is mmap()ed
19089         writable, but private.  This allows us to install the symbol file
19090         together with the assembly.
19091
19092 2002-08-24  Martin Baulig  <martin@gnome.org>
19093
19094         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
19095         but they can read the new symbol file format which mcs is now creating.
19096
19097         * debug-symfile.c (mono_debug_find_source_location): Moved to
19098         debug-mono-symfile.c; this is now operating on the new symbol file.
19099
19100 2002-08-23  Martin Baulig  <martin@gnome.org>
19101
19102         * debug-helpers.c (mono_method_desc_from_method): New function to get
19103         a MonoMethodDesc from a MonoMethod.
19104
19105 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19106
19107         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
19108         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
19109
19110 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19111
19112         * string-icalls.[ch]: make helper methods static.
19113
19114 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19115
19116         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
19117         types to it and to SetValueInternal.
19118
19119         * object.c: Moved handle_enum label to its proper place. This was the
19120         f... bug! ;-)
19121
19122         This time i compiled mcs and gtk-sharp and they both work.
19123
19124 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19125
19126         * icall.c: reverted partially my previous patch until 
19127         object.c:set_value handles enums correcly.
19128
19129 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19130
19131         * icall.c:
19132         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
19133         (ves_icall_System_Environment_get_MachineName): removed warning when
19134         compiling under cygwin.
19135
19136 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19137
19138         * object.c: fixed field_get_value() for reference types.
19139
19140 2002-08-22  Dick Porter  <dick@ximian.com>
19141
19142         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
19143         Don't free a buffer while it's still needed.  Patch from Jonathan
19144         Liger <Jonathan.liger@wanadoo.fr>
19145
19146 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
19147
19148         * icall.c (ves_icall_System_Environment_get_Platform): Add new
19149         internal call.
19150
19151 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
19152
19153         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
19154         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
19155
19156         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
19157         we call unmanaged code which throws exceptions.
19158
19159 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19160
19161         * appdomain.h: added per-domain entry_assembly.
19162         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
19163         arguments.
19164         * icall.c: Assembly::GetEntryAssembly icall.
19165         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
19166         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
19167
19168 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19169
19170         * appdomain.h, gc.c: added mono_domain_finalize ().
19171
19172 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19173
19174         * object.c:
19175         (mono_print_unhandled_exception): changed g_warning by g_printerr
19176         because g_log has a 1024 characters limit (yeah, i got a big stack
19177         trace). Don't print exception name, that should be in ToString 
19178         returned string.
19179
19180 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19181
19182         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19183         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19184
19185 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19186
19187         * object.c:
19188         (mono_print_unhandled_exception): after previous commit, i realized
19189         that MS calls ToString on the exception. I changed this function to
19190         do that. This way we get stack_trace for free.
19191
19192 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19193
19194         * object.c:
19195         (mono_print_unhandled_exception): invoke Message property instead of
19196         getting 'message' field from Exception. Don't allocate memory for
19197         'trace' and 'message' if not needed.
19198
19199 2002-08-18  Dick Porter  <dick@ximian.com>
19200
19201         * unicode.c: Fix asserts to match Encoder.cs checks
19202
19203 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19204
19205         * marshal.c: fix unaligned store issue and a few wrong
19206         opcode argument types.
19207
19208 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19209
19210         * icall.c: added GetUninitializedObjectInternal internal call.
19211
19212 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19213
19214         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19215         to the right domain.
19216
19217 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19218
19219         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19220
19221         * class.c (class_compute_field_layout): set blittable to false for Strings
19222
19223         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19224
19225 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19226
19227         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19228         first chunk of code to create types at runtime. Code to
19229         handle ReflectedType/DeclaringType. Make reflection handles
19230         domain specific.
19231
19232 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19233
19234         * class.c: set correct name in arrays.
19235
19236 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19237
19238         * appdomain.c (mono_domain_transfer_object): make it work with
19239         valuetypes. bug fixes.
19240
19241 2002-08-12  Dick Porter  <dick@ximian.com>
19242
19243         * object.h: Rename some parameters to avoid c++ keywords (Patch
19244         from Joseph Wenninger <kde@jowenn.at>)
19245
19246 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19247
19248         * icall.c: added icall to implement Assembly.GetFile*.
19249
19250 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19251
19252         * reflection.h, reflection.c: code to embed managed resources.
19253
19254 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19255
19256         * class.c: move all the type size stuff into
19257         class_compute_field_layout().
19258
19259 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19260
19261         * class.c: ensure enums have always the correct instance size.
19262         * unicode.c: remove wrong assert.
19263
19264 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19265
19266         * assembly.c: fix mem corruption issue.
19267         * image.h, image.c: added mono_image_get_resource () to access
19268         managed resources.
19269         * icall.c: implemented Assembly.EntryPoint property and some
19270         Managed Resources related internalcalls.
19271
19272
19273 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19274
19275         * image.c, image.h: impemented mono_image_get_entry_point ().
19276         * appdomain.c: use mono_image_get_entry_point.
19277
19278 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19279
19280         * reflection.c: support the object type argument when loading
19281         custom attributes.
19282
19283 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19284
19285         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19286         String as return type.
19287
19288 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19289
19290         * reflection.c: fix encoding of named args for custom attrs to match
19291         the ms implementation. Read them back when instantiating custom
19292         attributes.
19293
19294 2002-08-02  Radek Doulik  <rodo@ximian.com>
19295
19296         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19297         by Dietmar as quick fix
19298         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19299         16 as stack size, used on more places as quick fix before Dietmar
19300         will fix it properly
19301
19302 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19303
19304         * object.h, object.c: added accessors for fields and properties.
19305
19306 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19307
19308         * class.c, class.h: made mono_class_get_field_from_name ()
19309         loop on parent types.
19310         Added mono_class_get_property_from_name ().
19311
19312 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19313
19314         * class.c, class.h: move the code to setup the type vtable in its own
19315         function so that it can be reused also for types created at runtime.
19316         Eliminate the "class" identifier from the header file.
19317         * reflection.c: setup the vtable for enums so that we can create
19318         objects for use in SetConstant ().
19319
19320 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
19321
19322         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
19323         instead of the delegate itself as this pointer (bug #28383)
19324
19325 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19326
19327         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19328         conversions.
19329
19330 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19331
19332         * loader.c: don't set the pinvoke bit on icalls.
19333
19334 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19335
19336         * debug-helpers.c (mono_method_full_name): only print a number to
19337         indicate wrapper type (so that the output is more readable in traces).
19338
19339 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19340
19341         * class.c (mono_class_init): include method override patch from Paolo
19342
19343 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19344
19345         * icall.c: fixed GetTypeCode().
19346
19347 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19348
19349         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19350         use real delegate invoke function to make it work with multicast
19351         delegates (fix bug# 28291).
19352
19353 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19354
19355         * object.c: load constant strings.
19356
19357 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19358
19359         * reflection.c: no magic numbers.
19360         * tabledefs.h: security action enum.
19361
19362 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19363
19364         * assembly.c: fix possible memory corruption.
19365
19366 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19367
19368         * reflection.h, reflection.c: added support for linking resources.
19369         * verify.c: check we have an updated corlib.
19370
19371 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19372
19373         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19374         string arrays.
19375         (mono_marshal_string_array): null terminate unmanaged string arrays.
19376         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19377
19378 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19379
19380         * icall.c: Type.GetType () can now return also types from the
19381         calling assembly.
19382
19383 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19384
19385         * loader.h, loader.c: stack walking support.
19386         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19387         GetCallingAssembly.
19388
19389 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19390
19391         * marshal.c: added optimisations for blittable types 
19392
19393         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19394         (mono_class_setup_mono_type): set blittable attribute for single
19395         and double.
19396
19397         * marshal.c (mono_string_utf8_to_builder): impl.
19398         (mono_string_builder_to_utf8): impl.
19399         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19400
19401 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19402
19403         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19404         (mono_marshal_get_managed_wrapper): impl. byref types
19405
19406 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19407
19408         * icall.c:
19409         (search_method): don't display debug message. 
19410
19411 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19412
19413         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19414
19415 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19416
19417         * appdomain.c: set the missing filename when throwing exception.
19418
19419 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19420
19421         * metadata.c (mono_type_size): code cleanup
19422         (mono_type_stack_size): removed some test code
19423
19424 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
19425
19426         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
19427         mono_get_exception_file_not_found now.
19428
19429         * exception.c (mono_exception_from_name_two_strings): New version
19430         that will call a constructor with two string arguments. 
19431         (mono_get_exception_file_not_found): New helper routine, used to
19432         report file-not-found errors.
19433
19434 2002-07-20  Dick Porter  <dick@ximian.com>
19435
19436         * process.h:
19437         * process.c: Pass file handles to CreateProcess
19438         
19439         * icall.c:
19440         * file-io.h:
19441         * file-io.c: Implemented CreatePipe
19442
19443 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19444
19445         * metadata.c (mono_get_param_info): set alignment for value types
19446
19447 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19448
19449         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
19450         Constify mono_domain_assembly_open().
19451         * loader.c: handle null namespace in icalls.
19452
19453 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19454
19455         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
19456         (emit_str_to_ptr_conv): marshal object as structs
19457
19458         * metadata.c (mono_type_to_unmanaged): marshal object as structs
19459
19460         * marshal.c (mono_marshal_get_runtime_invoke): support value types
19461
19462 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
19463
19464         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
19465         (mono_marshal_get_native_wrapper): we an now return value types
19466
19467 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19468
19469         * verify.c: more checks implemented.
19470
19471 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
19472
19473         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
19474         (fix bug #27695)
19475         (mono_marshal_get_native_wrapper): allow byref arguments
19476         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
19477         impl. PtrToStringXXX methods
19478         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
19479         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
19480         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
19481         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
19482         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
19483
19484 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19485
19486         * reflection.c: fix buglet in parsing an assembly name.
19487
19488 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19489
19490         * marshal.c (emit_ptr_to_str_conv): first impl.
19491
19492 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19493
19494         * object.c, class.h: cache the vtable in the class as suggested by
19495         vargaz@freemail.hu (Zoltan Varga).
19496
19497 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19498
19499         * class.h, loader.c: added mono_field_from_token().
19500         * verify.c: first cut of type checking code.
19501
19502 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19503
19504         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
19505
19506 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
19507
19508         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
19509         (fix bug #27782)
19510         (mono_marshal_get_remoting_invoke): impl.
19511         (mono_delegate_begin_invoke): impl.
19512         (mono_mb_emit_save_args): impl.
19513         (mono_delegate_end_invoke): impl.
19514         (mono_marshal_get_delegate_begin_invoke):
19515         (mono_marshal_get_delegate_end_invoke):
19516         (mono_marshal_get_delegate_invoke): generate a special name for
19517         those methods (including the signature) and associate them whith
19518         the delegate class. 
19519
19520 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
19521
19522         * reflection.[ch]: 
19523         (mono_reflection_type_from_name): now it has a MonoImage parameter
19524         which is used as the default image to search the type in. If the image
19525         is NULL or getting the type from it fails, it defaults to corlib.
19526
19527         * icall.c: changed 1 call to mono_reflection_type_from_name to match
19528         new parameter.
19529
19530 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19531
19532         * reflection.c: update the parameter table index.
19533
19534 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19535
19536         * domain.c: don't include the mark byte in the string hash.
19537
19538 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19539
19540         * icall.cs: icall for Type.GetTypeCode ().
19541         * verify: a couple of fixes and disabled local initialization checks.
19542
19543 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
19544
19545         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
19546
19547         * debug-helpers.c (mono_method_full_name): print the type of the
19548         runtime wrapper
19549
19550         * metadata.c (mono_signature_hash): a hash function for signatures
19551         (mono_signature_hash): better hash algorithm
19552
19553         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
19554
19555         * debug-helpers.c (mono_method_full_name): this can now generate
19556         method names with signatures
19557
19558         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
19559         method dont have this pointers.
19560
19561 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19562
19563         * reflection.c: fixup typebuilder tokens.
19564         * image.c: fix buglet.
19565         * marshal.h: remove whitespace.
19566         * metadata.h, metadata.c: reinstate code that was removed.
19567         * verify.c: handle catch directives and fix another couple of bugs.
19568
19569 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
19570
19571         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
19572         (mono_marshal_get_native_wrapper): make it comp. with the old code
19573         (mono_marshal_get_native_wrapper): support boolean
19574         (mono_marshal_get_managed_wrapper): support more types
19575
19576 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
19577
19578         * class.c (class_compute_field_layout): compute class->blittable attribute.
19579
19580 2002-07-09  Dick Porter  <dick@ximian.com>
19581
19582         * threads.c: Make the thread cleaning up cope with threads that
19583         call ExitThread()
19584
19585 2002-07-08  Radek Doulik  <rodo@ximian.com>
19586
19587         * reflection.c (method_encode_code): use non-translated values to
19588         compute finally_start, this fixes exception handling on ppc, yay!
19589
19590         * decimal.h (struct signscale): fix endianess
19591
19592 2002-07-07  Radek Doulik  <rodo@ximian.com>
19593
19594         * reflection.c: swap box_val and not val
19595
19596 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19597
19598         * reflection.c, reflection.h: handle full assembly info in type name.
19599         Handle Type arguments when loading custom attributes.
19600         * icall.c: updated to use new mono_reflection_type_from_name () method.
19601
19602 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19603
19604         * loader.c:
19605         (method_from_memberref): also print assembly name when method not found.
19606
19607 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19608
19609         * icall.c:
19610         (ves_icall_TypeGetProperties): fixed bug #27473. 
19611
19612 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19613
19614         * reflection.c: display image name and token when cannot find the
19615         .ctor for an attribute.
19616
19617 2002-07-05  Martin Baulig  <martin@gnome.org>
19618
19619         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19620
19621 2002-07-04  Dick Porter  <dick@ximian.com>
19622
19623         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
19624         compile on mingw.  This will cause mingw builds to not wait for
19625         subthreads to terminate after the main thread does.  I've lodged a
19626         bug with the mingw developers for them to wrap OpenThread().
19627
19628 2002-07-03  Dick Porter  <dick@ximian.com>
19629
19630         * threads.c: Store thread IDs instead of handles, because
19631         GetCurrentThread() returns a pseudohandle and therefore stores
19632         useless values.  mono_thread_cleanup() continues checking the
19633         array of threads until it is empty, to cope with subthreads
19634         spawning new threads after the main thread has finished.
19635
19636         * profiler.h:
19637         * profiler.c:
19638         * profiler-private.h: Pass the thread ID to thread profiler
19639         functions, instead of a handle
19640
19641 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19642
19643         * verify.c: fixes to make it more usable.
19644         * pedump.c: added --verify code to verify IL code in an assembly.
19645
19646 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19647
19648         * reflection.c: turn errors into warnings to allow compiling corlib.
19649
19650 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19651
19652         * reflection.c: add special cases to compile corlib.
19653
19654 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19655
19656         * reflection.c: handle properties with only a set method.
19657
19658 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19659
19660         * opcodes.h: add enum with opcodes in opval order.
19661
19662 2002-07-01  Dick Porter  <dick@ximian.com>
19663         
19664         * object.h:
19665         * object.c (mono_runtime_run_main): Removed unneeded argument
19666
19667 2002-06-28  Martin Baulig  <martin@gnome.org>
19668
19669         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19670
19671 2002-06-27  Dick Porter  <dick@ximian.com>
19672
19673         * threads.c: Store the handle in both the parent thread and in the
19674         subthread, to minimise the time between starting a new thread and
19675         storing its ID.
19676
19677 2002-06-26  Dick Porter  <dick@ximian.com>
19678
19679         * appdomain.c (mono_runtime_cleanup): Close the socket library
19680         after all the threads have finished, not before
19681
19682 2002-06-26  Martin Baulig  <martin@gnome.org>
19683
19684         * debug-symfile.c (mono_debug_find_source_location): Added
19685         `guint32 *line_number' argument.  If it's not NULL, store the line number
19686         there and return the file name without the line number.
19687
19688 2002-06-25  Dick Porter  <dick@ximian.com>
19689
19690         * icall.c:
19691         * process.h:
19692         * process.c: Process forking and other support functions
19693
19694 2002-06-25  Dick Porter  <dick@ximian.com>
19695
19696         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
19697         things dont happen when the image is closed.
19698         (mono_image_lookup_resource): Walk the resource section looking
19699         for a particular entry
19700
19701         * cil-coff.h: PE resource section decoding
19702
19703 2002-06-25  Dick Porter  <dick@ximian.com>
19704         
19705         * assembly.h:
19706         * assembly.c: 
19707         (mono_assembly_foreach): Accessor functions to walk the list of
19708         loaded assemblies
19709         (mono_assembly_set_main):
19710         (mono_assembly_get_main): Process methods need to know which
19711         assembly is the "main" one
19712
19713         * object.c (mono_runtime_run_main): Record the main assembly
19714
19715         * debug-helpers.c: Fix typo
19716
19717 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
19718
19719         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
19720         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
19721
19722 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19723
19724         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
19725
19726 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
19727
19728         * image.c (do_mono_image_open): Initialize reference count,
19729         otherwise we leak the MonoImage.
19730
19731 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19732
19733         * reflection.c: small tweak to handle self-hosting.
19734
19735 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19736
19737         * reflection.c: fix type name parse code.
19738
19739 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19740
19741         * reflection.c: break out of the loop.
19742         * image.c: special case corlib.
19743
19744 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19745
19746         * reflection.c: add all the custom attrs at the end to ensure the
19747         ctors have been properly initialized when the attributes are defined
19748         in the current assembly.
19749
19750 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19751
19752         * reflection.c: handle correctly multiple-nested types.
19753
19754 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19755
19756         * row-indexes.h: fix typos.
19757         * reflection.c: adjust for typos and fix method_def_or_ref
19758         encoding in MethodImpl table.
19759
19760 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19761
19762         * reflection.c: fix entry point patching (thanks Serge!).
19763
19764 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
19765
19766         * verify.c: add check for System.Exception
19767
19768 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19769
19770         * image.c, class.c: minifix for code just c&p'ed.
19771         * reflection.c: warning fix.
19772         * object.h, loader.h, domain.c: load also StringBuilder.
19773
19774 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19775
19776         * marshal.h, marshal.c: some support code to handle complex marshaling.
19777
19778 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19779
19780         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
19781         Better signatures with vtable error dump.
19782
19783 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
19784
19785         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
19786
19787 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
19788
19789         * icall.c (ves_icall_Type_GetField): impl.
19790
19791 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19792
19793         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
19794         to retrieve a marshal description blob for a field or param.
19795
19796 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19797
19798         * reflection.h, reflection.c: change order of nested type emission
19799         to avoid table corruption. The NestedTypes table is sorted.
19800         * icall.c: change order of GetConstructor results to workaround mcs bug.
19801
19802 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19803
19804         * reflection.h, reflection.c: handle field and param marshal
19805         information.
19806
19807 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19808
19809         * icall.c, marshal.c marshal.h: more Marshal class implementation.
19810
19811 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19812
19813         * reflection.c: fix call convention.
19814
19815 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19816
19817         * reflection.h, reflection.c: mono_image_get_memberref_token()
19818         takes a type instead of a class, now. Added
19819         mono_image_get_array_token() to create tokens for the special
19820         multi-dim array methods.
19821
19822 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19823
19824         * assembly.c: handle modules (no assembly table). Split
19825         loading references in its own function.
19826         * class.c: handle moduleref resolution scope.
19827         * image.c, image.h: cache module name in image.
19828
19829 2002-06-07  Martin Baulig  <martin@gnome.org>
19830
19831         * reflection.c (mono_image_get_type_info): Only add a class layout entry
19832         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
19833
19834 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19835
19836         * icall.c: more signature fixes that used uint instead of int.
19837
19838 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19839
19840         * reflection.c: fixed signature of field refs.
19841
19842 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19843
19844         * class.c, reflection.c: handle typerefs of nested types
19845         (both on read and when writing files).
19846
19847 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19848
19849         * icall.c: fix method signatures that tried to workaround the previous
19850         typo, d'oh!
19851
19852 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19853
19854         * debug-helpers.c: fix typo.
19855
19856 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19857
19858         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
19859         rewrote the PE/COFF writing code (our programs are understood by the
19860         ms runtime, now).
19861
19862 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19863
19864         * gc.c, gc.h, icall.c: weakreference support.
19865
19866 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19867
19868         * Makefile.am, mono-config.c: use $(sysconfdir).
19869
19870 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19871
19872         * icall.c: changed default precision of Double.ToString() to 15.
19873         Fixed memory leak. Unified with Single.ToString.
19874
19875 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19876
19877         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
19878
19879 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19880
19881         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
19882         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
19883         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
19884         and myself.
19885
19886 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19887
19888         * debug-symfile.c, sysmath.c: yet more compilation fixes.
19889
19890 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19891
19892         * reflection.c, socket-io.c: more compilation fixes.
19893
19894 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19895
19896         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
19897         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
19898         unicode.c: warning and compiler compatibility fixes.
19899
19900 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19901
19902         * class.h, metadata.c: fixed warnings/compilation errors.
19903
19904 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19905
19906         * Makefile.am, mono-config.c, mono-config.h: configuration file
19907         support routines.
19908         * loader.c, loader.h: make Dll mapping configurable at runtime in the
19909         config file. Export methods to insert and lookup mappings.
19910
19911 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19912
19913         * reflection.c: handle types and boxed objects in custom attr
19914         constructors.
19915
19916 2002-05-30  Martin Baulig  <martin@gnome.org>
19917
19918         * debug-symfile.c
19919         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
19920
19921 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
19922
19923         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
19924         to lookup the implmap row for a P/Invoke method.
19925         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
19926         P/Invoke method from the runtime on an as needed basis.
19927
19928 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
19929
19930         * metadata.c (mono_metadata_parse_signature): impl.
19931
19932 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19933
19934         * class.c: handle .pack directive.
19935
19936 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19937
19938         * object.c: initialize static fields with RVA data.
19939
19940 2002-05-25  Martin Baulig  <martin@gnome.org>
19941
19942         * debug-symfile.c
19943         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
19944
19945 2002-05-24  Martin Baulig  <martin@gnome.org>
19946
19947         * debug-symfile.c
19948         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
19949         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
19950         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
19951
19952 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19953
19954         * object.c: special case string ctros in invoke.
19955         * gc.c: silly whitespace changes.
19956
19957 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
19958
19959         * threadpool.[ch]: impl. a threadpool that can
19960         be used by mint and mono.
19961
19962 2002-05-22  Martin Baulig  <martin@gnome.org>
19963
19964         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
19965         The first argument is now a `MonoReflectionModuleBuilder *', the return
19966         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
19967         `methods' field to get the method builder.  The `token' argument is the
19968         unfixed token.
19969
19970         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
19971         invalid characters instead of g_assert_not_reached()ing.  This seems
19972         to be the behaviour of mscorlib.
19973
19974 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
19975
19976         * object.c (mono_runtime_invoke_array): applied patch from Rachel
19977         Hestilow to fix bug #25104
19978
19979 2002-05-21  Martin Baulig  <martin@gnome.org>
19980
19981         * debug-symfile.c (mono_debug_find_source_location): New function.
19982         Looks up an IL offset in the line number table and returns the source
19983         location as a string.
19984
19985 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19986
19987         * icall.c:
19988         (mono_double_ToStringImpl): changed %f by %g until we have something
19989         better.
19990
19991 2002-05-21  Nick Drochak  <ndrochak@gol.com>
19992
19993         * icall.c : Use different name for Math.Pow's icall.  Needed to check
19994         parameters first in C#.
19995
19996 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19997
19998         * icall.c, reflection.h: added icall to get info about an event.
19999
20000 2002-05-20  Radek Doulik  <rodo@ximian.com>
20001
20002         * object.c (mono_value_box): don't use memcpy for boxing on BIG
20003         endian
20004         (mono_value_box): don't use memcpy for small sizes on
20005         architectures with unaligned access
20006
20007 2002-05-20  Martin Baulig  <martin@gnome.org>
20008
20009         * reflection.c (mono_reflection_setup_internal_class): Don't crash
20010         if `tb->parent == NULL'.
20011         (mono_reflection_create_internal_class): New function.  This is
20012         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
20013         for enum types.
20014
20015         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
20016         New interncall.
20017
20018 2002-05-19  Martin Baulig  <martin@gnome.org>
20019
20020         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
20021         argument to get the length, don't default to the array length.
20022
20023 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
20024
20025         * assembly.c (mono_assembly_setrootdir): New function used to
20026         override the MONO_ASSEMBLIES directory.
20027
20028 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20029
20030         * icall.c: ValueType_GetHashCode() initialize local var.
20031
20032 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20033
20034         * reflection.c: sort custom attributes table.
20035
20036 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20037
20038         * reflection.c: support named args in custom attributes (write support).
20039
20040 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20041
20042         * reflection.c: fix finally position calculation.
20043
20044 2002-05-15  Radek Doulik  <rodo@ximian.com>
20045
20046         * reflection.c: fixed endianess at many places
20047
20048         * icall.c (ves_icall_InitializeArray): comment out debug msg
20049
20050 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
20051
20052         * object.c (mono_unhandled_exception): new function to handle
20053         unhandled exceptions.
20054         (mono_unhandled_exception): call the UnhandledException event.
20055         (mono_runtime_delegate_invoke): impl.
20056
20057 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
20058
20059         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
20060         returns the RVA, not the direct pointer to the data. Handle the case
20061         when the class size is fixed.
20062
20063 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20064
20065         * reflection.c: fix some endianess issues.
20066
20067 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
20068
20069         * object.c (mono_runtime_invoke): is now able to catch exceptions.
20070
20071         * threads.c (mono_thread_init): added a callback which is invoked
20072         at thread start.
20073
20074 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20075         
20076         * icall.c: make GetHashCode return non-negative values.
20077
20078 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20079
20080         * object.c, icall.c, gc.c: revert to address-based hashcode.
20081
20082 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
20083
20084         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
20085
20086 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20087
20088         * icall.c, class.c: special case <Module>.
20089
20090 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
20091
20092         * icall.c: fix bug in GetNow().
20093
20094 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
20095
20096         * object.c (mono_runtime_class_init): make sure that we call all
20097         static class constructors.
20098
20099 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20100
20101         * reflection.c: sort methodsemantics table.
20102
20103 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20104
20105         * reflection.h, reflection.c: honour init locals setting.
20106
20107 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
20108
20109         * icall.c: copied Double ToStringImpl for Single ToStringImpl
20110
20111 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20112
20113         * reflection.c: support ContructorBuilders in attribute blob creation.
20114
20115 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20116
20117         * reflection.c: some changes to build a binary that can be run
20118         directly in windows.
20119
20120 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20121
20122         * loader.c: print a big message when an icall can't be found.
20123
20124 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20125
20126         * string-icalls.c: fix bug 24248.
20127
20128 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20129
20130         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
20131         icall.c, reflection.h: separate assembly loading by pathname and by
20132         assembly name. Use the MONO_PATH env var to search for assemblies.
20133
20134 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20135
20136         * assembly.c, image.h: add some support for assemblies
20137         with multiple modules.
20138         * class.c, class.h: export mono_class_from_typeref().
20139         * loader.c: remove duplicated code and use mono_class_from_typeref(),
20140         instead.
20141
20142 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20143
20144         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
20145         documentation says (the ECMA one is correct).
20146
20147 2002-05-02  Dick Porter  <dick@ximian.com>
20148
20149         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
20150         Don't name the synchronisation mutex.
20151
20152 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
20153
20154         * rand.c
20155         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
20156         Make the prototypes match.
20157         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
20158         Same.
20159
20160         * icall.c
20161         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
20162         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
20163         all systems have tm.tm_zone, so use strftime() with %Z to print
20164         the timezone abreviation into a temp string.
20165
20166         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
20167         rather than mono_array_addr() on a MonoString on Big Endian
20168         machines.
20169
20170 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
20171
20172         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
20173         fix bug 24041
20174
20175 2002-04-30  Dick Porter  <dick@ximian.com>
20176
20177         * socket-io.c: Cope with SOCKET being an integer rather than a
20178         pointer now.
20179
20180         * threads.c: Added Thread_free_internal, to deal with thread
20181         handle cleanup.  Moved calls to handle_store() and handle_remove()
20182         to start_wrapper(), so each can only be called once.  Allocate
20183         synchronisation blocks with GC_malloc(), and use GC finalisation
20184         to close the handles.
20185
20186         * icall.c: added System.Threading.Thread::Thread_free_internal
20187
20188 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20189
20190         * icall.c: support Environment.Exit, CommandLineArgs().
20191
20192 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20193
20194         * object.c, object.h: added mono_runtime_run_main () and
20195         mono_runtime_get_main_args () for use in System.Environment.
20196
20197 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20198
20199         * gc.c: fix thinko, enable actual finalization since the jit is now
20200         fixed.
20201
20202 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20203
20204         * gc.c, object.c: take into account that an object may be offset wrt the address
20205         returned by GC_malloc().
20206
20207 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20208
20209         * image.c: handle files without entries in the assembly table (modules).
20210
20211 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20212
20213         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20214         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20215         allowed to be null when it's System.Object class setup.
20216
20217 2002-04-27  Martin Baulig  <martin@gnome.org>
20218
20219         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20220         if `tb->parent == NULL' rather than crashing.
20221
20222 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20223
20224         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20225         calling acos() where asin() should have been called.
20226
20227 2002-04-26  Martin Baulig  <martin@gnome.org>
20228
20229         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20230         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20231         there's a subdirectory called `System', but we don't want to read that
20232         subdirectory as an assembly.
20233
20234 2002-04-25  Martin Baulig  <martin@gnome.org>
20235
20236         * debug-symfile.c: Reflect latest MonoString changes.
20237
20238 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20239
20240         * rand.c, rand.h: instance method icalls need to have an explicit
20241         this pointer as first argument in the C implementation.
20242
20243 2002-04-25  Nick Drochak <ndrochak@gol.com>
20244
20245         * icall.c: Fix typo in map for GetNonZeroBytes
20246
20247 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20248
20249         * string-icalls.c : String does now passes unit tests without any 
20250         errors, the following changes has been made:
20251         
20252         Implemented replace methods.
20253         Renaming of methods to (try) follow the standard.
20254         Fixed compare ordinal
20255         Made all memory allocated directly to function instead of via icall function.
20256         Small performance fix in is_in_array function
20257                         
20258  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20259
20260         c (mono_string_Internal_ctor_charp_int_int):
20261         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20262         sindex < 0, throw ArgumentOutOfRangeException instead of
20263         ArgumentNullException.
20264
20265         Added new check for length == 0, however
20266         I need to make it return String.Empty from the C code.
20267         
20268         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20269         that calculate the length for us here.
20270         
20271         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20272         mono_string_new_utf16 with mono_string_new, since value is utf8.
20273
20274 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20275
20276         * object.c: register the object for finalization if needed.
20277         Allocate one more char in the string for the terminating 0 char.
20278
20279 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20280
20281         * class.c, class.h, image.c: check if a type implemenst a destructor.
20282         Use the proper key for array class lookups.
20283         * icall.c: register the icalls in the System.GC class.
20284         * gc.c, gc.h: GC-related functions and icalls.
20285
20286 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20287
20288         * icall.c:
20289         * socket-io.c:
20290         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20291         changed a couple of free () by g_free ().
20292
20293         * decimal.c: one-liner in the comments for decimal2string ().
20294
20295 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20296
20297         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20298
20299 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20300
20301         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20302         * object.c (mono_runtime_invoke_array) : handle null in params
20303
20304 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20305
20306         * string-icalls.c: fixed bug in split (one off bug)
20307
20308 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20309
20310         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
20311         * icalls.c: added String::Equals as internal method
20312
20313 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20314
20315         * threads.c: fixed bug in the double interlocked functions
20316
20317 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
20318
20319         * threads.c: implemented all of the new interlocked icalls.
20320         * string-icalls.c: fix a bug in insert.
20321         * icalls.c: added the icalls for interlocked, removed old string functions.
20322         
20323 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20324
20325         * loader.c: fix off-by-one error when reading argument names.
20326
20327 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20328
20329         * profiler.c: win32 counter implementation (untested).
20330         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20331         (the latter needs testing and more complete impl. from win32 folks).
20332
20333 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20334
20335         * object.c: mono_array_new_full workaround mono_array_class_get
20336         problem.
20337
20338 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20339
20340         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20341         * object.h (mono_string_chars): Changed casting type.
20342
20343 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20344
20345         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20346                            method signatures to use gunichar2 instead of gint16.
20347
20348 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20349
20350         * object.h, object.c: domain-specific versions of mono_object_new and
20351         mono_array_new.
20352
20353 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20354
20355         * object.c: changed String layout
20356
20357         * string-icalls.c (mono_string_Internal_ctor_chara): added
20358         internal string constructors.
20359
20360 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20361
20362         * threads.c: pass 'this' to the thread start routine.
20363
20364 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20365
20366         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20367         InternalCompareStr don't call twice mono_string_cmp_char for the last
20368         character. Improved performance in mono_string_cmp_char.
20369
20370 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20371
20372         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20373         code into its own library: libmonoruntime.
20374
20375 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20376
20377         * object.h, object.c: changed array format so that szarrays do not
20378         require a bounds structure.
20379         * icall.c, appdomain.c: support for new szarray format.
20380
20381 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20382
20383         * metadata.c: compare also the retuns type when comparing signatures:
20384         we didn't do this as an optimization since really overloaded methods
20385         must differ also in the arguments, but this doesn't work with
20386         low-level IL code (or when using explicit conversion operators: see
20387         bug#23498 for an example).
20388
20389 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20390
20391         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20392
20393 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20394
20395         * icall.c: make MonoType::GetElementType its own icall.
20396
20397 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20398
20399         * icall.c: remove MonoMethod_get_Name().
20400         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20401         object.
20402
20403 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20404
20405         * string-icalls.c: optimized a few methods.
20406
20407 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20408
20409         * icall.c: added all new string internal calls
20410         * string-icalls.c: added, new string internal call implementation.
20411         * object.c: added mono_string_new_size for allocating a string a size
20412
20413 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20414
20415         * object.c (mono_object_isinst): use the same code as in the
20416         optimized x86 version.
20417
20418 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20419
20420         * profiler.c: TSC-based timer code (faster and more accurate).
20421         Not hooked up in configure, yet (set USE_X86TSC to 1).
20422
20423 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
20424
20425         * profiler.c, profiler.h: track time spent compiling methods.
20426         * threads.c: track thread creation/destruction.
20427
20428 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
20429
20430         * profiler.c, profiler.h, profiler-private.h: profiling interface
20431         and sample implementation. Moved here so that it can be used also by
20432         the jit.
20433
20434 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
20435
20436         * reflection.c, reflection.h: keep types and other handles separate in
20437         the hash tables for referred tokens. Add guid for modules.
20438
20439 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20440
20441         * assembly.c: fix bugs found with valgrind.
20442         * metadata.h, metadata.c: added mono_metadata_guid_heap().
20443
20444 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
20445
20446         * threads: added icall support for getting current domain for
20447                    the thread.
20448  
20449 2002-04-13  Martin Baulig  <martin@gnome.org>
20450
20451         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
20452         (MonoDebugVarInfo): Added `index' field for register based addresses.
20453         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
20454         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
20455         `MonoDebugVarInfo *params' and `guint32 this_offset' with
20456         `MonoDebugVarInfo *this_var'.
20457
20458         * debug-symfile.c (relocate_variable): New static function to write
20459         a location description for a local variable or method parameter.
20460
20461 2002-04-12  Martin Baulig  <martin@gnome.org>
20462
20463         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
20464         stack offset and begin/end scope address of a local variable.
20465         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
20466         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
20467         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
20468
20469         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
20470         Added new relocation types for start/end scope of a local variable.
20471
20472 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20473
20474         * object.h: add mono_object_domain() macro.
20475         * reflection.c: handle typespecs.
20476         * icall.c: MonoMethod::get_Name() implementation.
20477
20478 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20479
20480         * icall.c: String::GetHashCode() icall implementation.
20481
20482 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20483
20484         * icall.c: String::IndexOfAny icall.
20485         * object.c, object.h: make array->max_length more useful.
20486         Intrduced mono_object_class() and mono_string_length() macros.
20487
20488 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20489
20490         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
20491         instead of g_unichar_isdigit.
20492
20493 2002-04-11  Nick Drochak  <ndrochak@gol.com>
20494
20495         * icall.c: Implement a simple Double.ToString().
20496
20497 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20498
20499         * appdomain.h: only io-layer.h is supposed to be included.
20500         * icall.c: explicitly import environ. Fix warning.
20501
20502 2002-04-10  Nick Drochak  <ndrochak@gol.com>
20503
20504         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
20505                 return true even if it's not Daylight Savings time.
20506                 Only return false for the case where the function isn't
20507                 implemented for a plaform (read Windows).
20508
20509 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20510
20511         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
20512         data with a mutex.
20513
20514 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
20515
20516         * mempool.c (mono_mempool_alloc): only use g_malloc when
20517         absolutely necessary.
20518
20519 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20520
20521         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
20522
20523         * class.c (mono_class_vtable): use domain mempool to allocate vtable
20524         (mono_class_proxy_vtable): use domain mempool
20525
20526 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20527
20528         * appdomain.h, appdomain.c: split initialization that requires the
20529         execution engine support into mono_runtime_init().
20530
20531 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20532
20533         * class.c (mono_class_init): don't include vtable inside MonoClass
20534         to save some memory, gather some statistics.
20535         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
20536
20537 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20538
20539         * icall.c: internalcall implementation for ValueType.Equals().
20540
20541 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
20542
20543         * object.c (mono_message_init): moved 
20544         (mono_runtime_exec_main): new arch. independent impl.
20545         (mono_runtime_invoke_array): new method - like
20546         mono_runtime_invoke, but you can pass an array of objects.
20547         (mono_remoting_invoke): new arch. independent impl.
20548         (mono_message_invoke): new arch. independent impl.
20549         (mono_runtime_class_init): new arch. independent impl.
20550         (mono_runtime_object_init): new arch. independent impl.
20551
20552 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20553
20554         * metadata.c, object.c, reflection.c: documented the exported
20555         functions.
20556
20557 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20558
20559         * icall.c: simpler code to pass the assembly builder data to corlib.
20560         Implement GetNestedTypes() internalcall.
20561
20562 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20563
20564         * class.c: warn if a type can't be loaded.
20565
20566 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
20567
20568         * image.h: typedef MonoImageOpenStatus
20569         * types.h: removed unused file
20570         
20571 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
20572
20573         * icall.c: Enum_ToObject accepts enum value arguments.
20574
20575 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20576
20577         * class.c: move initialization of properties, events and nested
20578         classes, so that they happen for interfaces, too.
20579
20580 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20581
20582         * icall.c: cleanup some ugly casts in Array_SetValue*.
20583
20584 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20585
20586         * icall.c: the values array fro enums is of the correct type, now.
20587         Implement (correctly) getFullName instead of assQualifiedName for
20588         MonoType.
20589         * reflection.h, reflection.c: added mono_type_get_name ().
20590
20591 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20592
20593         * assembly.c, image.h: for each MonoImage, record from wich assembly
20594         it was loaded.
20595         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
20596         Make Type.Assembly work.
20597
20598 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
20599
20600         * debug-symfile.h: use char* instead of gpointer to avoid
20601         unnecessary casts.
20602
20603         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
20604
20605         * icall.c (ves_icall_InternalExecute): impl. FielSetter
20606         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
20607
20608 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
20609
20610         * icall.c (mono_message_init): impl. (code cleanup)
20611         (ves_icall_InternalExecute): impl. FieldGetter
20612
20613         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
20614         defined we call all (non-static)methods through the vtable. 
20615
20616 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
20617
20618         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
20619         finalizer even though the memory is still referenced (and the chunk of
20620         memory is not freed).
20621
20622 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20623
20624         * assembly.c: fix brokeness.
20625
20626 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
20627
20628         * class.c: kill some warnings. Check explicit interface method
20629         implementation also without considering the namespace.
20630         Load also literal strings in static class data.
20631
20632 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
20633
20634         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
20635         (default_assembly_name_resolver): Make the resolver take the
20636         "base" directory where the assembly was originally defined, so we
20637         can load DLLs that are in the same directory as the assembly that
20638         is being referenced.
20639
20640 2002-03-28  Dick Porter  <dick@ximian.com>
20641
20642         * file-io.h: 
20643         * file-io.c:
20644         * socket-io.c: 
20645         * unicode.h: 
20646         * unicode.c: Warning cleanups
20647
20648 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
20649
20650         * object.h, reflection.h: use the correct type instead of MonoObject.
20651
20652 2002-03-28  Martin Baulig  <martin@gnome.org>
20653
20654         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
20655         (mono_debug_update_symbol_file): Initialize classes if necessary.
20656
20657 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
20658
20659         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
20660         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
20661
20662 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
20663
20664         * assembly.h: fix function prototype.
20665         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
20666         * mono-endian.h: use const cast.
20667
20668 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20669
20670         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
20671
20672 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
20673
20674         * loader.c: don't assert when a typeref can't be loaded, give
20675         a chance to the runtime to trow an exception instead.
20676         * loader.h: fix warning.
20677
20678 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20679
20680         * class.c (mono_class_proxy_vtable): added proxy support
20681
20682 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
20683
20684         * icall.c: removed last of PAL calls, added System.Environment
20685         * file-io.h, file-io.c: MonoIO implementation
20686         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
20687
20688 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
20689
20690         * appdomain.c: do not use the byte marker in ldstr table lookup.
20691         * debug-helpers.c: allow two ':' to separate class and method name.
20692         * object.c: allocate arrays bounds with the GC, too.
20693         * verify: add a few more checks.
20694
20695 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
20696
20697         * reflection.c: output also literal strings. Allocate parameter data
20698         with GC_malloc() (thanks, Martin, for catching this!).
20699
20700 2002-03-26  Martin Baulig  <martin@gnome.org>
20701
20702         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
20703         include the `this' offset in the `param_offsets'.
20704
20705 2002-03-25  Martin Baulig  <martin@gnome.org>
20706
20707         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
20708         mono_debug_get_class() function to get the classes. Added new
20709         relocation types for arrays and strings.
20710         (mono_debug_get_class): New static function to search in all
20711         referenced assemblies for a metadata token.
20712
20713         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
20714
20715 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20716
20717         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
20718         hold gc-allocated objects. Make the string heap a stream like the
20719         others. Removed duplicated code when writing stream info.
20720         Added asserts to catch possible buffer overflows. Set the sorted map
20721         for tables that need sorting. Added some documentation.
20722
20723 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
20724
20725         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
20726         for interned strings and vtables.
20727
20728 2002-03-24  Martin Baulig  <martin@gnome.org>
20729
20730         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
20731         it in the array since it was created with g_slist_prepend().
20732
20733 2002-03-24  Martin Baulig  <martin@gnome.org>
20734
20735         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
20736         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
20737         (mono_debug_method_from_token): Renamed to
20738         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
20739         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
20740
20741         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
20742         relocation types.
20743
20744         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
20745
20746 2002-03-24  Martin Baulig  <martin@gnome.org>
20747
20748         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
20749         (mono_debug_method_from_token): New func.
20750
20751         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
20752         New interncall, calls mono_debug_local_type_from_signature().
20753         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
20754         calls mono_debug_method_from_token().
20755
20756 2002-03-23  Martin Baulig  <martin@gnome.org>
20757
20758         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
20759         specifies the number of bytes to be converted, not the array size.
20760         Return the number of chars, not the number of bytes.
20761         (ves_icall_iconv_get_chars): The `byteCount' argument
20762         specifies the number of bytes to be converted, not the array size.
20763
20764 2002-03-23  Martin Baulig  <martin@gnome.org>
20765
20766         * reflection.h (MonoReflectionSigHelper): New type.
20767
20768         * reflection.c (mono_reflection_sighelper_get_signature_local),
20769         (mono_reflection_sighelper_get_signature_local): New functions.
20770
20771         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
20772         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
20773         interncalls.
20774
20775 2002-03-23  Martin Baulig  <martin@gnome.org>
20776
20777         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
20778         is_writeable is set.
20779         (mono_raw_buffer_update): New function to write the modified map
20780         back to disk.
20781
20782         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
20783
20784         * debug-symfile.c (mono_debug_update_symbol_file): Call
20785         mono_raw_buffer_update() when done writing.
20786
20787 2002-03-23  Martin Baulig  <martin@gnome.org>
20788
20789         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
20790
20791         * debug-symfile.c: Added support for arguments and local variables.
20792
20793 2002-03-23  Dick Porter  <dick@ximian.com>
20794
20795         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
20796         protected by ifdefs, hence breaking the w32 build.
20797
20798 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20799
20800         * object.c: implement is_interned() the right way.
20801
20802 2002-03-21  Martin Baulig  <martin@gnome.org>
20803
20804         * debug-symfile.[ch]: New files to handle debugging information
20805         files. There's also support to dynamically update these symbol
20806         files to include machine dependent information.
20807
20808 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
20809
20810         * threads.c (mono_thread_create): new function to create thread
20811         from C
20812
20813 2002-03-20  Martin Baulig  <martin@gnome.org>
20814
20815         * icall.c (ves_icall_InternalInvoke): Create a new object if the
20816         method is a constructor.
20817         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
20818         points to ves_icall_InternalInvoke().
20819
20820 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
20821
20822         * file-io.c: Flush shouldn't throw exceptions.
20823
20824 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
20825
20826         * file-io.c: FileStream flush support; FileSetLength now
20827         restores file pointer.
20828
20829 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
20830
20831         * class.c: set image for pointer classes.
20832
20833 2002/03/19  Nick Drochak <ndrochak@gol.com>
20834
20835         * sysmath.c: Forgot one.
20836
20837 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
20838
20839         * sysmath.c: Avoid redefining existing names.
20840
20841 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
20842
20843         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
20844         handled by runtime as icall rather than dllimport from libm.so
20845         * file-io.c, file-io.h: fixed handle argument type.
20846
20847 2002-03-18  Dick Porter  <dick@ximian.com>
20848
20849         * reflection.c (mono_image_get_type_info): rename interface to
20850         iface, because of "#define interface struct" on windows.
20851
20852 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
20853
20854         * class.c, class.h: rename and export mono_ptr_class_get().
20855         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
20856         * reflection.c, reflection.h, icall.c: better/saner type name
20857         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
20858         method signatures.
20859
20860 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
20861
20862         * class.c (mono_class_init): removed hardcoded GHC_SLOT
20863
20864         * icall.c (ves_icall_InternalInvoke): impl.
20865
20866 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20867
20868         * reflection.c: output the interface map table, too.
20869
20870 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
20871
20872         * class.c (class_compute_field_layout): separate computation of 
20873         static field layout
20874
20875 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
20876
20877         * icall.c: added System.Buffer support.
20878         * file-io.c: moved file icalls from PAL to FileStream.
20879
20880 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
20881
20882         * icall.c (ves_icall_System_Object_GetHashCode): impl.
20883
20884 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
20885
20886         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
20887
20888 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20889
20890         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
20891
20892 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
20893
20894         * debug-helpers.{c,h}: moved here from monograph some useful functions
20895         to locate a method by name/signature in a class or image. Included
20896         also a small and flexible IL disassembler.
20897
20898 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20899
20900         * reflection.c: fixup tokens in methods with small header size, too.
20901
20902 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
20903
20904         * object.c (mono_string_to_utf8): remove assert(!error), instead
20905         print a warning. 
20906
20907 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
20908
20909         * icall.c: update to the new mono_Array_class_get interface.
20910
20911 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
20912
20913         * appdomain.c, object.c: Boehm-GC enable.
20914         * icall.c: make get_data_chunk() support split data requests.
20915         Ensure a class is initialized in more cases. Return only the first
20916         property found in GetProperties() or the compiler gets confused. 
20917         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
20918         * reflection.h, reflection.c: add fixup mechanism for field and method
20919         tokens. Initialize assembly->typeref in a single place. Output
20920         properties after events. Support custom attributes for events, too.
20921         Typo fix for paramter custom attrs.
20922
20923 2002-03-07  Martin Baulig  <martin@gnome.org>
20924
20925         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
20926
20927 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
20928
20929         * class.c (mono_array_class_get): fix. for multi. dim. arrays
20930
20931 2002-03-06  Martin Baulig  <martin@gnome.org>
20932
20933         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
20934         non-zero lower bounds. See testcases #F10-#F13.
20935
20936 2002-03-05  Martin Baulig  <martin@gnome.org>
20937
20938         * exception.c (mono_get_exception_argument_out_of_range): New exception.
20939
20940         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
20941         ves_icall_System_Array_GetValue(), only calculate the absolute array position
20942         here.
20943         (ves_icall_System_Array_SetValue): Likewise.
20944         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
20945         as argument and does the actual work. This function is used when copying a
20946         multi-dimensional array.
20947         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
20948         now do all the widening conversions of value types.
20949         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
20950
20951 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20952
20953         * class.c: remove some magic numbers and use the smbolic names,
20954         instead. Added init_events() to load event info at class init time.
20955         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
20956         and mono_metadata_methods_from_event().
20957         * reflection.h, reflection.c: added support for writing out the evnets
20958         related information.
20959
20960 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
20961
20962         * reflection.h, icall.c: use a different method (GetInterfaces)
20963         to gather interface info and add isbyref, isprimitive and
20964         ispointer to the ves_icall_get_type_info() return value.
20965
20966 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
20967
20968         * class.h: stared adding support for events.
20969         * icall.c: split find_members implementation. Added debug icall to get
20970         the address of an object.
20971         * reflection.c: handle TypeBuilders in mono_type_get_object().
20972
20973 2002-03-01  Martin Baulig  <martin@gnome.org>
20974
20975         * icall.c (ves_icall_System_Array_GetLength): This must throw an
20976         ArgumentOutOfRangeException(), not an ArgumentException().
20977         (ves_icall_System_Array_GetLowerBound): Likewise.
20978         (ves_icall_System_Array_GetValue): Improved argument checking.
20979         (ves_icall_System_Array_SetValue): Improved argument checking.
20980
20981 2002-03-01  Martin Baulig  <martin@gnome.org>
20982
20983         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
20984         called with invalid arguments rather than just dying with g_assert().
20985         (ves_icall_System_Array_SetValue): Likewise.
20986         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
20987         raise a NotImplementedException instead.
20988         (ves_icall_System_Array_GetLength): Added argument checking.
20989         (ves_icall_System_Array_GetLowerBound): Added argument checking.
20990
20991 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
20992
20993         * object.h (mono_assert): new macros mono_assert and
20994         mono_assert_not_reached
20995
20996 2002-02-28  Martin Baulig  <martin@gnome.org>
20997
20998         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
20999         and "System::String::IsInterned" to "System::String::_IsInterned".
21000
21001 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
21002
21003         * icall.c: remove hacks for typebuilder. Added icall to create a
21004         modified type from a tybebuilder.
21005         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
21006         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
21007         to create a backing MonoClass for a TypeBuilder.
21008
21009 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21010
21011         * class.c, class.h: more refactoring of class init.
21012         Export mono_class_setup_mono_type() and mono_class_setup_parent().
21013
21014 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
21015
21016         * marshal.c, marshal.h: start of marshaling interface.
21017
21018 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21019
21020         * icall.c: fix order in assembly qualified name icall.
21021
21022 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21023
21024         * class.c: do not free str, since we store it in the hash table.
21025         * reflection.h: add label field to MonoILExceptionInfo.
21026         * reflection.c: handle references to more than one assembly. Handle
21027         case when there isn't a module created in the assembly.
21028
21029 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21030
21031         * class.c: Fix typo. Start refactoring of class init code.
21032
21033 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21034
21035         * appdomain.c: exit with 1 on error.
21036         * class.c: we already have the name in MonoClassField.
21037         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
21038         MonoStreamHeader instead of an offset of image->raw_metadata.
21039
21040 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
21041
21042         * appdomain.c (mono_init): Be even more descriptive about the error.
21043
21044 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
21045
21046         * appdomain.c: give the user an informative message when corlib can't
21047         be loaded.
21048
21049 2002-02-26  Martin Baulig  <martin@gnome.org>
21050
21051         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21052         New icall to get the time zone data.
21053
21054 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21055
21056         * reflection.c: set virtual and raw size of section correctly.
21057         * threads.c: transfer domain information to newly created threads.
21058
21059 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21060
21061         * class.c: when instancing a class in a domain, load the default
21062         vaules for static fields from the constant table. Fix System.Enum to
21063         not be an enum.
21064         * icall.c: implement Object::GetType() internalcall. Implemented
21065         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
21066         Fixed checking of binding flags in find_members().
21067         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
21068         * reflection.c: handle enumerations when writing to the constant
21069         table. Use a different object cache for types.
21070
21071
21072 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
21073
21074         * object.c (mono_object_isinst): fix for arrays
21075
21076         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
21077
21078 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21079
21080         * object.c: don't use mprotect ()  and fix intern pool hash table
21081         lookup for big endian systems.
21082
21083 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21084
21085         * icall.c: change type_is_subtype_of () signature.
21086
21087 2002-02-21  Mark Crichton  <crichton@gimp.org>
21088
21089         * rand.c, rand.h: Added random number generator for
21090         System.Security.Cryptography classes.
21091
21092         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
21093
21094         * icall.c: Added System.Security.Cryptography calls.
21095
21096 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21097
21098         * class.c, icall.c, metadata.c: better support for pointer types.
21099         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
21100         * reflection.c: Add support for getting custom attrs for properties
21101         and simplify some code.
21102
21103 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21104
21105         * icall.c: change getToken () and add custom attribute GetBlob()helper
21106         method.
21107         * reflection.h: add custom attrs array to the reflection builder structures.
21108         * reflection.c: encode and emit custom attributes for all the relevant
21109         reflection objects. Cache fieldref and methodref tokens. Change
21110         mono_image_create_token() interface to take a MonoDynamicAssembly.
21111         More complete custom attributes decoder. Load custom attributes for
21112         Assembly, Field, Method and Constructor objects, too. Make the
21113         returned array an Attribute[] one, not object[]. Added
21114         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
21115         custom attribute constructor.
21116
21117 2002-02-20  Dick Porter  <dick@ximian.com>
21118
21119         * icall.c:
21120         * rawbuffer.c:
21121         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
21122         problem code out for now).
21123
21124 2002-02-19  Radek Doulik  <rodo@ximian.com>
21125
21126         * object.c (mono_ldstr): use hash table to avoid multiple swapping
21127
21128 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
21129
21130         * icall.c: register the GetCustomAttributes method.
21131         * object.c, object.h: add mono_string_new_len ().
21132         * reflection.h, reflection.c: added mono_runtime_invoke(),
21133         mono_install_runtime_invoke(). Added
21134         mono_reflection_get_custom_attrs () to load custom attributes and
21135         create the attribute objects.
21136
21137 2002-02-19  Dick Porter  <dick@ximian.com>
21138         * threads-dummy-types.c:
21139         * threads-dummy-types.h:
21140         * threads-dummy.c:
21141         * threads-dummy.h:
21142         * threads-pthread-types.c:
21143         * threads-pthread-types.h:
21144         * threads-pthread.c:
21145         * threads-pthread.h:  Deleted obsolete files
21146
21147 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
21148
21149         * class.c (mono_class_vtable): runtime init the class when we
21150         allocate static class data.
21151
21152         * icall.c (ves_icall_System_Array_SetValue): check for null values.
21153
21154         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
21155         and String - but we will need generic marshalling support in the
21156         future. 
21157         (mono_init): set the domain name in a ms compatible way
21158
21159         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
21160         String[].
21161
21162 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
21163
21164         * object.c (mono_array_clone): use alloca() instead of g_malloc  
21165         for sizes
21166
21167         * appdomain.c (mono_domain_unload): impl.
21168
21169 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21170
21171         * appdomain.c, object.c: fix intern pool implementation.
21172         * class.c: fix alignment code.
21173
21174 2002-02-16  Radek Doulik  <rodo@ximian.com>
21175
21176         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
21177         and s2 > s1, just copy lower bytes to be compatible with little
21178         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
21179         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
21180
21181         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21182         force big_endian to be 1 for big endian machines 
21183         (ves_icall_iconv_new_decoder): ditto
21184
21185 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21186
21187         * socket-io.c (convert_sockopt_level_and_name): If the system
21188         doesn't define SOL_IP or SOL_TCP, get them by hand using
21189         getprotobyname() and caching the values (because this could be a
21190         slow operation).
21191         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21192         Use the appropriate struct when the system does support it. Ie,
21193         not all systems have struct ip_mreqn so use struct ip_mreq when
21194         appropriate.
21195
21196 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21197
21198         * reflection.c: handle finally clauses.
21199
21200 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21201
21202         * socket-io.c: use g_snprintf() instead of snprintf.
21203
21204 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21205
21206         * reflection.c (mono_param_get_objects): Cast second argument to
21207         mono_method_get_param_names to a const char** to silence the
21208         compiler warning.
21209
21210         * appdomain.c (mono_domain_assembly_open): Put parens around the
21211         truth statement in the for-loop.
21212
21213         * unicode.c (iconv_convert): Got rid of a compiler warning about
21214         int i being unused when the system has a new iconv.
21215         (iconv_get_length): Same.
21216
21217         * image.c (load_class_names): Cast the second argument to
21218         g_hash_table_insert() to char* to hush compiler warnings about the
21219         arg being a const.
21220         (mono_image_open): Same here.
21221
21222         * socket-io.c: Don't conditionally include sys/filio.h or
21223         sys/sockio.h here anymore since we now get them from
21224         io-layer/io-layer.h
21225         (inet_pton): If the system doesn't support inet_aton, implement
21226         using inet_addr and also #define INADDR_NONE if it isn't defined
21227         by the system.
21228
21229 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21230
21231         * metadata.c, metadata.h: added function to get packing and size info
21232         of a typedef.
21233         * reflection.h, reflection.c: handle field RVA data. Save info about
21234         the table layout if needed. Assign typedef indexes to all the types
21235         before dumping the info about them to avoid forward reference problems.
21236
21237 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21238
21239         * socket-io.c (convert_sockopt_level_and_name): ifdef
21240         SO_ACCEPTCONN because it is not defined on my system (old debian)
21241
21242 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21243
21244         * opcode.c: use stddef.h to get NULL.
21245
21246 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21247
21248         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21249         for FIONBIO, FIONREAD and SIOCATMARK.
21250         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21251         define INADDR_NONE and besides, inet_addr() is deprecated and
21252         should not be used. Use inet_pton() instead - it also has the
21253         added bonus that it can easily handle IPv6 addresses as well.
21254         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21255
21256 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21257
21258         * decimal.c: remove _MSC_VER conditional.
21259
21260 2002-02-13  Dick Porter  <dick@ximian.com>
21261
21262         * socket-io.c: 
21263         * icall.c: Internal calls for Blocking, Select, Shutdown,
21264         GetSocketOption and SetSocketOption
21265
21266 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21267
21268         * assembly.cs: better resolver: use it instead of some kludgy
21269         code.
21270
21271 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21272
21273         * reflection.c: the best way to speed-up the compiler is to avoid
21274         infinite loops.
21275
21276 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21277
21278         * class.c (mono_class_vtable): changed the object layout
21279         (obj->vtable->class). 
21280         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21281
21282 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21283
21284         * assembly.c: look for assemblies in the assembly dir, too.
21285
21286 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21287
21288         * class.c: fix thinko in mono_class_from_type().
21289
21290 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21291
21292         * exception.h, exception.c: added TypeLoadException.
21293         * object.h, object.c: added mono_array_clone ().
21294         * icall.c: handle throwOnError in AssemblyGetType().
21295         Added Array.Clone().
21296         * opcode.h, opcode.c: use a single value for the opcode val.
21297         Compile fix for non-gcc compilers.
21298
21299 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21300
21301         * opcodes.c, opcodes.h: export interesting info about opcodes.
21302
21303 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21304
21305         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21306         icalls. 
21307
21308         * class.c (class_compute_field_layout): set element_class for enums
21309         (mono_class_create_from_typedef): set element_class for normal classes
21310
21311         * icall.c (ves_icall_System_Enum_get_value): impl.
21312
21313         * class.c (mono_class_create_from_typedef): do not set valuetype
21314         flag for System.ValueType and System.Enum
21315
21316 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
21317
21318         * unicode.c (iconv_convert): fix big endian problem.
21319
21320 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21321
21322         * class.c: add asserts if we are ever going to scribble over memory.
21323         * socket-io.c: not all systems have AF_IRDA defined.
21324
21325 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21326
21327         * class.c (class_compute_field_layout): do not consider static
21328         fields to compute alignment
21329
21330 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21331
21332         * appdomain.c (mono_appdomain_get): impl.
21333         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21334
21335 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21336
21337         * icall.c: ignore "file://" prefix when loading an assembly.
21338
21339 2002-01-23  Dick Porter  <dick@ximian.com>
21340
21341         * socket-io.c:
21342         * icall.c:
21343         * Makefile.am: Added socket support
21344
21345 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21346
21347         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21348         code back.  This should return the assemblies that are loaded by
21349         the runtime on behalf of an application domain. 
21350
21351         The current implementation is still broken, it just returns every
21352         assembly loaded, but until we get real applications domain this
21353         will do.
21354
21355 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21356
21357         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21358         AppDomain object.
21359
21360 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21361
21362         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21363         the mono_class_from_name lookup.
21364         (ves_icall_get_parameter_info): ditto.
21365         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21366         method.
21367         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21368
21369 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21370
21371         * class.c: load also nested classes on class init.
21372         System.ValueType instance methods gets passed boxed
21373         values, unless methods in derived classed that get a pointer to the
21374         data.
21375         * icall.c: use better name parsing code in GetType().
21376         * image.c, image.h: add mono_image_loaded ().
21377         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21378         * reflection.c, reflection.h: added mono_reflection_parse_type().
21379
21380 2002-01-22  Veronica De Santis <veron78@interfree.it>
21381
21382         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21383         * threads.c : Added the implementation of internal calls for events
21384         * threads.h : Added prototypes of internal calls for events
21385         
21386 2002-01-21  Radek Doulik  <rodo@ximian.com>
21387
21388         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21389
21390 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21391
21392         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21393         (mono_class_value_size): use min_align
21394
21395 2002-01-20  Dick Porter  <dick@ximian.com>
21396
21397         * threads.h:
21398         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21399         so it compiles on w32.
21400
21401 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21402
21403         * metadata.c (mono_type_stack_size): impl.
21404
21405         * class.c (mono_class_get_field): impl. memberref token
21406
21407 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21408
21409         * icall.h : Added the internal calls mapping for CreateMutex_internal
21410                     and ReleaseMutex_internal.
21411         * threads.h : Added the prototype of mutexes internal calls.
21412         * threads.c : Added the implementations of mutexes internal calls.
21413
21414 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21415
21416         * metaparse.h: removed unused file.
21417         * reflection.c, reflection.h: added stream_data_align () function 
21418         to align data in streams and keep stream aligned. Add support for
21419         exception support in method headers.
21420
21421 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
21422
21423         * unicode.c: make iconv_convert () return the number of bytess written
21424         in the output buffer.
21425
21426 2002-01-15  Dick Porter  <dick@ximian.com>
21427         * threads.c: Make the runtime's idea of infinite timeouts coincide
21428         with the class library's
21429
21430         Fix a particularly egregious bug in mono_thread_cleanup(). That
21431         code was so utterly bogus it must have been written on a Monday.
21432
21433 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21434
21435         * reflection.h: add subtypes field to TypeBuilder.
21436         * reflection.c: encode constants for literal fields.
21437         Handle subtypes. Fix user string token (and add a zero byte)
21438         at the end.
21439         
21440 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
21441
21442         * class.c (mono_class_init): bug fix: assign slot numbers for
21443         abstract methods.
21444
21445 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21446
21447         * reflection.c: don't try to output a code RVA for abstract methods.
21448         Small fixes for method header format. Output parameter info to the
21449         ParamDef table. Save method overriding info to MethodImpl table.
21450         Fix property support. Allow typedef.extends to be a type in the
21451         building assembly.
21452         * verify.c: fix off-by-one error.
21453
21454 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
21455
21456         * class.c: fix mono_class_from_mono_type () for szarray types.
21457         Remove unused cache check in mono_class_from_type_spec().
21458         * icall.c: *type_from_name () functions handle simple arrays and byref.
21459         * reflection.c: handle byref and szarray types. Handle methods without
21460         body (gets P/Invoke compilation working). Handle types and fields in
21461         get_token ().
21462         * reflection.h: add rank to MonoTypeInfo.
21463
21464 2002-01-10  Dick Porter  <dick@ximian.com>
21465
21466         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
21467         internal calls
21468
21469 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21470
21471         * icall.c: initialize class in type_from_handle ().
21472         Loop also in parent classes for get_method ().
21473         * reflection.c: properly encode class and valuetype types.
21474         Start on encoding TypeBuilder types. Handle fieldrefs.
21475         Use correct length when registering a user string.
21476         Handle ConstructorBuilder and MonoMethod in get_token ().
21477         Make mono_type_get_object () aware of cached types.
21478         * object.c: back out change to mono_string_new ().
21479
21480 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
21481         * object.c: mono_string_new should return a NULL when the string 
21482         passed in is NULL -- not try to deference it.
21483         
21484 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21485
21486         * icall.c: hack to make IsSubType work for TypeBuilders.
21487         * reflection.c: emit constructors before methods.
21488         Retrieve param names in mono_param_get_objects().
21489
21490 2002/01/05  Nick Drochak  <ndrochak@gol.com>
21491
21492         * Makefile.am: fix list of headers and sources so automake 1.5
21493         doesn't complain. Removed \# at end of list.
21494
21495 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21496
21497         * reflection.c: get token for a method ref. Set return type of
21498         constructor to void.
21499         * loader.c: debug message.
21500         * class.c: typo fix.
21501
21502 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
21503
21504         * icall.c: fix array init with rank > 1. FindMembers
21505         loops in parent class as well.
21506         * image.c: do not insert nested types in name cache.
21507         * reflection.c: warning fix.
21508         * reflection.h: add override method (for interface impl).
21509
21510 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
21511
21512         * metadata.c: fix customattr decoding.
21513
21514 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
21515
21516         * rawbuffer.cs: Added native Win32 implementation, avoids using
21517         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
21518
21519 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
21520
21521         * class.c: make the low-level routines handle the cache.
21522
21523 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
21524
21525         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
21526
21527 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
21528
21529         * class.c: fix mono_array_element_size() for objects.
21530         * class.h, class.c: add properties to MonoClass and load them
21531         at init time.
21532         * icall.c: check with isinst() when assigning a value to an array
21533         instead of requiring the classes to match exactly.
21534         Implemented icall for System.Type::GetType().
21535         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
21536         enums. Handle bindingflags when looking for methods and fields.
21537         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
21538         and mono_metadata_methods_from_property().
21539         * reflection.h, reflection.c: added structures for propreties,
21540         parameters and enums. Implemented mono_property_get_object() and
21541         mono_param_get_objects().
21542
21543 2001-12-18  Dick Porter  <dick@ximian.com>
21544
21545         * file-io.c: Use mono_string_to_utf16() instead of
21546         mono_string_chars()
21547
21548         * object.c: Added mono_string_to_utf16(), which copies the non
21549         NULL-terminated MonoString into a new double-null-terminated
21550         buffer.
21551
21552 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
21553
21554         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
21555
21556 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
21557
21558         * file-io.c: raise exceptions if handle is invalid.
21559
21560 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
21561
21562         * assembly.c: yet another check for mscorlib.
21563         * class.c, class.h: load nesting info for classes.
21564         * icall.c: many new functions to support the Reflection classes.
21565         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
21566         * reflection.h, reflection.c: mono_image_create_token(),
21567         mono_assembly_get_object(), mono_type_get_object(),
21568         mono_method_get_object(), mono_field_get_object(): methods to return
21569         objects that parallel the C representation of assemblies, types,
21570         methods, fields.
21571
21572 2001-12-11  Dick Porter  <dick@ximian.com>
21573
21574         * icall.c:
21575         * file-io.c: Internal calls for file IO.
21576
21577 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
21578
21579         * tabledefs.h: missing FileAttributes.
21580         * verify.h, verify.c: use is_valid_string () to simplify and check for
21581         valid strings more correctly. Fix warnings and speeling.
21582         Check more tables: Filed, File, ModuleRef, StandAloneSig.
21583         Check code: branches, maxstack, method calls.
21584
21585 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
21586
21587         * object.c (mono_object_allocate): removed static, so that the jit
21588         can allocate value types.
21589
21590         * icall.c (ves_icall_System_DateTime_GetNow): impl.
21591
21592 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21593
21594         * class.c: init enum types right away and register the
21595         token->MonoClass map in mono_class_create_from_typedef ().
21596         * verify.h, verify.c: first cut of the verifier.
21597         * pedump.c: add --verify switch to verify metadata tables.
21598         * tabledefs.h: add some missing enums.
21599
21600 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
21601
21602         * class.c (mono_install_runtime_class_init): impl.
21603         (mono_class_init): renamed mono_class_metadata_init to
21604         mono_class_init, also removed the metadata_inited flag
21605
21606         * object.c (mono_object_isinst): use faster algorithm
21607
21608 2001-11-30  Radek Doulik  <rodo@ximian.com>
21609
21610         * mono-endian.h: reverted last change
21611         added function prototypes
21612
21613         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
21614         add mono-endian.c back
21615
21616         * mono-endian.c: returned back, as Paolo pointed out, it's needed
21617         for unaligned access, I've mistaked it with endianess. I am
21618         sorry.
21619         (mono_read16): fix reverted endianess
21620         (mono_read64): ditto
21621         (mono_read32): ditto
21622
21623 2001-11-30  Dick Porter  <dick@ximian.com>
21624
21625         * exception.c: Implement mono_exception_from_name()
21626
21627 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21628
21629         * metadata.h, metadata.c: remove params_size and locals_size and their
21630         calculation from the metadata code: they are only usefult to the
21631         interp.
21632
21633 2001-11-29  Radek Doulik  <rodo@ximian.com>
21634
21635         * object.c (mono_ldstr): swap bytes here, it's probably not the
21636         best place, but works for me now, I'll redo it once I know mono
21637         better, also note that I add PROT_WRITE and don't reset back, also
21638         note that it's only affects big endians, so x86 should be OK
21639
21640         * mono-endian.h (read16): use just glib macros for both endians
21641
21642         * mono-endian.c: removed as glib macros are used in in
21643         mono-endian.h so we don't need to care about endianess for read
21644         macros as glib does that for us already
21645
21646 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
21647
21648         * class.h, class.h: take minimum alignment into consideration so
21649         that the fields of a class remain aligned also when in an array.
21650
21651 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21652
21653         * loader.h, loader.c: add mono_method_get_param_names().
21654         * class.c: 0-init class fields.
21655
21656 2001-11-26  Dick Porter  <dick@ximian.com>
21657
21658         * icall.c:
21659         * threads-types.h:
21660         * threads.c: New file that handles System.Threading on all platforms
21661
21662         * object.c: 
21663         * object.h: Remove the synchronisation struct from MonoObject,
21664         replace it with a pointer that gets initialised on demand
21665
21666         * Makefile.am: Replace all the system-specific threading code with
21667         a single file that uses the new wrapper library
21668
21669 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
21670
21671         * class.c, class.h: add mono_install_trampoline() so that the runtime
21672         can register a function to create a trampoline: removes the ugly
21673         requirement that a runtime needed to export arch_create_jit_trampoline.
21674         * object.h, object.c: added mono_install_handler() so that the runtime
21675         can install an handler for exceptions generated in C code (with
21676         mono_raise_exception()). Added C struct for System.Delegate.
21677         * pedump.c: removed arch_create_jit_trampoline.
21678         * reflection.c: some cleanups to allow registering user strings and
21679         later getting a token for methodrefs and fieldrefs before the assembly
21680         is built.
21681         * row-indexes.h: updates and fixes from the new ECMA specs.
21682
21683 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
21684
21685         * class.h, class.c: add enum_basetype field to MonoClass.
21686         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
21687         to get index in the constant table reated to a field, param or
21688         property.
21689         * reflection.h, reflection.c: handle constructors. Set public-key and
21690         version number of the built assembly to 0.
21691         * row-indexes.h: update from new ECMA spec.
21692
21693 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21694
21695         * class.h, class.c: add a max_interface_id to MonoClass.
21696         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
21697         since it's used to do that. Added mono_type_type_from_obj().
21698         Make GetType() return NULL instead of segfaulting if the type was not
21699         found. Handle simple arrays in assQualifiedName.
21700         * object.h: add a struct to represent an Exception.
21701         * reflection.c: output call convention in method signature.
21702         Add code to support P/Invoke methods and fixed offsets for fields.
21703
21704 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
21705
21706         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
21707         the value.
21708         * icall.c: use mono_array_addr instead of array->vector: fixes the
21709         reflection image writing.
21710         * reflection.c: init call convention byte to 0 in method signature.
21711         Encode the property signature. Don't output property-related methods
21712         twice. Really process the properties for a type (don't cast a field to
21713         a property, my mom always told me that).
21714         Fix 64 bit issues in pointer alignment in a different and more
21715         readable way.
21716
21717 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
21718
21719         * loader.h: Removed type class from MonoDefaults, added monotype
21720
21721         * loader.c: Loaded MonoType, removed loading of Type
21722
21723         * icall.c (my_mono_new_object): Now returns a System.MonoType,
21724         and fills in System.Type._impl with a RuntimeTypeHandle rather
21725         than the actual MonoClass *
21726
21727         (ves_icall_type_from_handle): change from type_class to
21728         monotype_class
21729
21730         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
21731         implemented
21732
21733         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
21734         implemented
21735
21736         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
21737
21738         (ves_icall_System_Reflection_Assembly_GetType): implemented
21739
21740         (ves_icall_System_MonoType_assQualifiedName): implemented
21741
21742         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
21743
21744 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
21745
21746         * assembly.c (mono_assembly_open): Implement a cache for the
21747         assemblies. 
21748
21749         (mono_assembly_close): only destroy the assembly when the last
21750         reference is gone.
21751         
21752 2001-11-09  Dick Porter  <dick@ximian.com>
21753
21754         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
21755
21756 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
21757
21758         * class.c (mono_class_metadata_init): bug fix: compute the right slot
21759
21760 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21761
21762         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
21763         from Martin Weindel.
21764         * object.h: add mono_string_chars ().
21765
21766 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
21767
21768         * reflection.c (build_compressed_metadata): Eliminates warnings
21769         and uses 64-bit clean code.
21770
21771         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
21772         (mono_type_equal): Change signature to eliminate warnings.
21773
21774 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21775
21776         * icall.c, loader.c: remove the internalcall array constructors.
21777         Changes to match the new MonoArray structure.
21778         * object.h, object.c: an array object doesn't allocate an extra
21779         vector. Add mono_array_new_full () to create jagged arrays easily.
21780
21781 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21782
21783         * metadata.h, metadata.c: add mono_metadata_field_info () to
21784         retreive all the info about a field from vairous tables.
21785         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
21786         * class.h, class.c: augment MonoClassField with more info.
21787         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
21788         policy and load a field's RVA if needed.
21789
21790 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
21791
21792         * class.c (mono_class_metadata_init): create a trampoline for all
21793         virtual functions instead of actually compiling them.
21794
21795 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
21796
21797         * class.h, class.c: include name in MonoClassField.
21798         * class.c: fix fundamental type of System.Object and System.String.
21799         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
21800         tokens in ldtoken.
21801         * icall.c: remove internalcalls for the Reflection stuff that is now
21802         done in C# code.
21803         * loader.c: mono_field_from_memberref () implementation.
21804         * mono-endian.c: thinko (s/struct/union/g).
21805         * object.c, object.h: make the mono_string_* prototypes actually use
21806         MonoString instead of MonoObject.
21807         * reflection.c, reflection.h: updates for changes in the reflection
21808         code in corlib: we use C structures that map to the actual C# classes.
21809         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
21810         fat method header if needed and use the info from the ILGenerator for
21811         methods. Handle fields in types. Misc fixes.
21812
21813 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
21814
21815         * class.c (mono_class_metadata_init): bug fix: always allocate
21816         space for static class data
21817
21818 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
21819
21820         * class.c (mono_compute_relative_numbering): use relative
21821         numbering to support fast runtime type checks.
21822
21823 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
21824
21825         * class.c (mono_class_create_from_typeref): added debugging output
21826         to print class name when MonoDummy is returned instead of real class
21827
21828 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
21829
21830         * class.c (mono_class_metadata_init): interface offset table now
21831         contains pointers into the vtable - this is more efficient for the jit
21832
21833 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
21834
21835         * class.c (mono_class_metadata_init): use a temporary vtable (the
21836         old algorithm only worked for the interpreter, but not for the jit)
21837
21838 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
21839
21840         * loader.c (method_from_memberref): use mono_class_get to get the
21841         class of an array instead of using System.Array directly.
21842         (mono_get_method): also add MEMBERREF methods to the method cache
21843         which usefull for arrays.
21844
21845 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
21846
21847         * pedump.c (arch_compile_method): added to compute vtable entry
21848
21849         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
21850         number of interfaces.
21851         
21852         * class.h: merged MonoArrayClass into MonoClass
21853
21854         * class.c (mono_class_create_from_typedef): compute the vtable size and
21855         allocate space to include the vtable inside MonoClass
21856         (mono_class_metadata_init): initialize the vtable
21857
21858 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
21859
21860         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
21861         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
21862         * image.c: endian fixes by Laurent Rioux.
21863         * object.h, object.c: rename MonoStringObject to MonoString and
21864         MonoArrayObject to MonoArray. Change some function names to conform to
21865         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
21866         guint16* as first argument, so don't use char*.
21867         Provide macros to do the interesting things on arrays in a portable way.
21868         * threads-pthread.c: updates for the API changes and #include <sched.h>
21869         (required for sched_yield()).
21870         * icall.c: updates for the API changes above.
21871         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
21872         platforms that need them.
21873
21874 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
21875
21876         * class.c: set the correct type for all the fundamental
21877         type when loading the class.
21878
21879 2001-10-05  Dick Porter  <dick@ximian.com>
21880
21881         * threads-pthread.c (pthread_mutex_timedlock): Simple
21882         compatibility version for C libraries that lack this call.
21883
21884 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21885
21886         * class.c: MonoTypes stored in MonoClass are stored as
21887         fundamental MonoTypes when the class represents a
21888         fundamental type (System.Int32, ...).
21889         The TypeHandle return by ldtoken is a MonoType*.
21890         * icall.c: ves_icall_get_data_chunk () write out all the
21891         PE/COFF stuff. Implement ves_icall_define_method (),
21892         ves_icall_set_method_body (), ves_icall_type_from_handle ().
21893         * image.c: properly skip unknown streams.
21894         * loader.h, loader.c: add type_class to mono_defaults.
21895         * metadata.c, metadata.h: export compute_size () as
21896         mono_metadata_compute_size () with a better interface.
21897         Typo and C&P fixes.
21898         * pedump.c: don't try to print the entry point RVA if there is no entry point.
21899         * reflection.c, reflection.h: many cleanups, fixes, output method
21900         signatures and headers, typedef and typeref info, compress the metadata
21901         tables, output all the heap streams, cli header etc.
21902         * row-indexes.h: typo fixes.
21903
21904 2001-10-04  Dick Porter  <dick@ximian.com>
21905
21906         * object.h: Add a synchronisation mutex struct to MonoObject
21907
21908         * object.c (mono_new_object): Initialise the object
21909         synchronisation mutexes
21910
21911         * icall.c: System.Threading.Monitor internal calls
21912         
21913         * threads-pthread.h:
21914         * threads-pthread.c: System.Threading.Monitor internal calls
21915
21916         * threads-types.h: New file, includes the system-specific thread
21917         structures
21918         
21919         * threads-pthread-types.h:
21920         * threads-pthread-types.c: New files, handle pthread-specific
21921         synchronisation types
21922
21923         * threads-dummy-types.h: 
21924         * threads-dummy-types.c: New files of dummy support for
21925         thread-specific types
21926
21927         * metadata.c:
21928         * image.c:
21929         * pedump.c: include mono-endian.h not endian.h
21930         
21931         * Makefile.am: More threads files.
21932         Name mono-endian.h not endian.h
21933
21934 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
21935
21936         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
21937         stuff and implement a few more bits.
21938         * icall.c: a field needs to be dereferenced twice. Do not use the same
21939         name for two variables in the same scope.
21940         * image.c, image.h: cleanups.
21941
21942 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
21943
21944         * class.c (mono_class_metadata_init): bug fix: compute the right size
21945
21946 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
21947
21948         * icall.c: implemented some of the Reflection internalcalls.
21949         * image.c, image.h: start writing out the PE/COFF image.
21950         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
21951         that does the reverse than decode_blob_size ().
21952         * object.c: use mono_metadata_encode_value (). Move here
21953         temporary implementation of mono_string_to_utf8 ().
21954         * rawbuffer.c: make malloc_map static.
21955
21956 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21957
21958         * metadata.c: fix type comparison for arrays.
21959         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
21960         Added a couple of new classes to monodefaults.
21961         * icall.c: added a couple of Reflection-related internalcalls.
21962         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
21963         Added a byval_arg MonoType to MonoClass.
21964
21965 2001-09-28  Dick Porter  <dick@ximian.com>
21966
21967         * icall.c:
21968         * threads-pthread.h: 
21969         * threads-pthread.c: Implemented internal calls for
21970         LocalDataStoreSlot operations.  Applied mutexes around all shared
21971         data.  Reworked the thread creation and Start() operations to
21972         avoid a race condition.
21973         
21974         * threads-dummy.h:
21975         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
21976
21977 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
21978
21979         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
21980
21981 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
21982
21983         * class.c, loader.c: warn and return NULL instead of erroring out.
21984         * icall.c: added System.AppDomain::getCurDomain().
21985         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
21986
21987 2001-09-25  Dick Porter  <dick@ximian.com>
21988
21989         * threads-pthread.h:
21990         * threads-pthread.c: Implemented timed thread joining and added
21991         System.Threading.Thread::Join_internal internal call
21992
21993         * icall.c: Added System.Threading.Thread::Join_internal internal call
21994
21995         * threads-dummy.h:
21996         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
21997
21998 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
21999
22000         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
22001         mono_string_intern () to implement the semantics of the ldstr opcode
22002         and the interning of System.Strings.
22003         * icall.c: provide hooks to make String::IsIntern and String::Intern
22004         internalcalls.
22005
22006 2001-09-23  Dick Porter  <dick@ximian.com>
22007
22008         * threads-dummy.c: 
22009         * threads-dummy.h: New files of dummy threading routines
22010
22011         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
22012         support code based on system specifics
22013
22014         Rename PTHREAD_LIBS to THREAD_LIBS
22015         
22016 2001-09-23  Dick Porter  <dick@ximian.com>
22017
22018         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
22019         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
22020         internal calls.
22021         (mono_thread_init): Set up a Thread object instance to return when
22022         the main thread calls Thread.CurrentThread
22023         (mono_thread_cleanup): Wait for all subthreads to exit
22024
22025         * icall.c: New internal calls for System.Threading.Thread::Sleep
22026         (including Schedule) and CurrentThread
22027
22028         * threads.h: New file, to insulate thread-specific stuff from the
22029         rest of the code
22030
22031 2001-09-21  Dick Porter  <dick@ximian.com>
22032
22033         * threads-pthread.h: 
22034         * threads-pthread.c: New file, for handling pthreads-style
22035         threading support.  Start() now starts a new thread and executes
22036         the ThreadStart delegate instance.
22037
22038         * icall.c: Added the internalcall for
22039         System.Threading.Thread::Start_internal
22040
22041         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
22042
22043 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
22044
22045         * loader.c: work around the different signatures for delegates
22046         constructors csc generates in compiled code vs the ones compiled in mscorlib.
22047
22048 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22049
22050         * class.h, class.c: add mono_class_get_field_from_name ().
22051         * *: Fix C comments and other ANSI C issues.
22052
22053 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
22054
22055         * endian.h, assembly.c: fix some endianness issues.
22056
22057 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
22058
22059         * loader.h, load.c: add delegate_class to mono_defaults.
22060         Handle runtime provided methods in mono_get_method ().
22061
22062 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
22063
22064         * loader.c (mono_get_method): use pinvoke for internal call
22065
22066         * icall.c: use pinvoke for internal call
22067
22068         * loader.c (method_from_memberref): set the method name
22069
22070 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
22071
22072         * metadata.c: help the compiler generate better code for
22073         mono_class_from_mono_type ().
22074
22075 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
22076
22077         * class.c (mono_class_metadata_init): delayed computing of the
22078         class size to mono_class_metadata_init ()
22079
22080 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
22081
22082         * class.c, class.h: add an interfaces member to MonoClass.
22083         * image.c, image.h: add assembly_name field to MonoImage
22084         from the assembly table.
22085         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
22086
22087 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22088
22089         * class.c: Handle Array in mono_class_from_mono_type ().
22090         * metadata.c, pedump.c: some endian fixes.
22091
22092 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22093
22094         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
22095         * metadata.c: fix small problem introduced with the latest commit.
22096
22097 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
22098
22099         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
22100         We don't need a MonoMetadata pointer anymore to compare signatures in
22101         mono_metadata_signature_equal (), update callers.
22102         Reduced memory usage an number of allocations for MonoMethodHeader and
22103         MonoMethodSignature.
22104
22105 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
22106
22107         * metadata.c: added compare for szarray.
22108
22109 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
22110
22111         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
22112         and add a couple more types to it and mono_defaults. Give an hint on
22113         classes that need implementing in our corlib and are referenced
22114         in mscorlib.
22115
22116 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
22117
22118         * class.h, class.c: keep track if a class is also an Enum.
22119         * loader.c: Implement a couple more types for use in libffi
22120         marshalling. Gives better diagnostics when failing to dlopen
22121         a library. Set method->klass for P/Invoke methods, too.
22122
22123 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
22124
22125         * class.c, class.h: add a MonoType this_arg to MonoClass that
22126         represents a pointer to an object of the class' type that
22127         can be used by the interpreter and later the type cache.
22128         Add best guess alignment info for valuetype objects.
22129
22130 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
22131
22132         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
22133         into MonoType: one less level of indirection and allocation and
22134         simplifies quite a bit of code. Added cache for MonoTypes that are
22135         used frequently, so that we don't need to allocate them all the time.
22136
22137 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
22138
22139         * class.c (mono_class_create_from_typedef): System.Enum is also a
22140         value type, although it does not derive from System.ValueType
22141         (maybe a bug in the ms compiler?)
22142
22143         * metadata.c (mono_type_size): return the right size for value types
22144
22145         * loader.c (mono_get_method): only initialize method header if not abstract
22146
22147         * class.c (mono_class_from_mono_type): use mono_default values. 
22148
22149 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
22150
22151         * *: use MonoClass pointers instead of <type_tokens>
22152         
22153         * class.h: new flag: metadata_inited.
22154
22155         * class.c (mono_class_metadata_init): impl.
22156         (mono_class_instance_size): impl.
22157         (mono_class_data_size): impl.
22158
22159 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22160
22161         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
22162         MonoClass now has the name and name_space fields. 
22163         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
22164         mono_get_method () takes and optional MonoClass as argument.
22165         Removed mono_typedef_from_name() and added mono_class_token_from_name()
22166         instead that takes advantage of a map from class names to typedef
22167         tokens in MonoImage.
22168
22169 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
22170
22171         * metadata.c: zero is not a valid alignment boundary.
22172         Merge MONO_TYPE_VOID in default decoding code.
22173
22174 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
22175
22176         * image.h: merged MonoMetadata into MonoImage
22177
22178         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
22179         identify the type of elements.
22180
22181 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22182
22183         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22184         * cil-coff.h: split MonoMSDOSHeader and add size info.
22185         * image.c: add some consistency checks.
22186         * metadata.c: fix row size computation: one programmer
22187         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22188         add explanation for the locator routine.
22189         Fix decoding of size in method header.
22190         
22191 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22192
22193         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22194         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22195         function from gnome-libs.  This uses the right path separator
22196         based on the OS, and also works around a bug in some systems where
22197         a double slash is not allowed. 
22198         (default_assembly_name_resolver): Use g_concat_dir_and_file
22199         (mono_assembly_open): ditto.
22200
22201 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22202
22203         * metadata.c (mono_metadata_signature_equal): impl.
22204
22205         * *: void is now a realy MonoType (instead of using NULL)
22206         
22207         * metadata.c (do_mono_metadata_parse_type): use
22208         mono_metadata_parse_type to parse void value.
22209
22210 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22211
22212         * metadata.c, metadata.h: in the signature and method header store
22213         only the space required for holding the loca vars and incoming arguments.
22214
22215 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22216
22217         * metadata.c (do_mono_metadata_parse_type): treat void like any
22218         other type (instead of assigning NULL);
22219
22220 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22221
22222         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22223
22224 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22225
22226         * image.c (do_mono_image_open): added a cache for arrays.
22227
22228 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22229
22230         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22231         decode a single column from a row in a metadata table and changes
22232         to take advantage of it in the typedef locator (gives a nice speed up).
22233         Store offset info for function params.
22234
22235 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22236
22237         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22238
22239 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22240
22241         * assembly.c: how could mono_assembly_close () had ever worked?
22242         * metadata.c, metadata.h: provide offset info for local vars.
22243         Implement mono_type_size () to take care of alignment as well
22244         as size (it was mono_field_type_size in cli/class.c before).
22245
22246 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22247
22248         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22249
22250         * assembly.h (CORLIB_NAME): set to corlib.dll
22251
22252         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22253
22254 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22255
22256         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22257         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22258         tokentype.h: massive namespace cleanup.
22259
22260 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22261
22262         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22263
22264 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22265
22266         * metadata.c (mono_metadata_free_type): added check for type !=
22267         NULL (void) before calling mono_metadata_free_type()
22268
22269 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22270
22271         * metadata.h, row_indexes.h: added header with enumerations to use
22272         to index in the columns from tables in metadata and to decode coded
22273         tokens: we should start using this instead of embedding magic numbers
22274         all over the code.
22275
22276 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22277
22278         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22279         Move metadata_t info from cli_image_info_t to MonoImage, where
22280         it's easily accessible. Changed all the uses accordingly.
22281         Added the method and class caches to MonoImage.
22282         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22283         and mono_metadata_decode_value () signature to be more consistent
22284         with the other parse functions (and simplify code). Taken advantage
22285         of zero-length array allocation with GCC. Removed reduntant (and
22286         wrong) MonoFieldType struct and use MonoParam instead. Changed
22287         mono_metadata_parse_field_type () to use common code for parsing.
22288         Added mono_metadata_typedef_from_field () and
22289         mono_metadata_typedef_from_method () to lookup a typedef index from a
22290         field or method token.
22291         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22292
22293 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22294
22295         * metadata.c (mono_metadata_parse_field_type): Implement. 
22296         (do_mono_metadata_parse_type): Split engine from
22297         mono_metadata_parse_type, so that we can create smaller structures
22298         for things that just have one pointer to the MonoType (look at
22299         the MonoFieldType)
22300
22301 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22302
22303         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22304         as Jan Gray found out, it is incorrect. 
22305
22306 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22307
22308         * assembly.c: Implement asssembly loading.  This loads an image
22309         and loads all the referenced assemblies.  Come to think of it, we
22310         could always do lazy loading of the assemblies. 
22311
22312         * image.c (mono_image_open): Keep loaded images in a hashtable.
22313
22314         * image.h (MonoImage): Add reference count.
22315
22316 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
22317
22318         * assembly.c (mono_assembly_open): Keep track of the file name in
22319         case the assembly has no ASSEMBLY table.
22320
22321         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
22322         from get.c here.
22323
22324 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22325
22326         * metadata.c, metadata.h: decode local vars in method header
22327         parse function. Change callers accordingly.
22328
22329 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22330
22331         * metadata.h, cil-coff.h: protect against multiple inclusion.
22332         Added some new structures to hold information decoded from metadata:
22333         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22334         and relevant decoding/free functions.
22335         * metadata.c: implement decoding functions. Add warning for out of bounds
22336         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22337         all the info about a method signature and invocation. Remove check on
22338         uninitialized local var in parse_mh() and fix memory leak.
22339
22340 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22341
22342         * metadata.h: More macros.
22343
22344         * tokentype.h: New file.
22345
22346 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22347
22348         * assembly.c: added a consistency check and initialize
22349         some structures with g_new0().
22350         * metadata.c: fixed a couple more bugs in table size computation
22351         and add other checks for out-of bound access to metadata.
22352
22353 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22354
22355         * metatada.c: fix bugs computing table sizes. Spew a
22356         warning when index in string heap is out of bounds.
22357
22358 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22359
22360         * metadata.h: Add a couple of macros to manipulate tokens. 
22361
22362 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22363
22364         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22365         cli_section_tables).
22366
22367 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22368
22369         * metadata.c (mono_metadata_user_string): New function, provides
22370         access to the UserString heap. 
22371
22372 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22373
22374         * metadata.c: Add inline documentation.
22375
22376 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22377
22378         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22379         files. 
22380
22381 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22382
22383         * typeattr.h: New file, TypeAttribute flags. 
22384
22385 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22386
22387         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22388         mono_assembly_ensure_section): Section loading code.
22389         (load_section_tables): Load the sections.
22390
22391         * mono/metadata/metadata.c (mono_metadata_locate_token,
22392         mono_metadata_locate): Functions to locate the information
22393         definition given a token or a table and an index.
22394         (mono_metadata_compute_table_bases): New.
22395         (compute_size): New function to compute the sizes of the various
22396         tables.
22397
22398         * mono/metadata/metadata.h: Finish listing the different index
22399         types. 
22400
22401         * mono/metadata/pedump.c: Improve to dump new information.
22402
22403 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22404
22405         * mono/metadata/metadata.c: Entered all the tables matching
22406         Beta2. 
22407
22408         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22409
22410
22411