2007-08-24 Jb Evain <jbevain@novell.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-08-24  Jb Evain  <jbevain@novell.com>
2
3         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
4         for byref types.
5
6 2007-08-24  Mark Probst  <mark.probst@gmail.com>
7
8         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
9         #82286.
10
11 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
12
13         * assembly.c: Fix a warning.
14         
15 2007-08-23  Marek Habersack  <mhabersack@novell.com>
16
17         * appdomain.c: parse the <runtime> section looking for the probing
18         element with the 'privatePath' attribute, which sets additional
19         directories in which the runtime should look for assemblies.
20
21 2007-08-23  Robert Jordan  <robertj@gmx.net>
22
23         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
24         Fixes #82499.
25
26 2007-08-23  Martin Baulig  <martin@ximian.com>
27
28         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
29         _mono_debug_init_corlib() and remove it from the header file.
30
31 2007-08-23  Martin Baulig  <martin@ximian.com>
32
33         * mono-debug-debugger.c
34         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
35         don't notify the debugger about it.
36
37         * mono-debug-debugger.h
38         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
39
40 2007-08-23  Robert Jordan  <robertj@gmx.net>
41
42         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
43         Code is contributed under MIT/X11 license.
44
45 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
46
47         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
48
49 2007-08-22  Martin Baulig  <martin@ximian.com>
50
51         * mono-debug.c: Store debugging info on a per-domain basis and
52         free it on domain unload.  Add support for unloading symbol files.
53
54         * mono-debug.h
55         (MonoDebugList): New typedef.
56         (MonoSymbolTable):
57         - add `data_tables and `type_table'.
58         - replace 'symbol_files' and `num_symbol_files' with a
59           `MonoDebugList *'.
60         (mono_debug_data_table): Removed.
61         (mono_debug_list_add): New public function.
62         (mono_debug_list_remove): New public function.
63         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
64         (mono_debug_init_2_memory): Renamed into
65         mono_debug_open_image_from_memory().
66         (mono_debug_close_image): New public function.
67         (mono_debug_domain_create): Likewise.
68         (mono_debug_domain_unload): Likewise.
69         (MONO_DEBUGGER_VERSION): Bump to 60.
70
71         * mono-debug-debugger.h
72         (MonoDebuggerEvent):
73         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
74         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
75         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
76         - rename `THREAD_CREATED' and `THREAD_EXITED' into
77           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
78         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
79           meaning.
80         (mono_debugger_add_symbol_file): Removed.
81         (mono_debugger_add_type): Removed.
82         (mono_debugger_lookup_type): Removed.
83         (mono_debugger_lookup_assembly): Removed.
84
85         * domain.c
86         (mono_domain_create): Call mono_debug_domain_create().
87         (mono_init_internal): Call mono_debug_init_corlib().
88
89         * assembly.c
90         (mono_assembly_close): Call mono_debug_close_image().
91
92 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
93
94         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
95         mmap call.
96
97 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
98
99         * sgen-gc.c: ensure section->pin_queue_end is initialized
100         correctly when non pinning objects in the section have been found.
101
102 2007-08-22  Marek Habersack  <mhabersack@novell.com>
103
104         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
105         containing a list of directories separated by ':'. MSDN docs say
106         the directories should be separated with ';'. Part of a bugfix for
107         bug #81446
108
109 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
110
111         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
112         it should MonoType and not MonoClass.
113
114 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
115
116         * culture-info-table.h : regenerated.
117
118 2007-08-20  William Holmes  <billholmes54@gmail.com>
119
120         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
121          to call ReplaceFile Kernel32 on windows or in io-layer.
122         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
123         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
124          as an internal call.
125
126         Code is contributed under MIT/X11 license.
127
128 2007-08-20  Jb Evain  <jbevain@novell.com>
129
130         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
131         and MONO_EXCEPTION_FIELD_ACCESS.
132
133         * debug-helpers.[c|h]: new mono_field_full_name function.
134
135 2007-08-20  Mark Probst  <mark.probst@gmail.com>
136
137         * class.c: Removed class_security_level() and moved it to
138         security-core-clr.c.
139
140         * security-core-clr.c, security-core-clr.h: class_security_level()
141         is now public and renamed to mono_security_core_clr_class_level().
142         It also looks for security attributes in the classes a class is
143         nested in.
144
145 2007-08-20  Mark Probst  <mark.probst@gmail.com>
146
147         * security-core-clr.c, security-core-clr.h: CoreCLR security
148         utility functions.
149
150         * Makefile.am: Added security-core-clr.[ch].
151
152         * security-manager.c, security-manager.h: Functions and enum for
153         setting and getting the security mode.
154
155         * class.c: CoreCLR security checks.
156
157 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
158
159         * icall-def.h, process.c, process.h: implemented icall to get
160         user/system processor times.
161
162 2007-08-17  Mark Probst  <mark.probst@gmail.com>
163
164         * domain.c, threads.c, class-internals.h, domain-internals.h: New
165         reader-lock-free jit_info_table.
166
167 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
168
169         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
170
171         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
172
173         * object-internals.h (MonoException): Add missing _data member.
174
175 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
176
177         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
178         checking that only methods with matching qname or fqname are picked
179         from implemented interfaces.
180
181 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
182
183         * verify.c (do_newarr):added, do type verification of
184         newarr ops, push the right value on the eval stack.
185         * verify.c (mono_method_verify): use do_newarr
186
187
188 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
189
190         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
191         factored the common code into get_boxable_mono_type, which
192         is now using mono_type_get_full, this fixed byref related tests.
193
194 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
195
196         * class.c: added mono_type_get_full, this function has the same
197         behavior of mono_class_get_full but the returned MonoType has
198         all metadata of the associated token in case of a typespec token.
199         * class.c: added mono_type_retrieve_from_typespec, used by 
200         mono_type_get_full to retrieve the token type.
201         * class.c (mono_class_create_from_typespec): changed to use
202         mono_type_retrieve_from_typespec.
203         * class.c (mono_ldtoken): changed to use mono_type_get_full
204         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
205         * class-internals.h: exported mono_type_get_full for internal use.
206
207 2007-08-16  Jb Evain  <jbevain@novell.com>
208
209         * domain.c (supported_runtimes): add entry for
210         the 'moonlight' runtime version.
211
212 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
213
214         * verify.c (mono_method_verify): small typo sliped in.  
215
216 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
217
218         * verify.c (do_unbox_value): added, do type verification of
219         unboxing ops
220         * verify.c (mono_method_verify): use do_unbox_value
221
222
223 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
224
225         * verify.c (dump_stack_value): fixed typo, was printing string
226         instead of object on stack.
227         * verify.c (do_box_value): moved the byref check up as it leads
228         to invalid code and should be done earlier.
229         * verify.c: improved error messages for and ldobj
230
231 2007-08-15  William Holmes  <billholmes54@gmail.com>
232
233         * marshal.c (emit_marshal_custom): Omit the call to 
234           marshal_native_to_managed when calling native to managed 
235           and the argument is specified as an out argument.
236
237         Code is contributed under MIT/X11 license.
238
239 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
240
241         * verify.c: fixed the type checks for generics, function pointers and vectors.
242         Added type verification for ldobj and ldtoken. The verifier
243         would segfault if header or signature of a method contained references
244         to non-existant types.
245
246 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
247
248         * marshal.c (cominterop_get_ccw): Patch from
249         Bill Holmes to no walk up interface hierarchy. 
250         All parent methods should be present in the interface for COM.
251    
252         Code is contributed under MIT/X11 license.
253
254 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
255
256         * marshal.c (emit_marshal_com_interface): Patch from
257         Bill Holmes to handle COM Interfaces as return values
258         for native->managed calls.
259    
260         Code is contributed under MIT/X11 license.
261
262 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
263
264         * marshal.c (cominterop_get_idispatch_for_object): Implement
265         for runtime callable wrappers.
266    
267         Code is contributed under MIT/X11 license.
268
269 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
270
271         * pedump.c (main): changed from mono_init to mono_init_from_assembly
272         so 2.0 types are accessible
273
274
275 2007-08-13  Miguel de Icaza  <miguel@novell.com>
276
277         * domain.c (mono_init_internal): Call mono_assembly_load_friends
278         once we load mscorlib.   Due to the order in which we initialize,
279         the mono_assembly_load_full routine that loads mscorlib did not
280         load friends.   We now load it once we load the
281         mono_defaults.internals_visible_class class. 
282
283         * assembly.c: Expose the mono_load_friend_assemblies method.
284
285 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
286
287         * verify.c: improved the handling of boxing, better
288         type checking for unary ops and conversion. Fix bug
289         regarding managed pointer compatibility checking
290
291 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
292
293         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
294
295         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
296
297 2007-08-09  Raja R Harinath  <rharinath@novell.com>
298
299         * reflection.c (dup_type): Remove.
300         * class.c (dup_type): Remove.
301         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
302         instead of the dodgy 'dup_type'.
303         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
304         handle the case where 'dup_type' needed the second argument.
305
306 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
307
308         * domain.c: Fix a warning.
309
310 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
311
312         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
313         checking that methods with the same fqname are not overridden
314         with a method from an ancestor.
315
316 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
317
318         * threads.c (free_thread_static_data_helper): Avoid a crash if
319         thread->static_data is not yet set.
320
321 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
322
323         * marshal.c: Use correct image when emitting
324         native wrapper for COM calls.
325    
326         Code is contributed under MIT/X11 license.
327
328 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
329
330         * icall-def.h, security.c, security.h :
331           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
332
333 2007-08-07  Martin Baulig  <martin@ximian.com>
334
335         * mono-debug-debugger.h
336         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
337
338         * domain.c (mono_domain_free): Call
339         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
340
341 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
342
343         * verify.c (check_underflow, check_overflow): error message now returns IL offset
344         * verify.c (in_same_block): code should test if either offset is inside the clauses
345         * verify.c (mono_method_verify): push the exception into the eval stack of exception
346         and filter blocks
347
348 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
349
350         * image.c (mono_image_close): Fix a leak.
351
352         * object.c (mono_runtime_invoke_array): Avoid using alloca.
353
354         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
355
356 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
357
358         * domain.c, threads.c, threads-types.h: fix memory retention issue
359         with thread static variables not being cleared on domain unload.
360         Reuse thread static slots after domain unload.
361
362 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
363
364         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
365         nullable type.
366
367         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
368         now done in mono_runtime_invoke_array.
369
370         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
371         receiver is a nullable type.
372
373         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
374         generic parameter.
375
376 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
377
378         * marshal.c: Implement COM Objects as return type for 
379         managed->unmanaged calls. Added Release calls for COM Object
380         out/return values in managed->unmanaged calls.
381
382         Code is contributed under MIT/X11 license.
383
384 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
385
386         * threads.h, threads-type.h: move the hazard pointer declarations
387         to the private header.
388
389 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
390
391         * file-io.c, appdomain.c: memory leak fixes.
392
393 2007-08-02  Dick Porter  <dick@ximian.com>
394
395         * socket-io.c
396         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
397         SO_REUSEADDR setting into io-layer/sockets.c.
398
399 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
400
401         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
402         from Object when called on a generic parameter. Fixes #82211.
403
404 2007-08-01  Dick Porter  <dick@ximian.com>
405
406         * file-io.c (convert_share): Test FileShare values bit-by-bit.
407         Fixes bug 79250 yet again.
408
409 2007-07-30  Martin Baulig  <martin@ximian.com>
410
411         Merged the `debugger-dublin' branch.
412
413         * mono-debug.h
414         (MonoDebugDataTable): New typedef.
415         (MonoDebugMethodAddressList): New typedef.
416         (MonoDebugWrapperData): Removed.
417         (MonoDebugSymbolTable): Removed `current_data_table',
418         `current_data_table_size', `current_data_table_offset'.
419         (MonoDebugDataItemType): Moved into mono-debug.c.
420         (MonoDebugMethodJitInfo): Remove `address'.
421         (mono_debug_data_table): New global variable.
422         (mono_debug_lookup_method_addresses): New public function.
423         (mono_debug_find_method): Take a `MonoMethod *', not a
424         `MonoDebugMethodInfo *'.
425
426         * mono-debug.c: Drop support for the old symbol tables.
427
428 2007-06-28  Martin Baulig  <martin@ximian.com>
429
430         * mono-debug.c (mono_debug_debugger_version): New public variable.
431
432 2007-07-31  William Holmes  <billholmes54@gmail.com>
433
434         * metadata.c Changed mono_type_create_from_typespec to not insert
435           the type into the hash map until after
436           do_mono_metadata_parse_type has completed.
437         Fixes Bug #82194
438         Code is contributed under MIT/X11 license.
439
440 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
441
442         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
443         generic parameter. Fixes #82211.
444
445 2007-07-27  Jb Evain  <jbevain@novell.com>
446
447         * pedump.c (dump_metadata, dump_metadata_header): dump
448         versions contained in the metadata header.
449
450 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
451
452         * threads.c: register small_id_table with the GC.
453
454 2007-07-27  Mark Probst  <mark.probst@gmail.com>
455
456         * threads.c, threads.h, class-internals.h, object-internals.h:
457         Hazard pointers, to be used by lock-free parallel algorithms.
458
459 2007-07-26  Dick Porter  <dick@ximian.com>
460
461         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
462         routine on non-windows platforms, as I've not managed to think of
463         a non-kludgy way of doing this.  Finishes off bug 78739.
464
465 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
466
467         * object.c: properly setup interface_bitmap in proxy vtables.
468
469 2007-07-25  Marek Habersack  <mhabersack@novell.com>
470
471         * appdomain.c (get_shadow_assembly_location): do not use TickCount
472         to create unique shadow copy target directories, use the domain's
473         serial number instead. Each domain gets a unique target directory
474         that way.
475
476         * domain.c (mono_domain_create): added code to increment domain
477         shadow copy serial number and cache the value in the current
478         domain structure.
479
480         * domain-internals.h (struct _MonoDomain): added a new field -
481         shadow_serial to hold the serial number used in generation of
482         shadow-copy directories. This is to make sure that the directory
483         name is unique for each and every domain created. We avoid a race
484         condition with overriding assemblies already in use by other app
485         domains.
486
487 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
488
489         * class.c (mono_bounded_array_class_get): fixed memory leak when 
490         binding generic parameters.
491
492 2007-07-24  Raja R Harinath  <rharinath@novell.com>
493
494         * metadata.c (do_mono_metadata_parse_generic_class): Use
495         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
496         error.
497
498 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
499
500         * loader.c, class-internals.h, reflection.c: removed the per-method
501         generics hashtable: we use the global one through the call of
502         mono_class_inflate_generic_method ().
503
504 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
505
506         * class.c, metadata.c, class-internals.h: introduce yet another
507         generics global cache for inflated methods (fixes 98% of the perf
508         issue in bug #81806).
509
510 2007-07-23  Raja R Harinath  <rharinath@novell.com>
511
512         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
513         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
514         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
515         return a MonoGenericInst containing (a copy) of those types.
516         (mono_metadata_inflate_generic_inst): Update to changes.
517         (mono_metadata_parse_generic_inst): Likewise.
518         (mono_get_shared_generic_inst): Likewise.
519         * reflection.c (mono_class_bind_generic_parameters): Likewise.
520         (mono_reflection_bind_generic_method_parameters): Likewise.
521         * metadata-internals.h: Likewise.
522         * icall.c (free_generic_context): Kill.
523         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
524
525         * reflection.c (reflection_methodbuilder_to_mono_method): Use
526         mono_metadata_type_dup.
527         * marshal.c (mono_mb_create_method): Likewise.
528
529         * metadata.c (mono_metadata_type_dup): Rename from
530         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
531         MonoImage.  Handle a few more cases, esp. when no mempool is given.
532         * marshal.c, metadata-internals.h: Update to changes.
533
534 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
535
536         * class.c: fixed a small leak for array classes and removed warning.
537
538 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
539
540         * loader.c (mono_method_get_param_token): Make this work on generic methods.
541         Return 0x8000000 for return parameters. Fixes #82161.
542
543 2007-07-21  Marek Habersack  <grendello@gmail.com>
544
545         * appdomain.c (get_shadow_assembly_location): append the current
546         ticks value to the path. Avoids overwriting the same assemblies by
547         several threads at the same time.
548
549 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
550         and Raja R Harinath  <rharinath@novell.com>
551
552         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
553         Simplify slightly.
554         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
555         property for testing if a method is a generic method definition.
556
557 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
558
559         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
560
561 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
562
563         * verify.c: used function from private branch, reverted to the one in class.h 
564
565 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
566
567         * verify.c: a typo slipped in and the code wont compile
568
569 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
570
571         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
572         disabled box instruction as it is doing the wrong thing
573         improved stack dump messages, now it is easier to debug type related issues
574
575
576 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
577
578         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
579
580 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
581
582         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
583         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
584         grouped with class and valuetype. This change will simply 
585         the code as it should be handled just like unmanaged pointers.
586
587 2007-07-19  Mark Probst  <mark.probst@gmail.com>
588
589         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
590
591 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
592
593         * verify.c: several stack merge issues fixed, reference comparisons now
594         check the type size. strict type check now works correctly.
595         added more uses of IS_MANAGED_POINTER macro.
596         fixed issues pointed by running the test suite against .net.
597         
598
599 2007-07-19  Mark Probst  <mark.probst@gmail.com>
600
601         * class.c, loader.c, class-internals.h: Removed the
602         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
603         defines.
604
605         * icall.c: Better error checking in some internal reflection
606         methods.
607
608 2007-07-18  William Holmes  <billholmes54@gmail.com>
609
610         * filewatcher.c : removed unused variable 'filename' in 
611           ves_icall_System_IO_FSW_SupportsFSW
612
613 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
614
615         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
616         obsolete, removed.
617
618 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
619
620         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
621         
622         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
623
624 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
625
626         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
627         Implement generics support.
628         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
629
630         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
631         type_args and method_args arguments.
632         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
633         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
634         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
635
636 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
637
638         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
639           It adds a rootimage parameter to mono_reflection_get_type_internal,
640           adds new function mono_reflection_get_type_with_rootimage and use
641           the rootimage to resolve the types instead of the current image
642
643 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
644
645         * culture-info-table.h: Forgot to update after r78304.
646
647 2007-07-13  Raja R Harinath  <rharinath@novell.com>
648
649         * class.c (mono_class_is_open_constructed_type)
650         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
651
652 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
653
654         * class.c (mono_bounded_array_class_get):  method fails if used with
655         an incomplete TypeBuilder enum (no basetype field), fixed it by 
656         avoiding calculating the size for such array as it cannot be instantiated.
657         Fix bug #82015
658
659 2007-07-12  Raja R Harinath  <rharinath@novell.com>
660
661         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
662         field.
663         * metadata.c, reflection.c: Update to changes.
664
665 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
666
667         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
668         mono_class_is_valid_enum, they are used to valide a enum when loading.
669         * reflection.c: used new functions to throw TypeLoadException when and
670         invalid enum is build with TypeBuilder. Fixes #82018
671   
672 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
673
674         * object.c: forgot commit of mono_class_setup_methods () to access
675         iface->methods.
676         * object-internals.h: added a few more handy fields to
677         MonoIMTCheckItem.
678
679 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
680
681         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
682         iface->methods.
683
684 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
685
686         * class-internals.h, object-internals.h, object.c: IMT-based
687         interface invocation core from Massimiliano Mantione
688         (massi@ximian.com) with a reworked arch-specific interface,
689         bsearch implementation and a few bugfixes and memory savings by me.
690
691 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
692
693         * class.c (mono_class_create_from_typedef): mono would segfault if 
694         an enum did not have a __value field. It now throws a TypeLoadException
695         for such cases. Fix bug #82022
696
697 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
698
699         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
700
701 2007-07-09  Mark Probst  <mark.probst@gmail.com>
702
703         * class.c (mono_class_init): If a class is already inited but has
704         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
705
706 2007-07-09  Mark Probst  <mark.probst@gmail.com>
707
708         * class.c: Properly handle the case of an unimplemented interface
709         method.  Fixes: 81673.
710
711 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
712
713         * class-internals.h, object.c: cleanup patch from massi: use
714         MonoVTable->interface_bitmap since the vtable interfaces offset array
715         is going away.
716
717 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
718
719         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
720         GetMDStreamVersion icall instead.
721
722 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
723
724         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
725         not use mono_dl_build_path() with a full library name: makes
726         fallbacks to libgaim and libfam work.
727
728 2007-07-06  William Holmes  <billholmes54@gmail.com>
729
730         * assembly.c: Added a continue statement in probe_for_partial_name when
731          parse_assembly_directory_name fails.  Fixes : 82002
732
733 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
734
735         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
736         and added a verification  for TYPEDBYREF.
737         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
738         make native int interchangeable with int32 and some small cleanup and formating.
739         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
740         handle byref of byref.
741         * verify.c (push_local): handle byref of byref.
742         * verify.c (do_binop): invalid mix of values is unverifiable
743         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
744         added visibility checks
745         * verify.c (field related method): added visibility checks
746         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
747
748 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
749
750         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
751         string.
752
753 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
754
755         * profiler.c (mono_profiler_load): Fix an off-by-one error.
756
757         * marshal.c (emit_marshal_string): When returning a string from managed code,
758         allways make a copy even for unicode strings. Fixes #81990.
759
760 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
761
762         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
763         of byref generic inst types (bug #81997).
764
765 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
766
767         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
768         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
769
770 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
771
772         * marshal.c (emit_marshal_string): Add support for unicode strings in
773         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
774
775 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
776
777         * verify.c: field load/store are now verified, missing only access checks now
778
779 2007-06-28  Martin Baulig  <martin@ximian.com>
780
781         * mono-debug.c (mono_debug_debugger_version): New public variable.
782
783 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
784
785         * locales.c: When constructing DateTimeFormat or NumberFormat for
786         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
787         MonoCultureInfo contructed from the current locale is always
788         read-only and has UseUserOverride set to true. All MonoCultureInfo
789         instances returned for GetCultures have both IsReadOnly and
790         UseUserOverride set to true. Fixes part of bug #81930.
791
792 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
793
794        * icall-def.h: Update System.__ComObject icalls
795        * marshal.c: Avoid managed transition (and object creation)
796        when looking up COM interface in RCW.
797        * marshal.h: Ditto.
798        
799        Code is contributed under MIT/X11 license.
800
801 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
802
803         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
804         to avoid crashes during assembly unloading.
805
806 2007-06-22  Raja R Harinath  <rharinath@novell.com>
807
808         Fix MethodInfo.IsGenericMethodDefinition
809         * reflection.c (mono_reflection_bind_generic_method_parameters):
810         Rearrange code to ensure we always uses a generic method definition.
811         * class.c (mono_class_inflate_generic_method_full): Set
812         'generic_container' field only for generic method definitions.
813         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
814         Use presense of 'generic_container' field as indication of being a
815         generic method definition.
816
817 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
818
819         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
820
821         * object-internals.h: Reflect changes in the layout of the managed Delegate
822         class.
823         
824         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
825         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
826         runtime memory used by the dynamic method. Fixes #77146.
827
828 2007-06-21  Dick Porter  <dick@ximian.com>
829
830         * file-io.h: 
831         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
832         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
833         81767.
834
835 2007-06-21  Raja R Harinath  <rharinath@novell.com>
836
837         * reflection.c (method_encode_methodspec): Add a tripwire.
838         * class.c (inflate_generic_type): The fully open generic type is
839         not the same as the generic type definition.
840
841 2007-06-21  Martin Baulig  <martin@ximian.com>
842
843         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
844
845         * mono-debug-debugger.h
846         (MonoDebuggerBreakpointInfo): Removed.
847         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
848         (mono_debugger_remove_breakpoint): Likewise.
849         (mono_debugger_breakpoint_callback): Likewise.
850         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
851
852 2007-06-21  Raja R Harinath  <rharinath@novell.com>
853
854         * metadata.c (mono_metadata_lookup_generic_class): The fully open
855         generic type is not the same as the generic type definition.
856         * class.c (mono_generic_class_get_class): Likewise.
857
858 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
859
860         * icall.c: The second argument to 
861         System.Reflection.MethodBase.GetMethodFromHandleInternalType
862         is a MonoType not a MonoClass.
863
864 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
865
866         * verify.c: support for function pointers in the verifier
867
868 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
869
870         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
871
872 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
873
874         * assembly.c: removed Mono.Data.SqliteClient from the list of
875         forward-compatible assemblies as it breaks the ABI (bug #81899).
876
877 2007-06-19  Raja R Harinath  <rharinath@novell.com>
878
879         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
880         lookup/update with the loader lock.
881         * reflection.c (mono_class_bind_generic_parameters): No need to
882         protect mono_metadata_lookup_* with the loader lock.
883         * class.c (inflate_generic_type): Likewise.
884         
885         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
886         on a generic instantiated type.
887
888 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
889
890         *verify.c: produce meanfull error messages on verification error
891         *verify.c: fixed some cases of verification errors reported as validation errors
892         *pedump.c: fixed the error name array, now it shows validation errors properly
893         *verify.h: fixed the contant that should be used for verification errors
894
895 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
896
897         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
898         for bug #77596, 81858 and 80743 (generics data structures on domain
899         unload).
900
901 2007-06-15  Raja R Harinath  <rharinath@novell.com>
902
903         Avoid allocating 'MonoGenericContext' on the heap.
904         * class-internals (_MonoMethodInflated::context): Make field
905         inline, not a pointer.
906         * loader.c (method_from_methodspec): Allocate 'new_context' on the
907         stack.  Use the context embedded within the inflated method as the
908         hash key, rather than 'new_context'.
909         * class.c (inflate_generic_context): Simplify.  Return a struct
910         rather than allocating on the heap.
911         (mono_class_inflate_generic_method_full): Update to changes.  Now,
912         doesn't salt away a copy of the context -- simplifying the
913         lifetime rules of a 'MonoGenericContext *'.
914         (mono_method_get_context): Return pointer to embedded context.
915         (setup_generic_array_ifaces): Allocate temporary context on stack.
916         * reflection.c (inflate_mono_method): Likewise.
917         (mono_reflection_bind_generic_method_parameters): Likewise.
918         Use the context embedded within the inflated method as the hash key.
919
920         Avoid a source of allocation of 'MonoGenericContext'.
921         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
922         and 'cached_context' fields into embedded 'MonoGenericContext' field.
923         * class.c: Update to changes.
924         (mono_generic_class_get_context): Simplify drastically.  Now just
925         returns a pointer to the field.
926         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
927         argument as a const pointer.
928         (mono_metadata_generic_context_equal): Likewise.
929         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
930         Update to changes.
931
932 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
933
934         * verify.c improved the handling of brtrue/brfalse, factored out common code
935
936 2007-06-14  Raja R Harinath  <rharinath@novell.com>
937
938         Kill MonoGenericMethod.
939         * class-internals.h (MonoGenericContext::method_inst): Rename from
940         'gmethod' and convert to a MonoGenericInst.
941         (MonoGenericMethod): Remove.
942         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
943         * loader.c (method_from_methodspec): Update to changes.  Use a
944         MonoGenericContext as the key to the hashtable.
945         * metadata.c (mono_metadata_generic_context_equal): Rename from 
946         'mono_metadata_generic_method_equal' and take MonoGenericContext.
947         (mono_metadata_generic_context_hash): Likewise from
948         'mono_metadata_generic_method_hash'.  Change hash function.
949         (mono_metadata_load_generic_params): Update to changes.
950         (mono_get_shared_generic_method): Remove.
951         * metadata-internals.h (mono_get_shared_generic_method): Remove.
952         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
953         (inflate_generic_context): Likewise.
954         (mono_class_inflate_generic_method_full): Likewise.
955         (setup_generic_array_ifaces): Likewise.
956         (mono_class_create_from_typespec): Likewise.
957         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
958         (method_encode_methodspec): Update callsite.
959         (reflection_methodbuilder_to_mono_method): Update to changes.
960         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
961         MonoGenericContext as the key to the hashtable.
962         (inflate_mono_method): Update to changes.
963
964         * class-internals.h (MonoGenericMethod::container): Remove.
965         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
966
967 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
968
969         * profiler-private.h, profiler.c, profiler.h: added API to profile
970         exception events.
971
972 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
973
974         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
975
976 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
977
978         * verify.c: method invocation is now validated, now we verify parameter types on stack.
979         Fixed overflow and underflow not aborting the verification process.
980
981 2007-06-13  Mark Probst  <mark.probst@gmail.com>
982
983         * class-internals.h (MonoStats): Added stats entries for dynamic
984         code allocations.
985
986 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
987
988         * loader.c (mono_free_method): Free header->locals and header->clauses.
989
990         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
991         dynamic case.
992
993         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
994
995         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
996
997 2007-06-12  Raja R Harinath  <rharinath@novell.com>
998
999         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
1000         the tables.
1001
1002 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1003
1004         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
1005
1006 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1007
1008         MonoGenericMethod on a diet
1009         * class-internals.h (_MonoMethodInflated::reflection_info): Move
1010         here ...
1011         (_MonoGenericMethod::reflection_info): ... from here.
1012         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1013         Update to changes.
1014         * reflection.c (inflate_mono_method): Likewise.
1015         (mono_reflection_bind_generic_method_parameters): Likewise.
1016
1017 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1018
1019         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
1020         *verify.c: factored long ldarg forms to share code with short forms
1021
1022 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1023
1024         *verify.c: fixed code formating factored some duplicate code
1025         into a new function
1026
1027         *verify.h: fixed binary incompatibility introduced earlier
1028
1029         *pedump.c: fixed formating
1030
1031 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1032
1033         Fix assertion when disassembling Mono.C5.dll
1034         * loader.c (method_from_methodspec): Avoid inflating a method
1035         twice with the same context.  If the methodref is inflated, use
1036         the declaring method instead.
1037
1038         * class.c (mono_class_from_generic_parameter): Fix case similar to
1039         bug #81830 handled below, but for method containers.
1040
1041 2007-06-10  Raja R Harinath  <harinath@gmail.com>
1042
1043         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
1044         get_shared_generic_class.  Directly inflate the instance.
1045         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
1046         (inflate_generic_class): Delete.
1047         (get_shared_generic_class): Delete.  Move setting of
1048         'cached_class' and 'cached_context' ...
1049         * metadata.c (mono_metadata_lookup_generic_class): ... here.
1050
1051         * metadata.c (mono_metadata_lookup_generic_class): Change
1052         signature to take the components of a MonoGenericClass rather than
1053         an allocated MonoGenericClass.  Change semantics to be intern-like.
1054         * reflection.c (mono_class_bind_generic_parameters): Update to
1055         changes.  Make locking region tighter.
1056         * class.c (inflate_generic_class): Update to changes.
1057         (get_shared_generic_class): Likewise.
1058         * metadata-internals.h: Likewise.
1059
1060         * reflection.c (mono_class_bind_generic_parameters): Take and
1061         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
1062         (mono_reflection_bind_generic_parameters): Use
1063         'mono_class_bind_generic_parameters' rather than duplicate the code.
1064         * class.c (mono_bounded_array_class_get): Update to changes.
1065         * object-internals.h: Likewise.
1066
1067         * reflection.c (mono_class_bind_generic_parameters): Only support
1068         parameterizing generic type definitions.  Remove support for other
1069         open types.
1070
1071 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
1072
1073         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
1074
1075         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
1076         in the dynamic case.
1077
1078 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
1079
1080         * threads.c: When cleaning up thread, reset the Background bit.
1081         Fixes bug #81720.
1082
1083 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
1084
1085        * metadata.c: Move variable declarations to top of scope.
1086        * verify.c: Move variable declarations to top of scope.
1087
1088        Code is contributed under MIT/X11 license.
1089
1090 2007-06-08  Raja R Harinath  <rharinath@novell.com>
1091
1092         * reflection.c (mono_class_bind_generic_parameters): Replace
1093         open-coded loop with mono_metadata_inflate_generic_inst.
1094
1095         * class.c (get_shared_generic_class): Don't call
1096         mono_get_shared_generic_inst.  Use the container's own
1097         'class_inst'.
1098
1099         * metadata.c (mono_metadata_load_generic_params): Move
1100         initialization of 'context' field here from ...
1101         * class.c (mono_class_create_from_typedef): ... here, and ...
1102         * loader.c (mono_get_method_from_token): ... here.
1103
1104         * class.c (get_shared_generic_class): Rename from
1105         mono_get_shared_generic_class and make static.
1106         (mono_get_shared_generic_inst): Move to metadata.c.
1107         * loader.c (mono_get_shared_generic_method): Likewise.
1108         * class-internals.h, metadata-internals.h: Update to changes.
1109
1110         Fix #81830
1111         * class.c (mono_class_from_generic_parameter): Don't assume a
1112         generic container owner exists.  Generic containers from monodis
1113         don't have any.
1114
1115 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
1116
1117         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
1118         * verify.h: new typedefs to returns the non-verifiable status
1119         * verify.c: initial implementation of generics, stack merging and object compatibility check
1120
1121 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1122
1123         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1124         a MonoInternalHashTable again (fixed bug in internal hash table
1125         code).
1126
1127 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1128
1129         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1130         MonoInternalHashTable again (fixed bug in internal hash table
1131         code).
1132
1133 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1134
1135         * class.c, image.c, class-internals.h, domain.c,
1136         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
1137         changes.  Have to figure out what makes them break the SWF
1138         regression.
1139
1140 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1141
1142         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1143         a MonoInternalHashTable now.
1144
1145 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1146
1147         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1148         MonoInternalHashTable now.
1149
1150 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
1151
1152         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
1153         invoke_impl code.
1154
1155         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
1156
1157         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
1158         dependent trampoline.
1159
1160         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1161
1162         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
1163
1164 2007-05-29  Robert Jordan  <robertj@gmx.net>
1165
1166         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
1167
1168 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
1169
1170         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
1171
1172 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
1173
1174        * marshal.c: Fix interface lookup loops for
1175        cominterop_get_com_slot_for_method and 
1176        cominterop_get_method_interface. Only need to lookup
1177        if type is a class, else use interface type method is on.
1178
1179        Code is contributed under MIT/X11 license.
1180
1181 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1182
1183         * reflection.c: HasSecurity can be present even if no specially 
1184         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
1185         SecurityAttribute). Fix CAS regression tests on buildbot.
1186
1187 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
1188
1189        * appdomain.c: Add configure checks for header files.
1190        * image.c: Add configure checks for header files.
1191        * file-io.c: Add configure checks for header files.
1192        * debug-mono-symfile.c: Add configure checks for header files.
1193        * threadpool.c: Add configure checks for header files.
1194        * console-io.c: Add configure checks for header files.
1195        * profiler.c: Add configure checks for header files.
1196        * rawbuffer.c: Add configure checks for header files.
1197        * icall.c: Add configure checks for header files.
1198        * rand.c: Add configure checks for header files.
1199        * socket-io.c: Add configure checks for header files.
1200
1201        Code is contributed under MIT/X11 license.
1202
1203 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
1204
1205         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1206         assertion as it breaks the build.
1207         
1208         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1209
1210         * reflection.c (lookup_custom_attr): Make a copy here too.
1211
1212         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1213         dynamic images.
1214
1215         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1216         images.
1217
1218         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1219         info.
1220
1221 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1222
1223         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1224         (load_cattr_value): Ditto.
1225
1226 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1227
1228         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1229
1230 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1231
1232         * threads.c: In "start_wrapper", set apartment_state to MTA if
1233         apartment_state is Unknown and we're running on 2.0 profile or
1234         higher.
1235         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1236         to main method, then set apartment_state to Unknown on 1.0 profile,
1237         and MTA on 2.0 profile.
1238
1239 2007-05-16  Jb Evain  <jb@nurv.fr>
1240
1241         * class-internals.h (MonoDefaults): Add an attribute_class and
1242           customattribute_data_class.
1243         * domain.c (mono_init_internal): Populate them.
1244         * reflection.c: Use them to remove duplicates. Make a vew
1245         MonoClass variables `static'.
1246
1247 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1248
1249         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1250         step in implementing IMT, so that all isinst checks now can go
1251         through the bitmap.
1252         This was needed because vtables for TransparentProxy need to look
1253         like the vtable of the "target" class, so they need to point to
1254         its interface bitmap directly.
1255
1256         * object.c: inside "mono_class_create_runtime_vtable" and
1257         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1258
1259 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1260
1261         * object-internals.h
1262           culture-info.h : added territory field in MonoCulture and
1263           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1264         * locales.c : fill territory field above too.
1265         * culture-info-table.h : regenerated.
1266
1267 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1268
1269         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1270         Fixes #81599.
1271
1272 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1273
1274         * object.c: Always initialize apartment, even if 
1275         there is no custom attributes on entry point.
1276         
1277         Code is contributed under MIT/X11 license.
1278
1279 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1280
1281         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1282         * metadata.c: If no encoding is set, check for unicode
1283         on class.
1284         
1285         Code is contributed under MIT/X11 license.
1286
1287 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1288
1289         * threads.c: Handle if mono_thread_current returns NULL 
1290         
1291         Code is contributed under MIT/X11 license.
1292
1293 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1294
1295         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1296         in start_wrapper. Added mono_thread_init_apartment_state and
1297         mono_thread_cleanup_apartment_state.
1298         * object.c: Initialize thread apartment state on main thread
1299         by checking for STAThreadAttribute on entry point.
1300         * object-internals.h: Add apartment_state field to MonoThread.
1301         * threads-types.h: Add unmanaged definition of 
1302         System.Threading.ApartmentState, MonoThreadApartmentState.
1303         
1304         Code is contributed under MIT/X11 license.
1305         
1306 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1307
1308         * class.c: Fix windows build.
1309         * class-internals.h: Fix windows build.
1310         
1311         Code is contributed under MIT/X11 license.
1312
1313 2007-05-08  Robert Jordan  <robertj@gmx.net>
1314
1315         * process.c (CreateProcess_internal):
1316         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1317         .CreateNoWindow was specified. Fixes #81496.
1318
1319 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1320
1321         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1322         step in implementing IMT, replaced it with two compact arrays
1323         (interfaces_packed and interface_offsets_packed) and a bitmap that
1324         is used for isinst checks (interface_bitmap).
1325
1326         * class.c: (compare_interface_ids): compare function to pass to
1327         bsearch when looking for an interface with a given id.
1328         (mono_class_interface_offset): reimplemented using bsearch on
1329         interfaces_packed, getting the offset from interface_offsets_packed.
1330         (print_implemented_interfaces): utility debugging function.
1331         (setup_interface_offsets): reworked to initialize interfaces_packed,
1332         interface_offsets_packed and interface_bitmap.
1333
1334         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1335         with uses of interfaces_packed and interface_offsets_packed.
1336
1337 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1338
1339         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
1340         mono_class_interface_offset prototype to wrap all accesses to
1341         "MonoClass.interface_offsets".
1342
1343         * class.c: Implemented mono_class_interface_offset, and wrapped all
1344         accesses to "MonoClass.interface_offsets".
1345
1346         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
1347         "MonoClass.interface_offsets".
1348
1349 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1350
1351         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1352         GetMethodFromHandle overloads (bug #78637).
1353
1354 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1355
1356         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1357         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1358
1359 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1360
1361         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1362         #81498.
1363
1364         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1365         gracefully.
1366         (mono_custom_attrs_from_index): Ditto.
1367
1368         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1369         Fixes #81501.
1370
1371 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1372
1373         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1374         is now allocated from a mempool.
1375
1376 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1377
1378         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1379         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1380
1381 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1382
1383         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1384         mono_loader_clear_error () too late. Fixes #81463.
1385
1386 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1387
1388         * culture-info-table.h : regenerated.
1389
1390 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1391
1392         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1393         is missing.
1394
1395 2007-04-25  Dick Porter  <dick@ximian.com>
1396
1397         * Makefile.am: Put the mingw enforced-optimisation back into the
1398         PLATFORM_WIN32 section.
1399
1400 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1401
1402         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1403         patch.
1404
1405         * image.c (mono_image_load_module): New API function to load a module reference.
1406
1407         * image.c (load_modules): Load modules lazily. Fixes #80812.
1408
1409         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1410         
1411         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1412
1413         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1414         to mono_image_load_module_dynamic.
1415
1416 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1417
1418         * marshal.c: Fix calling convention for CCW on non-windows
1419         platforms. STDCALL on windows, CDECL everywhere else to work 
1420         with XPCOM and MainWin COM.
1421         
1422         Code is contributed under MIT/X11 license.
1423
1424 2007-04-23  Martin Baulig  <martin@ximian.com>
1425
1426         Fix #80969.
1427
1428         * loader.c
1429         (method_from_memberref): Added `gboolean *used_context' argument.
1430         (mono_get_method_from_token): Likewise.
1431         (mono_get_method_full): Don't insert the method in the cache when
1432         `used_context' is true.
1433
1434 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1435
1436         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1437
1438         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1439         create new MonoTypes for returned types.
1440         * class.c (mono_generic_class_get_class): Export mono-internal.
1441         * class-internals.h: Update to changes.
1442
1443 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1444
1445         * threadpool.c, threadpool.h, icall-def.h: patch from
1446         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
1447
1448 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
1449
1450         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
1451         
1452         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
1453
1454         * threads.c (mono_thread_get_stack_bounds): New helper function.
1455
1456         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
1457         Correctly compute stack bounds when attaching. Fixes #81394.
1458
1459 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
1460
1461         * reflection.c: fix handling of doubles in custom attributes
1462         for the arm-fpa format (bug #81368).
1463
1464 2007-04-18  Raja R Harinath  <rharinath@novell.com>
1465
1466         * reflection.c (assembly_add_win32_resources): Mildly relax an
1467         bounds check to let the end pointer point just past the end of the
1468         allocated buffer.  (may fix #81384)
1469
1470 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1471
1472         * culture-info-table.h : regenerated.
1473
1474 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
1475
1476         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
1477         the thread is aborted early.
1478
1479 2007-04-05  Dick Porter  <dick@ximian.com>
1480
1481         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
1482         FindFirstFile()/FindNextFile() to find entries.  This lets the
1483         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
1484         81038.
1485
1486         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
1487         the parameters of
1488         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
1489
1490 2007-04-04  Martin Baulig  <martin@ximian.com>
1491
1492         * debug-helpers.c
1493         (mono_method_desc_full_match): Add support for nested classes.
1494
1495 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
1496
1497         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
1498
1499 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
1500
1501         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
1502         waiting for too many threads.
1503
1504 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1505
1506         * environment.c: Fix return value check on uname so we can get the 
1507         executing version on Solaris operating systems.
1508
1509 2007-03-28  Jb Evain  <jbevain@gmail.com>
1510
1511         * class.c (mono_type_get_name_recurse): Complete the
1512         fix for the creation of assembly qualified names for
1513         pointer types. Fixes #81208.
1514
1515 2007-03-27  Dick Porter  <dick@ximian.com>
1516
1517         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
1518         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
1519         changed.
1520
1521         * threads.c
1522         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
1523         the value of ReleaseMutex().
1524
1525 2007-03-27  Dick Porter  <dick@ximian.com>
1526
1527         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
1528         in little-endian order, not network endian, so must be converted
1529         to host endian here.  Fixes bug 80593.
1530
1531 2007-03-22  Jb Evain  <jbevain@gmail.com>
1532
1533         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
1534         qualified names for pointer types. Fixes #81208.
1535
1536 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
1537
1538         * marshal.c: Add support for PreserveSigAttribute. 
1539         
1540         Code is contributed under MIT/X11 license.
1541
1542 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
1543
1544         * process.c: Fix endianness issues. Fixes #81126.
1545
1546         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
1547         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
1548
1549         * image.c (mono_image_lookup_resource): Make this work on big-endian
1550         machines.Change API contract so the caller needs to free the return value.
1551         
1552         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
1553         API change.
1554         
1555 2007-03-14  Martin Baulig  <martin@ximian.com>
1556
1557         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
1558         mono_type_get_desc() as well.
1559
1560 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
1561
1562         * icall.c:  Fix environ access in VS.  
1563         
1564 2007-03-13  Alp Toker  <alp@atoker.com>
1565
1566         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1567         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1568         #63841.
1569
1570 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
1571
1572         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
1573         circular references among dynamic methods. Fixes #81091.
1574
1575         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
1576
1577 2007-03-09  Martin Baulig  <martin@ximian.com>
1578
1579         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
1580
1581 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
1582
1583         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
1584         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
1585         
1586         Code is contributed under MIT/X11 license.
1587         
1588 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
1589
1590         * loader.c: Reapply patch for bug #79424.
1591
1592 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1593
1594         * metadata.c (mono_type_to_unmanaged): Only convert object to
1595         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
1596
1597 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
1598
1599         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
1600         (and incorrectly set) is_reference field from MonoGenericInst.
1601
1602 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1603
1604         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
1605         a little earlier.
1606
1607         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
1608
1609         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
1610
1611 2007-03-05  Miguel de Icaza  <miguel@novell.com>
1612
1613         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
1614         FileOptions.1 value to mean "temporary", map that to
1615         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
1616
1617         Fixes 80688
1618
1619 2007-03-03  Marek Habersack  <mhabersack@novell.com>
1620
1621         * appdomain.c: implement MS .Net style shadow copying. Copies of
1622         the assemblies are made in a subdirectory of the dynamic base
1623         directory, the assembly names are preserved.
1624         Copy .mdb and .config files along with the assemblies being shadowed.
1625
1626 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1627
1628         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
1629         (emit_marshal_handleref): Ditto.
1630
1631         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
1632         on Visual C++. Fixes #80671.
1633
1634 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
1635
1636         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
1637         for clone operations.
1638
1639 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1640
1641         * marshal.c: Fix warnings.
1642
1643 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
1644
1645         * loader.c: allow case-insensitive matching of the dll name
1646         in dllmap handling when prefixed with "i:".
1647
1648 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
1649
1650         * threads.c: Fix #ifdef for dummy_apc function for VS.
1651
1652 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
1653
1654         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
1655
1656 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
1657         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
1658         giving precedence to the methods with a fully qualified name
1659         (InterfaceName.MethodName) when building the interface sections
1660         of the vtable.
1661
1662 2007-02-16  Dick Porter  <dick@ximian.com>
1663
1664         * threadpool.c (append_job): Fix fast-path array handling, so it's
1665         less likely the array will grow exponentially when the load is
1666         heavy.
1667
1668 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1669
1670         * metadata-internals.h, loader.c: fix dllmap lookup order
1671         for non-function maps, too, and prepare for fallback code.
1672
1673 2007-02-12  Robert Jordan  <robertj@gmx.net>
1674
1675         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
1676         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
1677         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
1678         GlobalFree. Fixes a part of bug #77075.
1679
1680 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
1681
1682         * loader.c: implemented typedef parent in field memberref.
1683
1684 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
1685
1686         * marshal.c: Fix warnings and remember to call Release on
1687         IUnknown of RCW.
1688         
1689         Code is contributed under MIT/X11 license.
1690
1691 2007-02-10  Miguel de Icaza  <miguel@novell.com>
1692
1693         * class-internals.h: Add MonoHandleRef definition, and
1694         handleref_class to mono_defaults. 
1695
1696         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
1697         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
1698
1699         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
1700         (do nothing on this stage)
1701         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
1702         (emit_marshal_handleref): New method, used for argument handling
1703         of HandleRefs. 
1704
1705 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
1706
1707         * class.c (mono_class_setup_parent): Lazily init com types.
1708         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
1709         init com types.
1710         * object.c (mono_remote_class_vtable): Lazily init com types.
1711         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
1712         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
1713         * domain-internals.h: Expose mono_init_com_types.
1714         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
1715         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
1716         Add support for COM Callable Wrapper marshalling.
1717         * marshal.h: Add icall definitions.
1718         * gc.c: Handle freeing of CCWs in finalizer code.
1719         
1720         Code is contributed under MIT/X11 license.
1721
1722 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
1723
1724         * reflection.c: changed all the signature encoding code to use
1725         a variable-sized buffer.
1726
1727 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1728
1729         * marshal.c: locking fixes: never take the loader lock
1730         or other runtime locks when holding the marshal lock
1731         (fixes bug#80664).
1732
1733 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
1734
1735         * marshal.c: make the delegate function pointer mapping
1736         work for the moving GC.
1737
1738 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
1739
1740         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
1741         for bug #80618.
1742
1743 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1744
1745         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
1746         gmodule.
1747
1748 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
1749
1750         * threadpool.c: made the code moving-GC safe.
1751
1752 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1753
1754         * assembly.c, boehm-gc.c, class-internals.h, class.c,
1755         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
1756         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
1757         warning cleanup.
1758         * reflection.c: warning cleanup, some threading and moving GC fixes.
1759
1760 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
1761
1762         * class.c, loader.c: create the needed Set/Get/Address array methods
1763         as well as the .ctors in mono_class_init (), fixes bug #80567.
1764
1765 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
1766
1767         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
1768         we doesn't decrease its alignment. Should fix the sparc build.
1769
1770 2007-01-24  Dick Porter  <dick@ximian.com>
1771
1772         * socket-io.c
1773         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
1774         Create the returned object if we need to ignore an unsupported
1775         socket option.  Fixes a segfault reported by Atsushi.
1776
1777 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
1778
1779         * class.c, object.c: restrict GC-tracked fields to
1780         UIntPtr fields used inside corlib, so we provide better
1781         type info to the GC and also allow broken packing as in
1782         bug #80580.
1783
1784 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
1785
1786         * sgen-gc.c: removed duplicated function.
1787
1788 2007-01-19  Miguel de Icaza  <miguel@novell.com>
1789
1790         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
1791         value that means that the value is not supported, but that we
1792         should not return a failure, but instead report this as a
1793         successful operation.
1794
1795 2007-01-19  Raja R Harinath  <rharinath@novell.com>
1796
1797         Fix tests/bug79956.2.il
1798         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
1799         (mono_generic_class_get_class): If the generic definition in an
1800         enum, copy over other fields related to it.
1801
1802 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
1803
1804         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
1805         genericinst enums (bug #79215).
1806
1807 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
1808         * class.c: Fix bug 80307.
1809
1810 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
1811
1812         * image.c: if the file table is not present, try to load
1813         all the modules, since we don't have info about them
1814         having or not metadata (bug #80517).
1815         * assembly.c: allow mono_assembly_load_references () to
1816         work for netmodules.
1817
1818 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1819
1820         * image.c, metadata-internals.h, object.c: execute module
1821         cctors when running on the 2 runtime if present (bug #80487).
1822
1823 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
1824
1825         * icall.c: optimized InitializeArray() on bigendian.
1826
1827 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
1828
1829         * icall.c: fix for the broken ARM FPA double format.
1830
1831 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
1832
1833         * icall.c: handle endian issues for r4 and r8 types, too, in
1834         the InitializeArray() icall.
1835
1836 2007-01-15  Miguel de Icaza  <miguel@novell.com>
1837
1838         * loader.c (mono_loader_error_prepare_exception): Clear the error
1839         once we have extracted the information from it, do this before we
1840         call into the JIT's class loading mechanisms.
1841
1842         * object.c (mono_class_create_runtime_vtable): Do not clear the
1843         loader error before calling mono_class_get_exception_for_failure
1844         as the loader error is needed inside
1845         mono_class_get_exception_for_failure to throw the error (thinko).
1846
1847         Fixes #80521
1848         
1849 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
1850
1851         * reflection.c: align fields rva data so it's faster to load at
1852         runtime.
1853
1854 2007-01-12  Raja R Harinath  <rharinath@novell.com>
1855
1856         Prepare to simplify GenericMethod handling.
1857         * class-internals.h (mono_method_get_context): New accessor function.
1858         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
1859         rather than directly accessing '->context' field.
1860
1861         * class-internals.h (_MonoGenericParam.method): Move ...
1862         (_MonoGenericContainer): ... here.  Add into union with klass field.
1863         * class.c, icall.c, loader.c, metadata.c, reflection.c:
1864         Update to changes.
1865
1866 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
1867
1868         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
1869         the wrapper type enum and reduce relocations.
1870
1871 2007-01-12  Raja R Harinath  <rharinath@novell.com>
1872
1873         * reflection.c (inflate_mono_method): Reuse method instantiation
1874         from the generic method, if available.
1875
1876 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1877
1878         * marshal.c (emit_marshal_variant): Fix conv_arg
1879         type in last commit, based on whether parameter is byref.
1880         
1881 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1882
1883         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
1884         marshalling.
1885         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
1886         MONO_TYPE_OBJECT back for VARIANT support.
1887
1888 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1889
1890         * marshal.c, marshal.h, icall-def.h: Implement 
1891         Marshal.ReAllocCoTaskMem.
1892
1893 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
1894
1895         * marshal.c: memory retention fixes: use the proper
1896         image cache for runtime_invoke method lookups.
1897
1898 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
1899
1900         * mempool.c: added code to help debug mempool allocations.
1901
1902 2007-01-11  Dick Porter  <dick@ximian.com>
1903
1904         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
1905         support (experimenting with faking it with IP_MTU_DISCOVER for
1906         systems that don't have IP_DONTFRAGMENT.)
1907         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
1908         icall.
1909
1910         * icall-def.h: new System.Net.Sockets.Disconnect icall.
1911
1912         * socket-io.h: Add new fields to MonoSocketAsyncResult
1913         corresponding to the new ones in Socket.cs.
1914
1915 2007-01-11  Raja R Harinath  <rharinath@novell.com>
1916
1917         Fix IronPython regression mentioned in #80249
1918         * metadata.c (do_mono_metadata_parse_generic_class): Clear
1919         'cached_context' field, since it may have been initialized as a
1920         side-effect of metadata parsing.
1921
1922         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
1923         (_MonoGenericClass.cached_class): Move here and rename from lone
1924         remaining field of ...
1925         (_MonoInflatedGenericClass): ... this.  Remove.
1926         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
1927         to changes.
1928
1929         Fix mcs/tests/test-128.cs regression.
1930         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
1931         2007-01-10 change below.
1932         [MONO_TYPE_OBJECT]: Recurse into array case.
1933
1934 2007-01-11  Raja R Harinath  <harinath@gmail.com>
1935
1936         * class-internals.h (mono_get_inflated_generic_class): Remove.
1937         * class.c (mono_get_inflated_generic_class): Remove.
1938         (mono_generic_class_get_class): Rename from
1939         mono_class_create_generic.
1940         (mono_class_from_mono_type) [GENERICINST]: Use it.
1941         * reflection.c, metadata.c: Update to changes.  Use
1942         'mono_class_from_mono_type'.
1943
1944 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
1945
1946         * reflection.c: use passed type when encoding an array element
1947         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
1948
1949 2007-01-09  Robert Jordan  <robertj@gmx.net>
1950
1951         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
1952         result arguments (someDelegate.EndInvoke (unrelatedAres)).
1953         Fixes bug #80392.
1954
1955 2007-01-09  Raja R Harinath  <rharinath@novell.com>
1956
1957         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
1958
1959         * object.c (set_value): Avoid aliasing between type->data.klass
1960         and type->data.generic_class.
1961
1962         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
1963
1964 2007-01-08  Raja R Harinath  <rharinath@novell.com>
1965
1966         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
1967         between type->data.klass and type->data.generic_class.
1968
1969 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
1970
1971         * marshal.c: In MS.NET, StringBuilder objects are not copied by
1972         value in out parameters.
1973
1974 2007-01-08  Raja R Harinath  <rharinath@novell.com>
1975
1976         Simplify invariant for MonoGenericClass::klass field.
1977         * class.c (mono_class_create_generic): Verify 'klass' is null.
1978         * metadata.c (do_mono_metadata_parse_generic_class): Don't
1979         initialize 'klass' field.
1980
1981 2007-01-05  Raja R Harinath  <rharinath@novell.com>
1982
1983         Ongoing work to avoid redundant data and simplify invariants.
1984         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
1985         'generic_class', and change type to a GenericInst.
1986         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
1987         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1988
1989 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
1990
1991         * class.c : skip io-layer under PLATFORM_WIN32.
1992
1993 2007-01-03  Tor Lillqvist  <tml@novell.com>
1994
1995         Fix #80305: In a bundled executable, look in the bundled exe
1996         assembly to determine the runtime version. Add the possibility to
1997         bundle also the machine.config file.
1998         
1999         * assembly.c (mono_assembly_open_from_bundle): Make
2000         non-static. Allow being called even if we have no bundled
2001         assemblies, and return NULL right away in that case.
2002
2003         * domain-internals.h: Declare mono_assembly_open_from_bundle()
2004         here.
2005
2006         * domain.c (app_config_parse): Take an assembly exe file name as
2007         parameter instead of a config file name. Check for a bundled
2008         config file for that assembly by calling
2009         mono_config_string_for_assembly_file() (see below) before looking
2010         for one in the file system.
2011         (get_runtimes_from_exe): Corrsponding change to call of
2012         app_config_parse().
2013         (get_runtimes_from_exe): Check for bundled assembly exe file first
2014         by calling mono_assembly_open_from_bundle(). If no bundled
2015         assembly exe file is found, call mono_image_open() as before to
2016         look it up in the file system.
2017
2018         * mono-config.c: Add variable bundled_machinec_onfig.
2019         (mono_config_string_for_assembly_file): New function.
2020         (mono_config_for_assembly): Move code snippet that looks for a
2021         bundled assembly .config file into the above new function. Call
2022         it.
2023         (mono_register_machine_config, mono_get_machine_config): New
2024         functions to set and retrieve
2025
2026         * assembly.h: Declare mono_register_machine_config().
2027
2028         * mono-config.h: Declare mono_get_machine_config() and
2029         mono_config_string_for_assembly_file().
2030
2031         * icall.c: No declaration of environ necessary on Win32. It is
2032         declared (as a macro expanding to a function call) in stdlib.h.
2033         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
2034         New internal mono function. Returns the value of
2035         mono_get_machine_config() as a Mono string.
2036
2037         * icall-def.h: Add get_bundled_machine_config().
2038
2039 2007-01-04  Raja R Harinath  <rharinath@novell.com>
2040
2041         Remove redundant field
2042         * class-internals.h (_MonoGenericContext.container): Remove field.
2043         * loader.c (mono_method_get_signature_full): Don't parse a
2044         "container" for a signature parse when the signature is inflated
2045         immediately.
2046         (method_from_methodspec): Likewise, for a generic_inst.
2047         * class.c, metadata.c, reflection.c: Update to changes.
2048
2049 2006-01-04  Raja R Harinath  <rharinath@novell.com>
2050
2051         * class-internals.h (_MonoGenericClass): Rename 'context' field to
2052         'cached_context', and change semantics -- it starts off NULL, and
2053         is initialized on demand.
2054         * class.c (mono_generic_class_get_context): New accessor to
2055         replace 'context' field accesses.
2056         (mono_class_get_context): New helper.
2057         (*): Update to changes.
2058         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
2059
2060 2007-01-03  Miguel de Icaza  <miguel@novell.com>
2061
2062         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
2063         before the memcpy.   Fixes Marshal2 regression.
2064
2065 2007-01-02  Jb Evain  <jbevain@gmail.com>
2066
2067         * blob.h: add a MONO_TYPE_ENUM definition
2068         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
2069         fix the encoding of arrays of enums in custom attributes.
2070
2071         Fixes #79666.
2072
2073 2007-01-01  Miguel de Icaza  <miguel@novell.com>
2074
2075         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
2076         string is null terminated, but only cut the string short if it
2077         overflows the buffer.   
2078         
2079         (mono_string_to_byvalstr): Also fix this routine.   The code here
2080         was not properly terminating a string (it was only terminated
2081         because of the previous catch-all memset). 
2082
2083         I left the memset, because I do not know if applications expect
2084         the runtime to clear this region. 
2085
2086         Fixes #79944.
2087
2088         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
2089         Clear the error before returning to unmanaged code to prevent the
2090         runtime from being confused later on (fixes  80420).
2091         (ves_icall_type_from_name): Always call mono_loader_clear_error
2092         after parsing a type that could have failed.
2093         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
2094
2095         * loader.c (mono_loader_clear_error): Fix indentation.
2096
2097 2006-12-28  Martin Baulig  <martin@ximian.com>
2098
2099         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
2100
2101 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2102
2103         * reflection.c: patch from Rolf Bjarne Kvinge to fix
2104         getting a token for an EnumBuilder.
2105
2106 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2107
2108         * reflection.c: be more careful in case resource generation
2109         fails to create the data array.
2110
2111 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2112
2113         * sgen-gc.c: write barrier for clone and fix unregister handles.
2114
2115 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2116
2117         * reflection.c: some fixes needed in the generics code for the moving GC.
2118
2119 2006-12-22  Robert Jordan  <robertj@gmx.net>
2120
2121         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
2122         account. Fixes bug #80299.
2123
2124 2006-12-21  Raja R Harinath  <rharinath@novell.com>
2125
2126         Fix WaitHandle usage in delegates.
2127         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
2128         * object.c (mono_wait_handle_new): Use the property set method to
2129         initialize the handle.
2130         (mono_wait_handle_get_handle): New.
2131         * threadpool.c (mono_async_invoke): Use it.
2132         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
2133         Likewise.
2134         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
2135
2136 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
2137
2138         * marshal.c (emit_marshal): Call emit_marshal_variant and
2139         emit_marshal_com_interface when applicable.
2140         (emit_marshal_variant, emit_marshal_com_interface): Add
2141         methods for this case and remove if's from emit_marshal_object.
2142         
2143 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
2144
2145         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
2146
2147 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
2148
2149         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
2150         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
2151         and GlobalFree on Windows. Remove FIXME.
2152
2153 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2154
2155         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
2156         implementation for managed objects.
2157
2158 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
2159
2160         * object.c: implemented code to be used for checking
2161         that no reference field overlaps with non-references.
2162
2163 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2164
2165         * threadpool.c: fix queue code to be compatible with the
2166         moving GC.
2167
2168 2006-12-18  Miguel de Icaza  <miguel@novell.com>
2169
2170         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
2171         in structures by throwing ArgumentNullException.
2172
2173         (emit_marshal_safehandle): Also when they are null parameters.
2174
2175         (emit_marshal_safehandle): Add support for ref
2176         SafeHandles parameters
2177
2178 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2179
2180         * profiler.c: updated to use the mono-dl API instead of
2181         gmodule.
2182
2183 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2184
2185         * profiler.c: updated to use the mono-dl dynamic loading
2186         API instead of gmodule.
2187
2188 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2189
2190         * profiler.c: use readlink, older versions of glib don't have
2191         g_file_read_link ().
2192
2193 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2194
2195         * profiler.c: try to detect the path to mono if libc fails to provide
2196         a useful name (bug #80286).
2197
2198 2006-12-16  Raja R Harinath  <rharinath@novell.com>
2199
2200         Fix #80242
2201         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
2202         instance, use the generic type definition instead.
2203         (ves_icall_Type_GetNestedTypes): Likewise.
2204         * class.c (mono_class_create_generic): Always set the
2205         nested_classes of a generic instance to NULL, even if the generic
2206         type definition has nested types.
2207
2208 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2209
2210         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2211         and fix on Linux.
2212         
2213 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2214
2215         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2216         my arguments were in the wrong order.   I also fixed the Windows
2217         version which seems to have had the same issue.
2218
2219         (mono_free_bstr): On Unix, this is g_free.
2220         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2221         conversions (for the tests in corlib to pass).
2222
2223 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2224
2225         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2226         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2227         exception if a ref SafeHandle in a struct has changed).
2228         
2229         (emit_struct_conv): Do not perform layout checks for classes
2230         derived from SafeHandle, as those are specially handled. 
2231
2232         (emit_object_to_ptr_conv): Add support for
2233         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2234
2235         (emit_marshal_safehandle): Implement conversion of return values
2236         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2237         
2238         * threads.c: WaitHandle now is compiled with two different handles
2239         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2240         for 2.0.
2241         
2242         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2243         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2244         these routines to cope with both kinds of fields.
2245
2246 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2247
2248         * metadata.c (mono_type_to_unmanaged): Handle the case where
2249         type->data.klass is a SafeHandle, and in that case, return the
2250         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2251         MONO_MARSHAL_CONV_SAFEHANDLE. 
2252
2253 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2254
2255         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2256         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2257         calling emit_marshal_object.
2258
2259         (emit_marshal_safehandle): Implement marshalling of
2260         SafeHandle parameters (no ref support yet).
2261
2262         (MarshalAction): Document the defines as I implement
2263         them for SafeHandle.
2264
2265         (emit_marshal_object): indentation police.
2266
2267         * class-internals.h: Define MonoSafeHandle.
2268         Add safehandle_class to MonoDefaults type.
2269
2270         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2271         list of classes to check for fields. 
2272
2273         * domain.c (mono_init_internal): Add SafeHandle to the list of
2274         mono_defaults loaded.
2275
2276 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2277
2278         Fix #80253
2279         * reflection.c (mono_reflection_bind_generic_parameters): If the
2280         generic type definition is a type builder, ensure that it is fully
2281         initialized before instantiating it.  Kill some dead code.
2282
2283 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2284
2285         * object.c: clear the loader_error () before loading
2286         more metadata stuff (bug #80258).
2287
2288 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2289
2290         * icall.c, icall-defs.h: type modifiers icalls for
2291         parameters and properties.
2292
2293 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2294
2295         * object.c, icall.c: fixed warnings.
2296
2297 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2298
2299         * marshal.c: fixed a couple of leaks and coding style in a few places.
2300
2301 2006-12-08  Dick Porter  <dick@ximian.com>
2302
2303         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2304         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2305         80173.
2306
2307 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2308
2309         * process.c: ProcessStartInfo may have only filename set and
2310         arguments can be NULL.
2311
2312 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2313
2314         * icall.c: fix leak found by Robert Jordan.
2315
2316 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2317
2318         * marshal.c, marshal.h: generate managed method to access an element
2319         of a multi-dimensional array.
2320
2321 2006-11-30  Paolo Molaro (lupus@ximian.com)
2322
2323         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2324
2325 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2326
2327         * icall.c: back out GetFields () fix until the serialization code is
2328         fixed to not depend on the incorrect behaviour.
2329
2330 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2331
2332         * profiler.c: provide defaults if none are set.
2333
2334 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2335
2336         * Makefile.am, attrdefs.h: new public header file with
2337         constants for attributes for use by embedders.
2338
2339 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2340
2341         * icall.c: GetFields () fix for bug #80064.
2342
2343 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
2344
2345         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
2346         removed long unused icalls.
2347
2348 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2349   
2350         * marshal.c: 
2351                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2352                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2353                 can be generated without a delegate class.
2354                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2355         
2356         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2357
2358 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2359
2360         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2361         #80069.
2362
2363 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2364
2365         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2366         icall-def.h: added icalls needed by System.GC.
2367
2368 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2369
2370         * loader.c: ensure the class in catch clauses is handled
2371         correctly for generics methods (fixes bug#79980).
2372
2373 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2374
2375         * monitor.h, monitor.c: added mono_locks_dump () function
2376         to help debug deadlocks involving managed locks.
2377
2378 2006-11-13  Dick Porter  <dick@ximian.com>
2379
2380         * file-io.c (get_file_attributes): If the file is a symlink try
2381         and get the stat data for the target, but also add the
2382         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2383         the specs for the windows symlink support, but will probably have
2384         to be reworked when I have test data from a vista machine.  Fixes
2385         bug 79887.
2386
2387 2006-11-13  Dick Porter  <dick@ximian.com>
2388
2389         * gc.c (mono_domain_finalize): 
2390         * marshal.c (mono_delegate_begin_invoke): 
2391         * threadpool.c (socket_io_init, mono_thread_pool_init)
2392         (mono_thread_pool_finish): 
2393         * monitor.c (mono_monitor_try_enter_internal): 
2394         * threads.c (mono_thread_resume, mono_thread_init)
2395         (mono_thread_suspend_all_other_threads)
2396         (mono_thread_execute_interruption): 
2397         * appdomain.c (mono_domain_unload): Check for NULL error returns
2398         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2399         75733.
2400
2401 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2402
2403         * process.c
2404         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2405         Only close the handle if the value of the handle is not
2406         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2407         robust.
2408
2409         Improvement for #75733, so that we do not run into this problem. 
2410
2411         
2412         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2413         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2414         internal variables.  Fixes #79462 
2415         
2416
2417 2006-11-09  Dick Porter  <dick@ximian.com>
2418
2419         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2420         Use poll() not select().  Fixes bug 79397.
2421
2422 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2423
2424         Fix #79872
2425         * assembly.c (mono_assembly_load_from_full): Check that the given
2426         image has an assembly manifest.
2427
2428 2006-11-09  Ankit Jain  <jankit@novell.com>
2429
2430         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2431         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2432         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2433
2434 2006-11-07  Dick Porter  <dick@ximian.com>
2435
2436         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2437         Put the old resolver behaviour back for pre-2.0 profiles.
2438
2439 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2440
2441         * threadpool.c: precise GC and locking fixes.
2442
2443 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2444
2445         * class.c: don't load types that have an explicit unaligned
2446         managed reference. Provide better info in the TypeLoad exception.
2447         Part of the fix for bug #79744.
2448         * object.c: use the correct check for class type load issues.
2449
2450 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2451
2452         * class.c: enforce alignment of fields with managed references
2453         even when Pack=1 is forced by the user (bug #77788).
2454
2455 2006-11-03  Dick Porter  <dick@ximian.com>
2456
2457         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2458         If the address reverse lookup fails, return it as the hostname
2459         anyway.  Fixes bug 79721.
2460
2461 2006-11-03  Dick Porter  <dick@ximian.com>
2462
2463         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
2464         Fix build on Windows.
2465
2466 2006-11-02  Dick Porter  <dick@ximian.com>
2467
2468         * icall-def.h: 
2469         * object-internals.h: 
2470         * exception.c (mono_get_exception_thread_interrupted): 
2471         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
2472         Fixes bug 74525.
2473
2474         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
2475         Check for pending Thread.Interrupt.
2476
2477 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
2478         * loader.c: Fixed bug 79684.
2479
2480 2006-10-27  Dick Porter  <dick@ximian.com>
2481
2482         * file-io.c (get_file_attributes): Force symlinks to directories
2483         to be returned as a regular file.  Fixes bug 79733.
2484 2006-10-26  Dick Porter  <dick@ximian.com>
2485
2486         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
2487         CreateFile to open a directory then we need to set the
2488         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
2489
2490 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
2491
2492         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
2493         friends.
2494
2495 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2496
2497         * sgengc.c: small cleanup of timer code.
2498
2499 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2500
2501         * sgen-gc.c: fix some warnings and start adding support for
2502         complete object removal on domain unload.
2503
2504 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
2505
2506         * assembly.c: build_assembly_name should not consider a version
2507         number without build or revision number invalid. Fixes bug #79715.
2508
2509 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
2510
2511         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
2512         call kernel32 function OutputDebugString directly.
2513         
2514         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2515         
2516 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
2517
2518         * reflection.c: small cleanup, using a function to insert a MonoString
2519         in the string heap.
2520
2521 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
2522
2523         * reflection.c: moving GC fixes.
2524
2525 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
2526
2527         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
2528         all the objects with finalizers belonging to an unloading appdomain.
2529
2530 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
2531
2532         * sgen-gc.c: added ability to allocate even when the nursery is fully
2533         pinned and fixed a couple of bugs.
2534
2535 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2536
2537         * threads.h: Revert the last change for now.
2538
2539         * threads.h (mono_thread_get_pending_exception): Rename this to
2540         mono_thread_get_undeniable_exception ().
2541
2542 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
2543
2544         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
2545         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
2546         when fname does not refer to valid assembly. This result in a more
2547         meaningful error message.
2548         * exception.c: added mono_get_exception_bad_image_format2 which 
2549         constructs a BadImageFormatException using the ctor taking a custom
2550         message and the file name. Passing in a NULL msg results in a default
2551         message.
2552         * exception.h: define mono_get_exception_bad_image_format2 function.
2553         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
2554         when file name pointed to an invalid IL image. Use 
2555         mono_get_exception_file_not_found2 to construct FileNotFoundException,
2556         as this results in a more meaningful error message.
2557
2558 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2559
2560         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
2561         #79465.
2562
2563 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
2564
2565         * metadata.c (mono_type_size): Change the align parameter to guint32 for
2566         consistency with the other _size functions.
2567         (mono_type_stack_size): Ditto.
2568
2569         * class.c object.c icall.c: Fix warnings caused by the above change.
2570
2571         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
2572
2573         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
2574
2575         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
2576
2577 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2578
2579         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
2580         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
2581         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
2582         threadpool.h, threads-types.h: mark more internal functions.
2583
2584 2006-10-11  Dick Porter  <dick@ximian.com>
2585
2586         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2587         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
2588         reproduce the bug even before applying the fix.)
2589
2590 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
2591
2592         * reflection.c: allow retrieving attributes for arguments in generic
2593         methods (bug #79241).
2594
2595 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
2596
2597         * debug-mono-symfile.c: properly check fopen () result (found by
2598         coverity).
2599
2600 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
2601
2602         * reflection.c: make error message clearer and fixed two
2603         issuelets found by Coverity.
2604
2605 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
2606
2607         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
2608
2609 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2610
2611         * object-internals.h, gc-internal.h, profiler-private.h:
2612         mark internal functions.
2613
2614 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2615
2616         * reflection.c: put data in the text section.
2617         * icall.c: recognize more types in type_from_typename ().
2618         * process.c, marshal.c: added some GC FIXMEs.
2619
2620 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2621
2622         * loader.c: check for NULL before initializing.
2623
2624 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
2625
2626         * gc.c (finalizer_thread): Use a non-alertable wait here.
2627
2628         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
2629         until the correct solution is found.
2630
2631 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2632
2633         * reflection.c (mono_module_get_object): Avoid an assert when operating on
2634         modules with no metadata. Fixes #79596.
2635
2636         * image.c (load_metadata_ptrs): Put back the error message when
2637         the #- heap is encountered since the support is not complete yet.
2638
2639 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2640
2641         * gc.c: do not allow the user to SuppressFinalize () a
2642         delegate because it would leak the trampoline if present.
2643
2644 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2645
2646         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
2647         PropertyPtr table.
2648
2649 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
2650
2651         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
2652
2653         * metadata.c (mono_metadata_get_param_attrs): Ditto.
2654
2655         * row-indexes.h: Add definitions for *Ptr tables.
2656
2657         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
2658
2659         * metadata.c (mono_metadata_translate_token_index): New helper function to
2660         translate table indexes used in uncompressed metadata.
2661         (mono_metadata_decode_table_row): Ditto.
2662         (mono_metadata_decode_table_row_col): Ditto.
2663
2664         * metadata.c: Add table schema for *Ptr tables.
2665
2666         * class.c loader.c: Use the new helper function to access the affected metadata
2667         tables.
2668         
2669         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
2670         #38532.
2671         
2672 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
2673
2674         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
2675         sequences which can be unbounded in size. Fixes #79583.
2676
2677 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
2678
2679         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
2680         static initialization.
2681
2682         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
2683
2684         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
2685
2686         * domain.c (mono_domain_free): Free up type_init_exception_hash.
2687
2688         * object.c (mono_runtime_class_init): Implement correct semantics when a static
2689         ctor fails, i.e. throw the same exception on subsequent accesses.
2690         
2691 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
2692
2693         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
2694         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
2695         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
2696         Handle marshalling of interfaces and VARIANTs contained in structs.
2697         
2698         Code is contributed under MIT/X11 license.
2699         
2700 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
2701
2702         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
2703         
2704         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
2705         mempool.
2706
2707 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2708
2709         * console-io.c: ignore previous SIGINT handler.
2710
2711 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
2712
2713         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
2714         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
2715         #79460, #79461, #79485.
2716
2717         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
2718
2719         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
2720         #79217.
2721
2722 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
2723
2724         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
2725         could be generated from it.
2726
2727 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
2728
2729         * rand.c: fix read loop to correctly handle EINTR.
2730
2731 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2732
2733         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
2734         internal calls are defined to keep methods closer to the declaring
2735         type and allow a significant reduction in runtime relocations and
2736         memory usage.
2737
2738 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
2739
2740         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
2741         exception message to have FileNotFoundException use the default
2742         assembly load error message. Fixes bug #79426.
2743         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
2744
2745 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2746
2747         * threadpool.c: (start_thread_or_queue) use the root domain when
2748         creating the thread instead of the async object one.
2749
2750 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
2751
2752         * class.c, object.c, class-internals.h, reflection.c:
2753         for arrays, store element_size inside MonoClass (speedup
2754         for array object creation).
2755
2756 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
2757
2758         * icall.c: fixed CodeBase to use the file name and not the module
2759         name (bug #79365).
2760
2761 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
2762
2763         * mono-debug.c, mono-debug.h: export find_method as
2764         mono_debug_find_method ().
2765
2766 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2767
2768         * debug-helpers.c, class-internals.h: added a few functions useful
2769         when debugging under gdb.
2770
2771 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2772
2773         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
2774         characters that need special handling.
2775
2776 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
2777
2778         * mono-config.c: make the os/cpu specification more flexible,
2779         allowing lists and negation.
2780
2781 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
2782
2783         * marshal.c: COM Interop fixes. Handle case where method->klass.
2784         is interface. Handle BSTR/MonoString when null. Use CDECL as 
2785         calling convention on non-windows platforms. This is for
2786         compatibility with XPCOM and MainWin COM.
2787         
2788         Code is contributed under MIT/X11 license.
2789         
2790
2791 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
2792
2793         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
2794         correctly. Fixes #79217.
2795
2796         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
2797
2798 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
2799
2800         * mono-config.c: allow both an os and cpu attribute for dllmap
2801         and dllentry elemnets to enable a single config file to be used
2802         for multiple architectures.
2803
2804 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
2805
2806         * loader.c: MonoLoaderError was cleared too soon on load failure.
2807         Fixes bug #79424.
2808
2809 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
2810
2811         * icall.c: use the defining class vtable when accessing a
2812         static field, not a pobblibly derived class.
2813
2814 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
2815
2816         * icall.c string-icalls.c: Remove references to unicode.h.
2817
2818         * unicode.h unicode.c Makefile.am: Remove these unused source files.
2819
2820         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
2821
2822         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
2823         indicating the image where custom marshaller types should be looked up.
2824         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
2825         custom marshallers, instead of corlib. Fixes #79425.
2826
2827 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
2828
2829         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
2830
2831 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
2832
2833         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
2834         Implement Environment.ProcessorCount.
2835         
2836         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
2837         Implement Environment.ProcessorCount.
2838         
2839         * icall.c: 
2840         Add Environment.ProcessorCount icall.
2841         
2842         Patch by Jason McFall.
2843
2844 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2845
2846         * assembly.c: don't append .exe/.dll when the filename already contains
2847         one of those extensions.
2848
2849 2006-09-12  Martin Baulig  <martin@ximian.com>
2850
2851         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
2852         to array interfaces.
2853
2854 2006-09-11  Martin Baulig  <martin@ximian.com>
2855
2856         * reflection.c (mono_image_build_metadata): Create the
2857         MethodImpl's after emitting all types and methods, so we don't
2858         need another fixup pass for them.
2859
2860 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
2861
2862         * class.c (mono_class_from_name_case): Fix regression introduced by the last
2863         change.
2864
2865 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
2866
2867         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
2868         unload.
2869
2870 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
2871
2872         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
2873         args is not set. Fixes #78926.
2874
2875 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
2876
2877         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
2878
2879         * image.c (load_class_names): Move this to class.c, and rename it to 
2880         'mono_image_init_name_cache'.
2881         (load_modules): Fix a warning.
2882
2883         * class.c icall.c image.c: Initialize image->name_cache lazily.
2884
2885         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
2886         on its name using information in the AOT file.
2887
2888         * class.c (mono_class_from_name): Use the new hook function.
2889
2890 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
2891
2892         * reflection.c (mono_param_get_objects): Handle enum default parameter values
2893         correctly.
2894
2895         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
2896         Fixes #79289.
2897         
2898 2006-09-06  Martin Baulig  <martin@ximian.com>
2899
2900         * icall.c (mono_lookup_internal_call): Small fix.
2901
2902 2006-09-05  Raja R Harinath  <rharinath@novell.com>
2903
2904         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
2905         double g_free.
2906
2907 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
2908
2909         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
2910         when --debug is specified.
2911
2912 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
2913
2914         * class.c (setup_generic_array_ifaces): Fix a warning.
2915
2916 2006-09-04  Miguel de Icaza  <miguel@novell.com>
2917
2918         * Temporarily remove the patch to assemly.c that checks the
2919         assembly versions as it breaks our gacutil.
2920
2921 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
2922
2923         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
2924
2925         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
2926         a net 1.0 runtime.
2927
2928         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
2929         created using the default ctor. Fixes #79152.
2930         (mono_string_builder_to_utf16): Ditto.
2931
2932 2006-09-01  Martin Baulig  <martin@ximian.com>
2933
2934         Fix handling of the generic array interfaces.
2935
2936         * class-internals.h
2937         (MonoDefaults): Removed `generic_array_class' and added
2938         `generic_ilist' class.
2939
2940         * class.c
2941         (mono_bounded_array_class_get): Add the new generic array interfaces.
2942         (setup_generic_array_ifaces): New static method; create vtable
2943         entries for each method in the generic array interfaces.
2944
2945         * metadata.c
2946         (select_container): Allow "parent-less" generic methods.
2947
2948         * marshal.c
2949         (mono_marshal_get_generic_array_helper): New public method.
2950
2951         * icall.c
2952         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
2953         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
2954         moved the interncall into System.Array.
2955
2956 2006-09-01  Raja R Harinath  <rharinath@novell.com>
2957
2958         A few more cases of avoiding work on types with ->byref set.
2959         Has the real fix for #79238
2960         * icall.c (is_generic_parameter): New helper.
2961         (ves_icall_Type_GetGenericParameterPosition): Use it.
2962         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
2963         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
2964         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
2965         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
2966         reference types.
2967         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
2968         reference types.
2969         (ves_icall_Type_get_IsGenericInstance): Likewise.
2970         (ves_icall_Type_get_IsGenericType): Likewise.
2971
2972 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
2973
2974         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
2975         class if possible.
2976
2977         * mempool.h (mono_mempool_get_allocated): New helper function.
2978
2979         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
2980         change.
2981
2982         * mempool.c: Fix warnings and the calculation of stats.
2983
2984         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
2985
2986         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
2987
2988         * loader.c (mono_get_method_from_token): Update method_count stat.
2989
2990         * class-internals.h (MonoStats): Add some stats.
2991
2992 2006-08-31 Robert Jordan  <robertj@gmx.net>
2993
2994         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
2995         with managed variants.
2996         All code is contributed under the MIT/X11 license.
2997         
2998 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
2999
3000         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
3001         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
3002
3003         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
3004
3005         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
3006         with cycles in classes.
3007
3008         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
3009
3010         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
3011         missing a [MarshalAs] directive. Fixes #79203.
3012
3013         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
3014         klass->marshal_info. Fixes #79217.
3015
3016 2006-08-30  Martin Baulig  <martin@ximian.com>
3017
3018         Committing a patch from Joachim Ante <joe@otee.dk>:
3019         Add support for binary data symbol stores.
3020
3021         * debug-mono-symfile.c
3022         (mono_debug_open_mono_symbol_file): Renamed into
3023         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
3024         arguments.
3025
3026         * mono-debug.c
3027         (mono_debug_open_image): Added `raw_contents' and `size' args.
3028         (mono_debug_init_2_memory): New public function.
3029
3030 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
3031
3032         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
3033
3034 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3035
3036         * appdomain.c: implement support for ShadowCopyFiles.
3037
3038 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3039
3040         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
3041         when value is NULL (and should remove CID #51).
3042
3043 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3044
3045         * image.c: moved 2 functions to ../utils.
3046
3047 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3048
3049         * gc.c: cope with the target object of a GC handle being NULL
3050         (bug #78877).
3051
3052 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
3053
3054         * class.c: recursively check parent's explicit implementations
3055         of interface methods (fixes bug #79125).
3056
3057 2006-08-19  Miguel de Icaza  <miguel@novell.com>
3058
3059         * filewatcher.c: Avoid warnings when building, do not redefine
3060         constants that are defined.
3061
3062         Remove warnings.
3063
3064 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3065
3066         * image.c: don't fail when the link points to an absolute path.
3067
3068 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
3069
3070         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
3071         Fix CID #3.
3072
3073 2006-08-17  Miguel de Icaza  <miguel@novell.com>
3074
3075         * image.c (full_path): A new method used to obtain the actual path
3076         of an assembly even in the presence of symbolic links.  
3077
3078         This is necessary for the case where we are running a binary that
3079         has been GACed, but we are using the "published" path name
3080         ($prefix/mono/1.0/blah.exe) which happens to point to the real
3081         file in the GAC.
3082
3083         This was the source of the failure for the `xsp' command with the
3084         recent AppDomain changes, as far as the runtime was concerned,
3085         there were two different assemblies: $prefix/mono/1.0/blah.exe and
3086         $prefix/mono/gac/blah/version/blah.exe.
3087
3088         (do_mono_image_open): use full path
3089
3090 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3091
3092         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
3093
3094 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
3095
3096         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
3097         domain_id is supplied. Fix CID #241 and corlib's unit tests.
3098
3099 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3100
3101         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
3102         small structures. Fixes #78990.
3103
3104 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3105
3106         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
3107
3108         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
3109
3110 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3111
3112         * appdomain.c:
3113         * marshal.c: don't load all the assemblies from a domain into newly
3114         created ones. The new domains might have different rules and load
3115         assemblies from different locations. Fixes bug #76757.
3116
3117         Patch by Lluis. Conflicts resolved by Brian Crowell.
3118
3119 2006-08-16  Alp Toker  <alp@atoker.com>
3120
3121         * socket-io.c: First half of the fix for #79084.
3122         Set sa_size to the length of the content, not that of the struct.
3123         Don't add NULL suffix to the content, this should be done in
3124         managed code if needed.
3125
3126 2006-08-14  Raja R Harinath  <rharinath@novell.com>
3127
3128         Fix part of #79012
3129         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
3130         mono_metadata_parse_type returns NULL.
3131
3132 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
3133
3134         * normalization-tables.h : new file for string normalization data.
3135         * locales.c, locales.h, icall.c :
3136           added load_normalization_resource() for string normalization,
3137           and icall as well.
3138         * Makefile.am : added normalization-tables.h to the sources.
3139
3140 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
3141
3142         * marshal.c: Add more helper functions to reduce code duplication and use them
3143         everywhere.
3144
3145 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
3146
3147         * marshal.c: Fix non-x86 stdcall warnings.
3148         
3149         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
3150         them everywhere.
3151
3152 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
3153
3154         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
3155         type check on multi-dimensional arrays. Fixes #79000.
3156
3157 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
3158
3159         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
3160         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
3161         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
3162         * class-internals.h: add is_com_object to class structure.
3163         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
3164         null checks to COM object marshalling. Fix .ctor call on RCW.
3165         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
3166         
3167         All code is contributed under the MIT/X11 license.
3168
3169 2006-08-09  Dick Porter  <dick@ximian.com>
3170
3171         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
3172         racing mono_monitor_allocator_lock() somewhere, so don't delete
3173         the critical section for now.  Found by running and exiting
3174         monodevelop.
3175
3176 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
3177
3178         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
3179         (ves_icall_System_ComObject_FindInterface): Ditto.
3180         (ves_icall_System_ComObject_CacheInterface): Ditto.
3181
3182         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
3183         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
3184
3185 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3186
3187         * threadpool.c: treat pipes from process asynchronous reads as sockets
3188         when reading from them, so we get select/poll or epoll to wait for
3189         data.
3190
3191 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
3192
3193         * loader.c: Fix a typo (CID #233) in the null check.
3194
3195 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
3196
3197         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
3198         Hopefully fixes #78949.
3199         
3200         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
3201         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
3202         bytes. Fixes #78972.
3203
3204 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3205
3206         * filewatcher.c: we need to set errno here.
3207
3208 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3209
3210         * filewatcher.c: let Win32Exception get the error value.
3211
3212 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3213
3214         * filewatcher.c: translate errno into win32 errors for Win32Exception
3215         to know what happened.
3216
3217 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3218
3219         * threadpool.c: Fix more warnings.
3220
3221         * assembly.c (search_loaded): Fix warnings.
3222
3223         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3224         (mono_async_invoke): Ditto.
3225
3226 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3227
3228         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3229         entries for __ComObject type in addition to ComImport types.
3230         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3231         about hash table.
3232         
3233         All code is contributed under the MIT/X11 license.
3234
3235 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3236
3237         * image.c: avoid tentative loading of modulerefs that contain
3238         no metadata (P/Invoke library names).
3239
3240 2006-07-28  Dick Porter  <dick@ximian.com>
3241
3242         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3243         mono_loader_lock() somewhere, so don't delete the critical section
3244         for now.  Found by running and exiting monodevelop.
3245
3246 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3247
3248         * filewatcher.c: define the inotify syscalls when we're building on
3249         linux and have sys/syscall.h. The build system might not have support
3250         for inotify but the target system might have it.
3251
3252 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3253
3254         * domain.c: Documentation updates.
3255
3256         * loader.c (mono_free_method): Do not release the method
3257         information if we are being profiled, as profilers will use this
3258         information at shut down to present some data to the user.
3259
3260         This is needed so that the profiler does not crash, as the
3261         profiler tends to keep MonoMethods around, and they might become
3262         invalid if we free these.
3263
3264         (mono_get_method_constrained): Return the original CIL stream
3265         method as well, so verification can be performed against it.
3266
3267 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3268
3269         * filewatcher.[ch]: support for inotify file system watcher.
3270         * icall.c: add new internal calls for the inotify file system watcher.
3271
3272 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3273
3274         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3275         #78888.
3276
3277 2006-07-20  Dick Porter  <dick@ximian.com>
3278
3279         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3280         warning.
3281
3282 2006-07-20  Dick Porter  <dick@ximian.com>
3283
3284         * threads.c (start_wrapper): Do the thread cleanup while we still
3285         hold a reference to its object.  Fixes bug 78123.
3286
3287 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3288
3289         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3290         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3291           "managed-to-managed".
3292         * icall.c: Redirect string constructors that take sbyte* to
3293           ves_icall_System_String_ctor_RedirectToCreateString.
3294         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3295           to CreateString () methods with matching signature.
3296         * reflection.c: Use original security informations for
3297           MONO_WRAPPER_MANAGED_TO_MANAGED.
3298         * security-manager.c: Use original security informations for
3299           MONO_WRAPPER_MANAGED_TO_MANAGED.
3300         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3301           that is a placeholder and only its address should be used.
3302         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3303           that is a placeholder and only its address should be used.
3304
3305 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3306
3307         Begin implementing COM Interop.
3308         * appdomain.c: Increment corlib version.
3309         * class.c: Set ComImport classes' parent to __ComObject.
3310         * loader.c: Mark cominterop methods as such.
3311         * domain.c: Add __ComObject class to MonoDefaults structure.
3312         * image.c: Add 2 hashtables to the image for COM Interop related methods
3313         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3314         using the mempool allocator
3315         
3316         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3317         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3318         declaration for mono_metadata_type_dup_mp.
3319         
3320         * debug-helpers.c: Added strings for two additional wrapper types
3321         * object.c: Create proxy objects for ComImport classes
3322         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3323         and added __ComObject class to MonoDefaults structure.
3324         
3325         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3326         MonoComInteropProxy and MonoComObject.
3327         
3328         * marshal.c: Added support for COM Interop
3329         (signature_cominterop): Converts managed signature to corresponding
3330         unmanaged COM signature.
3331         (cominterop_get_function_pointer): gets unmanaged function pointer via
3332         COM object vtable
3333         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3334         (cominterop_get_method_interface): returns interface type that method is defined on
3335         (mono_mb_emit_cominterop_call): emits native call to function pointer
3336         gotten from vtable
3337         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
3338         that matches signature of unmanaged function.
3339         (cominterop_get_native_wrapper): wrapper around adjusted method call.
3340         (cominterop_get_invoke): forwards call from proxy to __ComObject
3341         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
3342         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
3343         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
3344         
3345         * marshal.h: Added Marshal icall declarations.
3346         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
3347         so we can access them in finalizer
3348         
3349 2006-07-14  Dick Porter  <dick@ximian.com>
3350
3351         * object.c (mono_type_initialization_cleanup): Fix a race
3352         condition by temporarily commenting out the critical section
3353         deletion.
3354
3355 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3356
3357         * reflection.c (create_custom_attr): Fix some warnings.
3358         (create_custom_attr_data): Ditto.
3359         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3360         types. Fixes #78855.
3361
3362 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3363
3364         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3365
3366         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3367
3368 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3369
3370         * reflection.c (resolve_object): Add support for DynamicMethod.
3371
3372         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3373         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3374
3375 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3376
3377         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3378         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3379
3380 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3381
3382         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3383         Fixes #77888.
3384
3385 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3386
3387         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3388         slightly: remove a shadow local variable.
3389
3390 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3391
3392         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3393         definition that introduces the virtual function slot.
3394         Also fix Coverity #105.
3395
3396 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3397
3398         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3399         for dynamic assemblies. Fixes #78724.
3400
3401 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3402
3403         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3404         Fixes #78722.
3405
3406 2006-06-21  Martin Baulig  <martin@ximian.com>
3407
3408         * reflection.c
3409         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3410         fixes #76484.
3411
3412 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3413
3414         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3415
3416 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3417
3418         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3419         nor TYPEREFs.
3420         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3421         Inflate result if necessary.
3422         (mono_class_get_full): Remove old version.  Rename from
3423         'mono_class_get' and add 'context' argument.  Pass it to
3424         ..._create_from_typespec.
3425         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3426         (mono_ldtoken): Revert change below.
3427
3428 2006-06-20  Martin Baulig  <martin@ximian.com>
3429
3430         * class.c (mono_ldtoken): Don't pass the generic context to
3431         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3432
3433 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3434
3435         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3436         and later freeing it. Fixes #78638.
3437
3438 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3439
3440         * icall.c (mono_class_get_throw): Revert over-zealous error
3441         throwing, the caller for mono_class_get_throw will cope with
3442         errors when classes are not properly initialized already.
3443
3444         The code still copes with loader exceptions though.
3445
3446         Fixes the regression in reftype1 and reftype3 from the CAS tests.
3447         
3448 2006-06-14  Miguel de Icaza  <miguel@novell.com>
3449
3450         Fixes the `make run1' version of RuntimeAbort (to be commited,
3451         source is in Bugzilla).
3452         
3453         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
3454         FALSE on class loading failure instead of returning true.
3455
3456         * class.c (mono_class_create_from_typedef): It is possible for
3457         mono_metadata_interfaces_from_typedef_full to fail if a class is
3458         not found, cope with this.
3459         
3460
3461 2006-06-14  Dick Porter  <dick@ximian.com>
3462
3463         * socket-io.c: 
3464         * process.c: Fix a bunch of signed/unsigned warnings from gcc
3465         4.1.1
3466
3467 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
3468
3469         * culture-info-table.h : oops, forgot to make it nsync with r61548.
3470
3471 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3472
3473         * icall.c: Another fix for building mono in Visual Studio.
3474
3475 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3476
3477         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
3478         
3479 2006-06-09  Martin Baulig  <martin@ximian.com>
3480
3481         * debug-mono-symfile.c: Put this back and really fix it this
3482         time. Sorry for all the trouble.
3483
3484 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
3485
3486         * icall.c (mono_class_get_throw): Fix a warning.
3487         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
3488         ReflectionTypeLoadException if needed. Fixes #78606.
3489
3490         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
3491         (mono_class_init): Ditto.
3492
3493         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
3494         ref_only exceptions.
3495         (mono_loader_clear_error): Make this work even if there is no error.
3496
3497 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
3498
3499         * object-internals.h marshal.c marshal.h icall.c: Implement method 
3500         Marshal.GetComSlotForMethodInfo using internal call.
3501
3502 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
3503
3504         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
3505         a function for signalling it.
3506
3507         * class.c (mono_class_from_typeref): Use the new kind of loader error when
3508         a referenced assembly is not found.
3509
3510         * loader.c (mono_loader_error_prepare_exception): Add support for 
3511         LOADER_ERROR_ASSEMBLY. Fix formatting.
3512
3513 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3514
3515         * domain.c appdomain.c class-internals.h marshal.c: Add support 
3516         for VARIANT marshalling on windows and increment corlib version
3517         since Variant struct was added.
3518
3519 2006-06-03  Miguel de Icaza  <miguel@novell.com>
3520
3521         * debug-mono-symfile.c: Revert Martin's previous patch which broke
3522         stack trace line information:
3523
3524         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
3525         (Martin) when looking up B which is between A and C, return A not C.
3526
3527         Bug is #78573.
3528
3529         Thanks to Alexander Olk for tracking this down.
3530
3531 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
3532
3533         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
3534         
3535         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
3536         avoid clobbering its value.
3537         (mono_string_to_lpstr): Fix a warning on windows.
3538
3539 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3540
3541         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
3542
3543         * reflection.c loader.c: Removed references to 'dummy' flag.
3544
3545         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
3546
3547         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
3548         it gets GC tracking.
3549
3550         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
3551         GC tracking.
3552         
3553         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
3554
3555         * marshal.c threadpool.c: Update callers of mono_async_result_new.
3556
3557         * appdomain.c: Bump corlib version.
3558
3559 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3560
3561         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3562         CEE_STIND_REF when working with object references.
3563
3564 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3565
3566         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
3567         Fixes #78539.
3568
3569 2006-05-30  Miguel de Icaza  <miguel@novell.com>
3570
3571         * loader.c (method_from_memberref): Fix argument value for
3572         mono_loader_set_error_method_load (I was passing the MonoClass
3573         instead of the class name char *).
3574
3575 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3576
3577         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3578         CEE_STIND_REF when working with object references.
3579
3580 2006-05-30  Martin Baulig  <martin@ximian.com>
3581
3582         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
3583         mono_method_full_name() change and replace the ':' with a '.'
3584         here.
3585
3586 2006-05-30  Martin Baulig  <martin@ximian.com>
3587
3588         * debug-mono-symfile.c
3589         (mono_debug_symfile_lookup_location): Fix the algorithm:
3590         when looking up B which is between A and C, return A not C.
3591
3592 2006-05-29  Martin Baulig  <martin@ximian.com>
3593
3594         * mono-debug.h
3595         (MonoDebugMethodInfo): Make the typedef public.
3596         (MonoDebugSourceLocation): New public struct.
3597
3598         * mono-debug.c
3599         (mono_debug_source_location_from_address): Removed.
3600         (mono_debug_source_location_from_il_offset): Removed.
3601         (mono_debug_il_offset_from_address): Removed.
3602         (mono_debug_address_from_il_offset): Removed.
3603         (mono_debug_lookup_method): New public function.
3604         (mono_debug_lookup_source_location): New public function; replaces
3605         the old mono_debug_source_location_from_*() functions; see the
3606         inline documentation.
3607         (mono_debug_free_source_location): New public function.
3608         (mono_debug_print_stack_frame): New public function; see the
3609         inline documentation.
3610
3611         * debug-mono-symfile.c
3612         (mono_debug_find_source_location): Renamed into
3613         mono_debug_symfile_lookup_location(); only take a
3614         `MonoDebugMethodInfo *' and an `offset' argument; added inline
3615         documentation.
3616         (mono_debug_find_method): Renamed into
3617         mono_debug_symfile_lookup_method().
3618
3619 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
3620
3621         * assembly.c (mono_assembly_open_full): Dont overwrite the status
3622         returned by mono_image_open_full ().
3623
3624         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
3625         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
3626         #78517.
3627
3628         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
3629         #78518.
3630
3631 2006-05-27  Miguel de Icaza  <miguel@novell.com>
3632
3633         * class.c (mono_class_from_typeref): handle missing images
3634         earlier, deals with bug #78418.   Refactor code; 
3635
3636         Fix a warning introduced in my previous commit (some stale code
3637         from before I revisited my patch).
3638
3639         * class.c (mono_class_create_from_typedef): On failure, remove the
3640         class from the MonoImage->class_cache as the class is not
3641         initialized;   Fixes the leak pointed out by Paolo.
3642
3643 2006-05-25  Dick Porter  <dick@ximian.com>
3644
3645         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
3646         DeleteCriticalSections until I figure out which one may still be
3647         sometimes locked when mono_thread_cleanup is called.
3648
3649 2006-05-24  Dick Porter  <dick@ximian.com>
3650
3651         * threads.c (mono_thread_cleanup): Move the threading cleanup out
3652         of mono_thread_manage and back into its own function, so it can be
3653         called after the finalizer thread has finished.
3654
3655         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
3656
3657 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
3658
3659         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
3660         Fixes #78495.
3661
3662         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
3663         with non-blittable elements.
3664         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
3665
3666 2006-05-24  Martin Baulig  <martin@ximian.com>
3667
3668         * mono-debug-debugger.h (MonoDebuggerEvent): Added
3669         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
3670
3671         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
3672         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
3673         `mono_debugger_event_handler' to NULL.
3674
3675 2006-05-24  Martin Baulig  <martin@ximian.com>
3676
3677         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
3678
3679 2006-05-24  Martin Baulig  <martin@ximian.com>
3680
3681         * mono-debug-debugger.h
3682         (mono_debugger_create_notification_function): Added
3683         `MonoCodeManager *' argument.
3684
3685 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
3686
3687         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
3688
3689 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
3690
3691         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
3692         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
3693         implementation.
3694
3695 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
3696
3697         * icall.c: precise GC support: objects can't be stored in unmanaged
3698         memory anymore, even if they are kept alive by other references: since
3699         they can move the GC needs to be able to always find them.
3700
3701 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
3702
3703         * object.c: precise GC support for static fields. Support
3704         for moving GCs: write barriers and pinned allocation for interned
3705         strings.
3706
3707 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3708
3709         * domain.c, domain-internals.h: precise GC support for the MonoDomain
3710         structure.
3711
3712 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3713
3714         * class.c, gc.c: sgen and precise GC updates.
3715
3716 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
3717
3718         * marshal.h, marshal.c: added write barrier wrapper and precise type
3719         fixes.
3720
3721 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
3722
3723         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
3724         support.
3725
3726 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
3727
3728         * reflection.c: precise and sgen GC updates.
3729
3730 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
3731
3732         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
3733
3734 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
3735
3736         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
3737
3738 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
3739
3740         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
3741         MONO_TYPE_OBJECT. Fixes #78462.
3742
3743 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
3744
3745         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
3746         and blittable types.
3747
3748 2006-05-17  Miguel de Icaza  <miguel@novell.com>
3749
3750         * class.c (mono_class_get_exception_for_failure): Implement parts
3751         of a TODO: if the loader error is set (instead of the class
3752         error), we return a Loader exception that can be properly thrown
3753         elsewhere.
3754
3755         This was exposed by some Winforms 2.0 code that I tried to run
3756         (Atsushi pointed me to it).
3757
3758 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
3759
3760         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
3761         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
3762         
3763         * marshal.c (emit_marshal_vtype): Add limited support for 
3764         UnmanagedType.LPStruct. Fixes #78427.
3765
3766         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
3767         Applied a patch from kangaroo to fix #77523.
3768
3769 2006-05-17  Martin Baulig  <martin@ximian.com>
3770
3771         * threads.c
3772         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
3773         (debugger_thread_created): Removed.
3774         (debugger_thread_exited): Removed.
3775
3776 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
3777
3778         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3779
3780         * object-internals.h (MonoReflectionResource): Sync with managed version.
3781
3782 2006-05-12  Wade Berrier <wberrier@novell.com>
3783
3784         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
3785
3786 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
3787
3788         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
3789         functions try to allocate from the image mempool.
3790
3791 2006-05-12  Dick Porter  <dick@ximian.com>
3792
3793         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
3794
3795 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
3796
3797         * object.c: The FieldGetter and FieldSetter methods require the full
3798         name of the class, not only the name. Fixes bug #78277.
3799
3800 2006-05-11  Miguel de Icaza  <miguel@novell.com>
3801
3802         * loader.c (method_from_memberref): Do not pass the NULL klass to
3803         mono_loader_set_error_() methods.  Pass the non-NULL value
3804         (class). 
3805
3806 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
3807
3808         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
3809         (mono_assembly_close): Null out assembly->image->references after freeing it.
3810
3811         * image.c (mono_image_close): Free image->references.
3812         
3813         * reflection.c (mono_image_basic_init): Fix a small memory leak.
3814
3815 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3816
3817         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
3818         before checking if it's NULL (g_assert).
3819
3820 2006-05-10  Martin Baulig  <martin@ximian.com>
3821
3822         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
3823         I thought I already killed that two months ago, but now it somehow reappeared.
3824
3825 2006-05-10  Martin Baulig  <martin@ximian.com>
3826
3827         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
3828
3829 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
3830
3831         * reflection.c: Allocate memory for dynamically created methods in the image
3832         mempools.
3833
3834 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3835
3836         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
3837         don't use the ad pointer before checking if it's NULL (g_assert).
3838
3839 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
3840
3841         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
3842         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
3843
3844         * marshal.c: Allocate all signatures from mempools.
3845
3846         * marshal.c: Allocate some more signatures from mempools.
3847
3848 2006-05-09  Miguel de Icaza  <miguel@novell.com>
3849
3850         * object.c (mono_load_remote_field): The code used to provide a
3851         temporary variable for returning results if the user did not
3852         provide a result pointer.  But our temporary variable was allocted
3853         on the satck.
3854
3855         Fix calling code to always pass a result area.   Coverity ID 103.
3856
3857 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
3858
3859         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
3860         value, not the old. Fixes #78312.
3861         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
3862
3863         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
3864         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
3865         per-image cache.
3866
3867         * assembly.c (mono_assembly_close): Free image->references.
3868
3869         * assembly.c (mono_assembly_names_equal): Fix a warning.
3870         (mono_assemblies_cleanup): Cleanup more global data.
3871
3872         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
3873
3874         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
3875         ptr_cache and image->modules.
3876
3877         * image.c (mono_image_init): Allocate array_cache lazily.
3878         
3879 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3880
3881         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
3882         behavior was changed recently and has bad side effects.
3883
3884 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
3885
3886         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
3887         
3888         * assembly.c (mono_assembly_close): Remove a debug printf.
3889
3890         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
3891
3892         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
3893         to also allow for temporary references between mono_image_open ()/close ().
3894
3895         * domain.c (get_runtimes_from_exe): Add a FIXME.        
3896
3897 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
3898
3899         * marshal.c: Fix support for dynamic methods.
3900
3901         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
3902
3903         * marshal.c (mono_marshal_cleanup): New cleanup function.
3904
3905         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
3906         image mempools.
3907
3908         * class.c (mono_class_init): Fix leaking class->nested_classes.
3909
3910         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
3911
3912         * image.c (mono_image_init): Initialize the new cashes.
3913
3914         * image.c (mono_image_close): Destroy the new cashes.
3915
3916         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
3917
3918         * mempool.c (mono_mempool_strdup): New helper function.
3919
3920         * class-internals.h: Add prototype for mono_loader_unlock ().
3921
3922         * domain.c (mono_jit_info_table_find): Fix a warning.
3923         (mono_debugger_check_runtime_version): Ditto.
3924
3925         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
3926         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
3927         functions to these modules.
3928
3929         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
3930         metadata modules.
3931         
3932         * marshal.c (mono_free_bstr): Fix a warning.
3933
3934         * assembly.c (mono_assembly_open_full): Fix another small leak.
3935
3936         * object.c: Fix some unload leaks in the remoting code.
3937
3938         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
3939         function.
3940
3941         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
3942
3943         * reflection.c: Fix some unload leaks in dynamic assemblies.
3944
3945 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
3946
3947         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
3948         * marshal.h: Add BSTR support on Win32
3949         * icall.c: Add BSTR icalls
3950         * metadata.h: Add BSTR enums
3951
3952 2006-04-28  Miguel de Icaza  <miguel@novell.com>
3953
3954         Work to catch the crash from #76795 and turn it into an
3955         exception.   As I stubbed out pieces of the VisualBasic support,
3956         I found a number of places where the code was failing and I added
3957         checks to those places. 
3958         
3959         * metadata.c (do_mono_metadata_parse_generic_class): Make this
3960         function return a status code.  If we fail to parse the signature
3961         from mono_metadata_parse_generic_inst, return FALSE.
3962
3963         * loader.c (mono_get_method_from_token): If we fail to load the
3964         method (mono_class_get) return NULL.   
3965
3966         * (method_from_memberref): Return NULL if we are unable to parse
3967         the method signature
3968
3969         (mono_loader_error_prepare_exception): Since we now use the
3970         loader_error flag internally to stop processing, and obtaining
3971         exceptions that might be thrown will walk this code path the
3972         proper way of going from a MonoLoaderError into a
3973         MonoException was convoluted.   This new routine encapsulates the
3974         process of turning the error into an exception and *clearing* the
3975         error afterwards.
3976         
3977 2006-04-27  Miguel de Icaza  <miguel@novell.com>
3978
3979         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
3980         with missing assemblies), and to cope with:
3981
3982                 * Missing fieldref from a non-existing assembly.
3983                 * Missing methodref from a non-existing assembly.
3984
3985         The first batch of work to address *some* of the issues from 76661.
3986         
3987         * object.c (mono_class_create_runtime_vtable): If we fail to
3988         initialize the class raise the exception here. 
3989
3990         * metadata.c (mono_class_get_overrides_full): If any methods fail
3991         to load return the failure to the caller.
3992
3993         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
3994         flagging assemblies that failed to load.   
3995
3996         Do not crash if we are unable to load the assembly.
3997
3998         (mono_assembly_close): Do nothing with REFERENCE_MISSING
3999         assemblies. 
4000
4001         * loader.c (mono_loader_set_error_type_load): Change the
4002         convention to always pass unallocated strings, so we make our own
4003         copies (I know our own code had duplicated strings before, but
4004         this keeps the normal conventions).
4005         (method_from_memberref): Call mono_loader_set_error_method_load
4006         for all possible failures of loading the class. 
4007         Remove assert, turn into a loader error.
4008
4009         (mono_loader_error_to_exception): Move this routine from mini
4010         (mini_loader_error_to_exception) there was no need to have that in
4011         mini. 
4012
4013         * class.c (mono_class_from_typeref): If we were not able to load
4014         the assembly with mono_assembly_load_reference, call the
4015         mono_loader_set_error_type_load to register the problem.
4016
4017         (mono_class_setup_fields): If we fail to load the type from
4018         mono_metadata_parse_type_full, call mono_class_set_failure and
4019         break from the loop.
4020
4021         If class->exception_type is set, we do not layout the fields as
4022         that might crash the runtime, and instead return (from breaking
4023         from the previous loop).
4024
4025         (mono_class_setup_vtable): This now returns a boolean indicating
4026         whether the table was properly setup.   The decision is driven by
4027         mono_class_get_overrides_full which might run into non-existing
4028         methods. 
4029         
4030         (mono_class_init): Returns TRUE on success or FALSE if there was a
4031         problem in loading the type (incorrect assemblies, missing
4032         assemblies, methods, etc).
4033
4034         When we call mono_class_setup_fields we also check for a potential
4035         error inside this call (either a class exception or a general
4036         loader exception).
4037
4038         (mono_class_create_from_typedef): If the parent fails to load
4039         (calling mono_class_get_full) return NULL.
4040         
4041         ** Important **
4042
4043         calls to mono_metadata_parse_type_full should be checked
4044         everywhere and set the mono_class_set_failure
4045         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
4046
4047         The current patch checks the places where my manually constructed
4048         tests show the errors are showing up, but we should do it
4049         everywhere. 
4050
4051         ** Important2 **
4052
4053         mono_class_init return values should be tested everywhere, like
4054         the previous case this is something that we should audit
4055         everywhere and not only on the cases exposed by the tests I
4056         created. 
4057
4058 2006-04-26  Miguel de Icaza  <miguel@novell.com>
4059
4060         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
4061         boolean parameter and instead pass the information on `options'
4062         parameter (FileOptions).
4063
4064         * icall.c: Register the new signature for MonoIO.Open.
4065
4066         * debug-helpers.c (dis_one): Trying to understand how coverity
4067         works.  Fix Run 5, item 78.
4068
4069 2006-04-26  Dick Porter  <dick@ximian.com>
4070
4071         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
4072         dereference.
4073
4074 2006-04-25  Martin Baulig  <martin@ximian.com>
4075
4076         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
4077
4078         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
4079         debugger_thread_created().
4080         (debugger_gc_push_all_stacks): Don't handle the main thread in any
4081         special way.
4082         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
4083         (mono_debugger_finalize_threads): New function; undo the effects
4084         of mono_debugger_init_threads().
4085         (mono_debugger_create_all_threads): Removed.
4086
4087 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
4088
4089         * image.c (mono_image_close): Tidy up trace messages.
4090
4091         * assembly.c (mono_assembly_close): Ditto.
4092
4093         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
4094         no longer references an already freed assembly. Fixes #78168.
4095
4096 2006-04-21  Dick Porter  <dick@ximian.com>
4097
4098         * threads.c (mono_thread_detach): Fix reference counting when
4099         detaching threads.
4100
4101 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
4102
4103         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
4104         #78155.
4105
4106 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
4107
4108         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
4109         (mono_type_to_stind): Ditto.
4110
4111         * marshal.c: Use the new helper functions to simplify code.
4112
4113         * image.c (mono_image_close): Add some code for help debug assembly unloading
4114         problems.
4115
4116         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
4117         image mempool.
4118
4119         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
4120         assembly was already loaded in another appdomain. Fixes #78083.
4121
4122 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
4123
4124         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
4125         referenced assemblies.
4126         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
4127
4128         * domain.c (mono_domain_free): Add a trace message.
4129
4130         * appdomain.c (add_assemblies_to_domain): Ditto.        
4131
4132         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
4133         field.  
4134
4135 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4136
4137         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
4138
4139 2006-04-12  Martin Baulig  <martin@ximian.com>
4140
4141         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
4142         `USE_INCLUDED_LIBGC'.   
4143
4144 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4145
4146         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
4147         the patch contains ../ and a small directory name later. Hopefully fixes
4148         #78035.
4149
4150 2006-04-10  Martin Baulig  <martin@ximian.com>
4151
4152         Clean up the debugger's thread-handling code.
4153
4154         The debugger's thread-handling code has been moved from
4155         ../mini/debug-debugger.c to threads.c.  We now iterate directly
4156         over the `threads' hash, keep track of exiting threads and also
4157         use proper locking.
4158
4159         We can now debug XSP and XSP based applications with the debugger.
4160
4161         * object-internals.h (MonoThread): Added `gpointer end_stack'.
4162
4163         * threads.h
4164         (MonoThreadCallbacks): Removed; this was only used by the debugger.
4165         (mono_install_thread_callbacks): Likewise.      
4166
4167         * threads.c (mono_thread_callbacks): Removed.
4168         (debugger_thread_created, debugger_thread_exited): New static functions.
4169         (start_wrapper): Call debugger_thread_created().
4170         (thread_cleanup): Call debugger_thread_exited().
4171         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
4172         (mono_debugger_init_threads): New public function.
4173         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
4174         iterate directly over the `threads' hash and also use proper locking.
4175
4176         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
4177
4178         * mono-debug-debugger.h
4179         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
4180
4181 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
4182
4183         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
4184         argument type=array. Fixes #78057.
4185
4186 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4187
4188         * culture-info-table.h : regenerated. Fixed bug #69652.
4189
4190 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
4191
4192         * loader.c metadata.c: Reapply a variant r59116.
4193         
4194         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
4195
4196         * class.c (mono_class_setup_interface_offsets): New internal function.
4197
4198         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
4199         interfaces too. Fixes #77398.
4200
4201         * reflection.c (encode_cattr_value): Add support for 
4202         parameter type=object, argument type=array.
4203         (load_cattr_value): Ditto. Fixes #77916.
4204
4205         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4206         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4207
4208         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4209         a byval char array and CharSet is Ansi.
4210
4211         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4212
4213 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4214
4215         * metadata.c: Add some locking comments.
4216         
4217         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4218         mempool.
4219         (mono_metadata_free_method_signature): Don't free the signature itself.
4220
4221         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4222
4223         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4224         reference the same MonoImage.
4225         (mono_assembly_load_from_full): Add an assert.
4226
4227 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4228
4229         * image.c (mono_image_close): Don't put the image we are about to free into the
4230         loaded_images_guid_hash.
4231
4232         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4233         to reduce code duplication.
4234
4235         * marshal.c: Register the native functions called by this module as icalls, to
4236         somewhat centralize the creation of MonoMethodSignature's.
4237
4238         * loader.c (mono_method_signature): Add a cache for method signatures.
4239
4240         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4241         the parameter attributes of a method.
4242         (mono_metadata_parse_method_signature_full): Refactored the computation of
4243         parameter attributes into a separate function. Also avoid one allocation in
4244         most cases.
4245
4246         * assembly.c (mono_assembly_close): Ditto.
4247
4248         * image.c (mono_image_close): Log trace messages with INFO level.
4249
4250         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4251
4252         * image.c reflection.c: Correct reference counting of image modules.
4253         
4254         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4255         of this function from the image mempool.
4256         
4257         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4258         to allow more cached types to be used.
4259
4260         * mono-debug.c (mono_debug_add_method): Appled patch from
4261         David S. Miller  <davem@sunset.davemloft.net>: Access 
4262         minfo->lexical_blocks[] entry elements using read32().
4263
4264 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4265
4266         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4267         methods as it is allocated from the mempool.
4268
4269         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4270         image mempool.
4271
4272         * metadata-internals.h: Add comments describing the reference counting scheme
4273         used for MonoImage and MonoAssembly.
4274
4275         * image.c assembly.c reflection.c: Rework reference counting of images and 
4276         assemblies so they are freed when the runtime is shut down. Free some 
4277         additional memory structures when an image is unloaded.
4278         
4279 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4280
4281         * class.c loader.c reflection.c: Allocate more data structures in
4282         the image mempool.
4283
4284 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4285
4286         * icall.c
4287         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4288         build on pre glib 2.4 systems.
4289
4290 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4291
4292         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4293
4294         * icall.c: Fix some warnings.
4295
4296 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4297
4298         * culture-info-table.h : regenerated.
4299
4300 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4301
4302         * threads.c, object-internals.h, verify.c: changed the culture caching
4303         code to use a normal MonoArray for storage so the GC can keep track of
4304         them easily. Fixed bits of the cache logic, too and simplified the
4305         code.
4306
4307 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4308
4309         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4310         thread for non-Boehm GCs.
4311
4312 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4313
4314         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4315         needed to keep track of the data for static fields.
4316
4317 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4318
4319         Fix #75172
4320         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4321         for interface classes.  Use 'num_methods' instead.
4322         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4323         before using '->vtable_size' field.
4324
4325 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4326
4327         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4328         doesn't contain managed pointers, so use a normal hashtable.
4329
4330 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4331
4332         * reflection.c, class-internals.h, domain.c: fixed handling of types
4333         used as values for objects in custom attributes (bug #77915):
4334
4335 2006-03-24  Martin Baulig  <martin@ximian.com>
4336
4337         * class.c (mono_class_setup_fields): Added support for generic
4338         instances; fixes #77580.
4339
4340 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4341
4342         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
4343
4344 2006-03-24  Dick Porter  <dick@ximian.com>
4345
4346         * file-io.c (get_file_attributes): More stat macro breakage.
4347         Fixes bug 77759.
4348
4349 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4350
4351         * profiler.c: added the file=filename option in the default profiler
4352         to output the profile data to filename.
4353
4354 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4355
4356         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4357         bug #77877.
4358
4359 2006-03-22  Martin Baulig  <martin@ximian.com>
4360
4361         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4362         allocated `MonoClassField *' in `fb->handle'.
4363
4364 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4365
4366         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4367         allocate interface ID to save memory and allow better ID reuse on
4368         appdomain unload. setup_generic_vtable () removal from Martin.
4369
4370 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4371
4372         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4373         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4374         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4375         write barriers for reference stores with managed objects accessed with
4376         C structures in the runtime and in embedding programs.
4377
4378 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4379
4380         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4381         'interface_id' and 'max_interface_id' fields of MonoClasses
4382         representing open generic types.
4383
4384 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4385
4386         * object.h, object.c, icall.c: added functions to deal with
4387         storing valuetypes that contain references in managed objects.
4388         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4389         fixes and comments around uses of mono_array_addr ().
4390
4391 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4392
4393         * object.h, icall.c, monitor.c: object.GetHashCode ()
4394         implementation that supports the moving garbage collector.
4395
4396 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4397
4398         * icall.c, threads-types.h, threads.c: implemented finalizer for
4399         LocalDataStoreSlot.
4400
4401 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4402
4403         * metadata.c (mono_type_size): Add a fixme.
4404         (mono_type_stack_size): Ditto.
4405
4406         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4407         'type_forwarders' field.
4408
4409         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4410         attribute from net 2.0.
4411
4412         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4413         from class.c.
4414
4415         * class.c (mono_class_setup_fields): Fix a warning.
4416         
4417         * class.c (mono_class_from_name): Add support for assemblyref entries
4418         in the EXPORTEDTYPE table.
4419
4420         * reflection.c: Add support for handling type forwarders under net 2.0.
4421
4422         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4423         
4424 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4425
4426         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4427         overwriting entries in ModuleBuild->types, also clean up the code
4428         a little. Fixes #77774.
4429
4430 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4431
4432         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4433         load friend assembly info when present.
4434
4435 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4436
4437         Fix crasher on gtest-158.cs.
4438         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4439         the return value if the MonoClass we want is yet in an
4440         inconsistent state.
4441         * class.c (mono_class_create_from_typedef): Add an comment
4442         explaining an order dependency between mono_class_setup_parent and
4443         mono_class_setup_mono_type.
4444
4445 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
4446
4447         * class.c: documentation updates and events bug fix.
4448
4449 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4450
4451         * class.c: some cleanup, locking fixes.
4452
4453 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
4454
4455         * class.c: fix the generics code to setup nested
4456         type info to the instantiated type (bug #77770).
4457
4458 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4459
4460         * marshal.c: fixed a few type correctness issues.
4461
4462 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4463
4464         * loader.c: the Set/Get/Addrtess array methods should be public.
4465
4466 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
4467
4468         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
4469         
4470         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
4471         info->wrapper.
4472
4473 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
4474
4475         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
4476
4477         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
4478
4479         * mempool.c (mono_mempool_alloc): Speed this up a bit.
4480         (mono_mempool_alloc0): Ditto.
4481
4482 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4483
4484         * socket-io.c:
4485         (create_object_from_sockaddr): it was allocating 4 extra bytes
4486         for the AF_UNIX data. Fixes bug #77747.
4487
4488 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
4489
4490         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
4491
4492 2006-03-09  Dick Porter  <dick@ximian.com>
4493
4494         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
4495         Fixes bug 76966 again.
4496
4497 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
4498
4499         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
4500         names from r57532
4501         * appdomain.c: Bumped corlib version to 48 (due to r57532)
4502
4503 2006-03-07  Martin Baulig  <martin@ximian.com>
4504
4505         * object.c
4506         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
4507
4508 2006-03-07  Martin Baulig  <martin@ximian.com>
4509
4510         * class.c
4511         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
4512         regression introduced in r56970; see gtest-252.cs.
4513
4514         * loader.c (mono_get_method_constrained): Correctly handle generic
4515         methods; see gtest-253.cs.
4516
4517 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
4518
4519         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
4520
4521 2006-03-04  Martin Baulig  <martin@ximian.com>
4522
4523         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
4524         compute the parent type at runtime, just like we're already doing
4525         it for interfaces.
4526
4527         * reflection.c
4528         (mono_reflection_bind_generic_parameters): Don't compute the
4529         parent type anymore.
4530
4531         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
4532
4533 2006-03-04  Martin Baulig  <martin@ximian.com>
4534
4535         * mono-debug-debugger.h
4536         (mono_debugger_create_notification_function): Allocate memory at
4537         runtime and return a pointer to it.
4538
4539 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
4540
4541         * assembly.c: Fix windows build.
4542         
4543         * assembly.c: Fix build.
4544
4545         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
4546
4547         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
4548         
4549 2006-03-03  Dick Porter  <dick@ximian.com>
4550
4551         * process.c
4552         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4553         Check parameters before dereferencing them.  Fixes Aaron's part of
4554         bug 77393.
4555
4556 2006-03-03  Raja R Harinath  <rharinath@novell.com>
4557
4558         Fix performance regression.
4559         * loader.c (find_method_in_class): Add 'from_class' argument.
4560         Rename 'klass' argument to 'in_class'.  The signature is compared
4561         against the method in 'in_class', and the corresponding method is
4562         returned from 'from_class'.
4563         (find_method): Walk both 'in_class' and 'from_class' in parallel.
4564         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
4565         type definition and generic instantiation in parallel.
4566         (mono_get_method_constrained): Update to changes.
4567
4568 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
4569
4570         * threads.c: make sure the domain is correct, too when doing
4571         mono_thread_attach ().
4572
4573 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
4574
4575         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
4576         windows. Fixes #77683.
4577
4578 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
4579
4580         * object.h, *: introduced specific way to set elements of an array
4581         of references to be used as write barrier. Still need to audit the
4582         uses of mono_array_addr.
4583
4584 2006-03-01  Miguel de Icaza  <miguel@novell.com>
4585
4586         * object-internals.h: New field to cache the assmebly name, patch
4587         from Tambet Ingo (tambet@ximian.com)
4588
4589 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4590
4591         * decimal.h, class-internals.h, metadata-internals.h,
4592         file-io.h: mark a few function declarations as internal, to
4593         reduce the number of PLT entries.
4594
4595 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4596
4597         * file-io.c: fix typo in warning message.
4598
4599 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
4600
4601         * loader.c: on unix, lookup the "*A" version of a function
4602         if charset is auto as a second option before failing.
4603
4604 2006-02-28  Raja R Harinath  <rharinath@novell.com>
4605
4606         * class.h (mono_class_inflate_generic_method): Revert to two
4607         argument version.
4608         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
4609         (mono_class_inflate_generic_method_full): Add.
4610         * class.c (mono_class_inflate_generic_method_full): Rename from
4611         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
4612         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
4613         * loader.c, reflection.c: Update to changes.
4614
4615 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
4616
4617         * icall.c: const fixes and small improvements.
4618
4619 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4620
4621         * threadpool.c: for asynchronous connect(), enable the same workaround
4622         for BSD 6 as for the Mac. Fixes bug #77637.
4623
4624 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
4625
4626         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
4627         formatted classes. Fixes #77524.
4628
4629 2006-02-24  Raja R Harinath  <rharinath@novell.com>
4630
4631         * class.c (inflate_generic_type): Add a couple more
4632         micro-optimizations.
4633         (inflate_generic_context): Don't use the 'gmethod' from
4634         'inflate_with'.
4635         (mono_class_inflate_generic_method): If the method has generic
4636         parameters, but the passed-in context doesn't have a 'gmethod',
4637         create one.  Use the possibly simplified generic instantiation
4638         from the declaring class instead of the one passed in.
4639
4640 2006-02-24  Raja R Harinath  <harinath@gmail.com>
4641
4642         Make generic method signature and method header handling lazy.
4643         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
4644         (inflate_generic_header): Likewise.
4645         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
4646         parameter to avoid inflating types.
4647         (mono_get_inflated_method): Empty out.
4648         * class.h (mono_class_inflate_generic_method): Update to changes.
4649         * loader.c (mono_get_method_from_token): Don't parse signature for
4650         generic methods, nor methods of generic classes.
4651         (mono_method_signature): Rename from 'mono_method_signature'.
4652         Inflate signature on demand.
4653         (mono_method_get_header): Inflate method header on demand.
4654         * reflection.c: Update to changes.
4655
4656 2006-02-23  Raja R Harinath  <rharinath@novell.com>
4657
4658         * metadata.c (mono_metadata_inflate_generic_inst): If the
4659         instantiation is closed, don't bother expanding it in the new
4660         context.
4661         * class.c (inflate_generic_class): If the generic instantiation
4662         doesn't change after inflation, return the argument itself.
4663         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
4664         Add bounds checks.
4665         (inflate_generic_context): If neither the generic class nor the
4666         generic method instantiations change, return the original context.
4667         * reflection.c (mono_method_get_object): Do
4668         'mono_get_inflated_method' before accessing the ->klass field.
4669         (inflate_mono_method): Don't create a MonoGenericMethod unless
4670         necessary.
4671         (inflate_method): Don't pass a constructed type as the declaring
4672         type of a methodbuilder.
4673
4674 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
4675
4676         * object.c: fix memory overwrite.
4677
4678 2006-02-22  Dick Porter  <dick@ximian.com>
4679
4680         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
4681         it doesn't work any more.
4682         (mono_threads_request_thread_dump): Fix unused variable warnings.
4683
4684 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4685
4686         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
4687         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
4688         the public header file.
4689
4690 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
4691
4692         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
4693
4694 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
4695
4696         * class-internals.h, object.c: reduce the size of MonoVTable
4697         and store the interface_offsets array at negative offsets.
4698
4699 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
4700
4701         * metadata.c: tweak table descriptors data structures to reduce
4702         size and runtime relocations.
4703
4704 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4705
4706         * marshal.c: fix some types and opcodes to be type-safe
4707         in marshaling wrappers.
4708
4709 2006-02-21  Ankit Jain  <jankit@novell.com>
4710
4711         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
4712
4713 2006-02-21  Raja R Harinath  <rharinath@novell.com>
4714
4715         * metadata.c (get_constraints): Relax debugging checks for monodis.
4716
4717 2006-02-21  Ankit Jain  <jankit@novell.com>
4718
4719         * metadata.c (mono_metadata_load_generic_params): Move the code
4720         checking for ambiguous generic params from here to mono/dis/get.c
4721         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
4722
4723 2006-02-21  Raja R Harinath  <harinath@gmail.com>
4724
4725         Fix assertion triggered when compiling nemerle.
4726         * class.c (mono_get_shared_generic_inst): Rename from
4727         get_shared_inst and make non-static.
4728         * loader.c (mono_get_shared_generic_method): New.  Used to create
4729         the MonoGenericContext-equivalent of a MonoGenericContainer.
4730         (mono_get_method_from_token): Initialize the 'context' field of
4731         the created MonoGenericContainer.
4732         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
4733         * metadata.c (get_constraints): Add sanity check.
4734         * class-internals.h: Add new internal methods.
4735
4736         * reflection.c (verify_safe_for_managed_space): New sanity check.
4737         Currently checks that owner-less generic parameters aren't allowed
4738         in managed space.
4739         (mono_type_get_object): Use it.
4740         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
4741         that are now in mono_type_get_object.
4742         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
4743
4744 2006-02-19  Raja R Harinath  <harinath@gmail.com>
4745
4746         * metadata.c (mono_type_create_from_typespec): Rename from
4747         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
4748         argument and caching of types in the generic container.
4749         (unwrap_arrays, find_generic_param): Remove.
4750         * metadata-internals.h: Update.
4751         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
4752
4753 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
4754
4755         * class.c (mono_class_get_exception_for_failure): Fix a warning.
4756
4757         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
4758         return values. Fixes #77581.
4759
4760         * class.c (mono_fnptr_class_get): Switch name and name_space.
4761
4762         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
4763         classes and add support for [In, Out] attributes.
4764         (mono_marshal_free_asany): Ditto. Fixes #77524.
4765
4766 2006-02-18  Raja R Harinath  <harinath@gmail.com>
4767
4768         * class.c (mono_class_from_generic_parameter): Make more robust to
4769         incomplete MonoGenericContainers from monodis.
4770
4771 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4772
4773         * class-internals.h: added some more exception types.
4774         * class.c, metadata.c: added a few checks to handle missing
4775         types.
4776
4777 2006-02-17  Raja R Harinath  <rharinath@novell.com>
4778
4779         Use owner-less generic-params some more.
4780         * class.c (my_mono_class_from_generic_parameter): Remove.
4781         (mono_class_from_generic_parameter): Handle null image,
4782         param->name and param->owner.
4783         (mono_class_from_mono_type): Update.
4784         (mono_class_create_from_typespec): Remove 'container' parameter.
4785         If that parameter is non-null, the result is always inflated by
4786         'mono_class_get_full' anyway.
4787         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
4788         parameter.
4789         (mono_class_get_full): Update.
4790
4791         * class.c (inflate_generic_type) [GENERICINST]: If the generic
4792         instance is not open, don't bother inflating.
4793         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
4794         parse metadata for inflated classes.
4795         (_mono_class_get): Change GenericContext* parameter to
4796         GenericContainer*.
4797         (mono_class_create_from_typespec): Likewise.  Simplify, and
4798         implement trivially.  All the cases are handled in
4799         mono_class_from_mono_type.  Don't inflate returned class.
4800         (mono_class_get_full): Delegate GENERICINST optimization to
4801         inflate_generic_type.
4802         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
4803
4804 2006-02-16  Dick Porter  <dick@ximian.com>
4805
4806         * socket-io.c (create_object_from_sockaddr): Fix typo.
4807         (create_sockaddr_from_object): Check array lengths before
4808         potentially accessing items off the end.
4809         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
4810         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
4811         (ves_icall_System_Net_Sockets_Socket_Send_internal)
4812         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
4813         length checks to avoid wraparound overflows.
4814         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
4815         contents of the array of sockets
4816         (hostent_to_IPHostEntry2)
4817         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
4818         Check return value of inet_ntop ().
4819         (addrinfo_to_IPHostEntry): Fix typo
4820
4821 2006-02-16  Raja R Harinath  <rharinath@novell.com>
4822
4823         Type metadata parsing doesn't use generic-instantiation information.
4824         * metadata.c (mono_metadata_parse_array_full): Change
4825         MonoGenericContext* parameter to MonoGenericContainer*.
4826         (mono_metadata_parse_type_full): Likewise.
4827         (mono_type_create_from_typespec_full): Likewise.
4828         (mono_metadata_parse_mh_full): Likewise.
4829         (mono_metadata_parse_generic_inst): Likewise.
4830         (do_mono_metadata_parse_generic_class): Likewise.
4831         (do_mono_metadata_parse_type): Likewise.
4832         * metadata-internals.h: Update to changes.
4833         * class.c (mono_class_find_enum_basetype): Likewise.
4834         (mono_class_setup_fields): Likewise.
4835         (mono_class_create_from_typespec): Likewise.
4836         * loader.c (method_from_methodspec): Likewise.
4837         (mono_get_method_from_token): Likewise.
4838         (mono_method_get_header): Likewise.
4839
4840 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4841
4842         * marshal.c: handle additional GENERICINST case (patch from
4843         Thong Nguyen <tum@veridicus.com>).
4844         Fix a few cases where LDIND_I/STIND_I was used for references.
4845
4846 2006-02-16  Raja R Harinath  <rharinath@novell.com>
4847
4848         * reflection.c (mono_reflection_get_token): Remove unused variable.
4849
4850 2006-02-16  Martin Baulig  <martin@ximian.com>
4851
4852         * reflection.c (mono_reflection_get_token): Add support for fields
4853         in instantiated generic types.
4854
4855         * icall.c
4856         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
4857
4858 2006-02-15  Martin Baulig  <martin@ximian.com>
4859
4860         * icall.c
4861         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
4862         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
4863         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
4864         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
4865
4866 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
4867
4868         * class.c, metadata.c, metadata.h, object.c, icall.c,
4869         marshal.c: changed mono_type_get_underlying_type () to do
4870         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
4871         Fixed handling of instantiated generic valuetypes (bug #75479).
4872
4873 2006-02-15  Raja R Harinath  <rharinath@novell.com>
4874
4875         * metadata.c (mono_metadata_decode_signed_value): Simplify.
4876         Delegate to mono_metadata_decode_value, and work on the returned value.
4877
4878         * icall.c (ves_icall_MonoType_GetGenericArguments):
4879         Add consistency check here too.
4880         
4881 2006-02-15  Ankit Jain  <jankit@novell.com>
4882
4883         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
4884         char/short etc.
4885
4886 2006-02-15  Ankit Jain  <jankit@novell.com>
4887
4888         * metadata.c (mono_metadata_decode_signed_value): New function to decode
4889         signed values, used only for representing lower bounds of arrays.
4890         (mono_metadata_parse_array_full): Use new
4891         mono_metadata_decode_signed_value to decode lower bounds.
4892
4893 2006-02-14  Martin Baulig  <martin@ximian.com>
4894
4895         * reflection.c
4896         (mono_reflection_get_token): Support "MonoGenericMethod" and
4897         "MonoGenericCMethod" and allow generic instances / methods.
4898
4899 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
4900
4901         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
4902         to obtain the terminal size using an ioctl.
4903
4904         * object.c (mono_nullable_init): Revert this as nullable reference
4905         types are not valid.
4906         (mono_nullable_box): Ditto.
4907
4908 2006-02-09  Dick Porter  <dick@ximian.com>
4909
4910         * threads.c (mono_thread_detach): Drop a reference to the thread
4911         we're detaching.
4912
4913 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
4914
4915         * object.c (mono_nullable_init): Handle nullable reference types.
4916         (mono_nullable_box): Ditto. Fixes #77446.
4917
4918 2006-02-07  Martin Baulig  <martin@ximian.com>
4919
4920         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
4921
4922 2006-02-07  Ankit Jain  <jankit@novell.com>
4923
4924         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
4925         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
4926         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
4927         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
4928         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
4929         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
4930
4931 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
4932
4933         * class.c (mono_class_create_generic): Set type_token as well.
4934
4935         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
4936         compatible with MS.
4937
4938 2006-02-02  Martin Baulig  <martin@ximian.com>
4939
4940         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
4941         has never been used so far.
4942
4943 2006-02-02  Martin Baulig  <martin@ximian.com>
4944
4945         * mono-debug-debugger.h: Changed comment at the top of this file;
4946         the header is not installed, but it's safe to #include it from
4947         within the JIT.
4948
4949         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
4950         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
4951
4952 2006-02-02  Martin Baulig  <martin@ximian.com>
4953
4954         * mono-debug.h
4955         (MonoSymbolTable): Removed the `metadata_info' field.
4956
4957         * mono-debug.c
4958         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
4959
4960         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
4961         (mono_debugger_add_builtin_types): Removed.
4962         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
4963         (mono_debugger_create_notification_function): We now operate on a
4964         pre-allocated area; take a `gpointer' and return `void'.
4965
4966         * mono-debug-debugger.c
4967         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
4968         (mono_debugger_add_builtin_types): Removed.
4969
4970 2006-02-02  Martin Baulig  <martin@ximian.com>
4971
4972         * threads.c (mono_debugger_create_all_threads): New public method.
4973
4974 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4975
4976         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
4977         breaks on several platforms.
4978
4979 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
4980
4981         * assembly.c: the VS.NET build doesn't supply default values for
4982         MONO_ASSEMBLIES and MONO_CFG_DIR.
4983
4984 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
4985
4986         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
4987         helper function.
4988
4989         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
4990
4991         * loader.c (method_from_memberref): Fix a warning.
4992
4993         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
4994
4995         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
4996         with explicit layout. Fixes #77433.
4997
4998 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
4999
5000         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
5001         max_interface_id is initialized before using it. Fixes #77398.
5002         (ves_icall_Type_GetInterfaces): Ditto.
5003
5004 2006-01-30  Raja R Harinath  <rharinath@novell.com>
5005
5006         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5007         allocate memory for parameter attributes when parsing memberref
5008         signatures.
5009         * loader.c (mono_loader_set_error_method_load): Don't warn.
5010         (method_from_memberref): Ensure MissingMethodException gets thrown
5011         if method is not found.  Make warning more informative.
5012
5013 2006-01-29  Raja R Harinath  <harinath@gmail.com>
5014
5015         Fix #77397
5016         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
5017         return true if is byref.
5018         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5019         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
5020         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
5021
5022 2006-01-27  Raja R Harinath  <rharinath@novell.com>
5023
5024         Fix tests/find-method.2.il
5025         * loader.c (find_method, find_method_in_class): Remove is_inflated
5026         argument.  Revert 2006-01-18 change.
5027         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
5028         is generic, search for method in its generic definition.
5029         * class.c (mono_class_setup_vtable_general): Print generic
5030         arguments of generic types in debugging printf.
5031
5032 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
5033
5034         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
5035
5036         * threads.c (mono_threads_request_thread_dump): New helper function.
5037
5038 2006-01-25  Raja R Harinath  <rharinath@novell.com>
5039
5040         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
5041
5042 2006-01-25  Ankit Jain  <jankit@novell.com>
5043
5044         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
5045         move definition to ..
5046         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
5047         
5048 2006-01-25  Ankit Jain  <jankit@novell.com>
5049             Raja R Harinath  <rharinath@novell.com>
5050
5051         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
5052         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
5053         as necessary.
5054
5055 2006-01-25  Martin Baulig  <martin@ximian.com>
5056
5057         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
5058         `MonoDebuggerThread' into debug-debugger.c.
5059
5060 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
5061
5062         * profiler.c: fix printing of data.
5063
5064 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
5065
5066         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
5067           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
5068
5069 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5070
5071         * object.c: fix deadlock related to string interning.
5072
5073 2006-01-23  Martin Baulig  <martin@ximian.com>
5074
5075         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5076
5077         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
5078
5079 2006-01-23  Martin Baulig  <martin@ximian.com>
5080
5081         * mono-debug.h: Moved the prototypes of some functions which are
5082         used by the JIT here from mono-debug-debugger.h.
5083
5084 2006-01-21  Martin Baulig  <martin@ximian.com>
5085
5086         * Makefile.am: Don't install mono-debug-debugger.h.
5087
5088 2006-01-21  Martin Baulig  <martin@ximian.com>
5089
5090         * mono-debug-debugger.h: Enforce the private status of this header
5091         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
5092         Moved some stuff from mono-debugger-jit-wrapper.h here.
5093
5094 2006-01-20  Raja R Harinath  <rharinath@novell.com>
5095
5096         * class.c (mono_class_from_typeref): Add a sanity test to help
5097         catch lack of assembly load/search hooks.
5098
5099 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
5100
5101         * marshal.c (emit_struct_conv): Relax the fields with same offset
5102         check even more. Fixes #77230.
5103
5104 2006-01-18  Martin Baulig  <martin@ximian.com>
5105
5106         * loader.c (find_method_in_class): Added `gboolean is_inflated'
5107         argument; if false, we compare the uninstantiated signatures.
5108         (method_from_memberref): Compare the uninstantiated signatures;
5109         fixes #76417.
5110
5111 2006-01-18  Robert Jordan  <robertj@gmx.net>
5112
5113         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
5114         Clear the weak link. Fixes bug #77170.
5115
5116         * gc.c (mono_gchandle_free):
5117         Reflect *-gc.c changes (tiny optimization).
5118
5119 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
5120
5121         * metadata.c (mono_metadata_signature_dup): Applied patch from
5122         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
5123         Fixes #77288.
5124
5125 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
5126
5127         * marshal.c (emit_struct_conv): Allow fields with the same offset when
5128         marshalling from native to managed code. Fixes #77230.
5129
5130 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5131
5132         * threadpool.c: fix problem (Mac only) when more than one asynchronous
5133         connect. Fixes bug #77020.
5134
5135 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5136
5137         * class.c: fixed id assignement for nested interfaces (bug #77275).
5138         Added also better info for --print-vtable debugging.
5139
5140 2006-01-12  Martin Baulig  <martin@ximian.com>
5141
5142         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
5143         interfaces on-the-fly; fixes #76625.
5144
5145         * class-internals.h
5146         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
5147         don't need that anymore.
5148
5149 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5150
5151         * socket-io.c
5152         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5153         To avoid initing the nested_classes when not needed I turned the
5154         PeerCredData as a toplevel internal class, as it has to be shared
5155         anyways. 
5156
5157         Fixes the CASA issue.
5158
5159 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
5160
5161         * domain.c: Accessors for MonoJitInfo
5162
5163         * profiler-private.h: Add jitinfo to the end jit hook
5164
5165         * profiler.[ch]: Define new hooks, called after jitting which give
5166         the MonoJitInfo that was compiled
5167
5168 2006-01-10  Martin Baulig  <martin@ximian.com>
5169
5170         * class.c (mono_class_setup_events): Add support for generic
5171         classes; fixes #76440.
5172
5173 2006-01-06  Raja R Harinath  <rharinath@novell.com>
5174
5175         Fix #77160.
5176         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
5177         on passed-in method.
5178
5179 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5180
5181         * object.c (mono_runtime_invoke_array): Add Nullable support.
5182
5183         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
5184
5185 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
5186
5187         * file-io.c: Don't consider sockets as directory and avoid an endless
5188         loop. Fix bug #76966.
5189
5190 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5191
5192         * object.c (mono_nullable_init): New helper function.
5193         (mono_nullable_box): Ditto.
5194
5195         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
5196
5197         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
5198
5199         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
5200         
5201 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
5202
5203         * class.c (mono_class_is_assignable_from): Make T assignable to 
5204         Nullable<T>.
5205
5206 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5207
5208         * appdomain.c: Bump corlib version to 46.
5209         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5210         serialization purpose) and changed ves_icall_System_Reflection_
5211         Assembly_get_code_base signature to accept a boolean (to escape, or 
5212         not, the assembly code base).
5213
5214 2005-12-23  Dick Porter  <dick@ximian.com>
5215
5216         * icall.c: 
5217         * threads-types.h: 
5218         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5219         CreateEvent icall now returns "created" boolean parameter.
5220
5221 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5222
5223         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5224         #76967.
5225
5226         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5227         when attr_klass is an interface. Fixes #77045.
5228
5229 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5230
5231         * marshal.c (emit_struct_conv): Fix previous patch.
5232         
5233         * marshal.c (emit_struct_conv): Add a check for fields with the same
5234         offset.
5235
5236 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5237
5238         Fix regression in Mono.C5.
5239         * class.c (mono_class_create_generic): If 'klass' is an interface
5240         set up the interface offsets.
5241         (mono_class_is_assignable_from): Don't throw away generic arguments.
5242
5243 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5244
5245         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5246         type parameters.
5247
5248 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5249
5250         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5251         dead store.
5252         (do_mono_metadata_parse_generic_class): Don't pass the current
5253         generic context when parsing the type being instantiated: it
5254         cannot use it, anyway.
5255
5256         * loader.c (method_from_memberref): Don't inflate a signature if
5257         it doesn't contain any type parameters.
5258
5259 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5260
5261         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5262
5263 2005-12-14  Martin Baulig  <martin@ximian.com>
5264
5265         * class.c
5266         (mono_type_get_name_recurse): Don't return null for type
5267         parameters and open generic classes.
5268         (mono_class_setup_methods): Don't exclude generic instances.
5269         (mono_get_unique_iid): Use different IDs for different
5270         instantiations of the same generic type.
5271         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5272         open generic instances; create a normal vtable for closed generic
5273         instances.
5274         (mono_class_setup_vtable_general): We're now also called for
5275         closed generic instances.
5276
5277         * reflection.c
5278         (mono_reflection_bind_generic_parameters): Correctly use
5279         mono_metadata_lookup_generic_inst() everywhere.
5280
5281 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5282
5283         * object.c (mono_class_create_runtime_vtable): Call 
5284         mono_class_setup_vtable ().
5285
5286         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5287         function.
5288         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5289         #76959.
5290
5291         * loader.c (mono_loader_set_error_type_load): Print the type load
5292         warnings to the console so they are more visible to the user.
5293         (mono_loader_set_error_method_load): Ditto.
5294
5295         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5296         is still broken.
5297         
5298         * reflection.c (ensure_runtime_vtable): Fix build.
5299
5300         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5301         doesn't work in all cases.
5302
5303 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5304
5305         * object.c (mono_array_new_full): Treat a single dimensional array
5306         with 0 lower bounds as an szarray. Fixes #76973.
5307
5308         * reflection.c (custom_attr_visible): Really fix this.
5309
5310 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5311
5312         * reflection.c (custom_attr_visible): Allow nested public attributes
5313         as well.
5314
5315         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5316         interface check.
5317
5318 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5319
5320         * class.c (set_generic_param_owner): Delete.
5321         (mono_class_create_from_typedef): Don't set ->owner field of
5322         generic parameters to "param containers" of enclosing classes.
5323         * reflection.c (mono_reflection_initialize_generic_parameter):
5324         Likewise.
5325
5326 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5327
5328         * reflection.c (custom_attr_visible): Fix build.
5329
5330 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5331
5332         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5333         private attributes.
5334         
5335         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
5336         handling of null parameter defaults.
5337
5338 2005-12-09  Raja R Harinath  <rharinath@novell.com>
5339
5340         * class.c (mono_class_from_generic_parameter): Don't set
5341         klass->generic_container.
5342         (my_mono_class_from_generic_parameter): Likewise.
5343
5344 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
5345
5346         * reflection.c (load_public_key): Fix a warning.
5347         (method_encode_code): Fix unaligned accesses.
5348
5349 2005-12-07  Martin Baulig  <martin@ximian.com>
5350
5351         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5352
5353         * reflection.c
5354         (write_generic_param_entry): Encode our custom attrs.
5355
5356         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5357
5358 2005-12-07  Martin Baulig  <martin@ximian.com>
5359
5360         * reflection.c (encode_new_constraint): Removed; we don't use the
5361         `NewConstraintAttribute' anymore.
5362
5363 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5364
5365         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5366         not fire a TypeResolve event when Assembly.GetType () is called.
5367
5368 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5369
5370         Beginning of support for nullable types in the runtime. Parts of
5371         this patch are from Martin.
5372
5373         * appdomain.c (MONO_CORLIB_VERSION): Bump
5374
5375         * domain.c (mono_init_internal): get the nullable type
5376
5377         * class.c (mono_class_is_nullable): New method
5378         (mono_class_get_nullable_param): New mehod
5379         (mono_class_create_generic): In types T? set cast_class to T
5380
5381         * class-internals.h (MonoDefaults): new nullable default class
5382         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5383         new methods.
5384
5385 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5386
5387         * metadata.c (select_container): New.  Refactor code to select the
5388         appropriate GenericContainer given the type of generic parameter
5389         we are looking for.
5390         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5391         not a MonoGenericContext.  Use select_container.  Update parameters.
5392         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5393         and MONO_TYPE_MVAR.
5394         (unwrap_arrays): Remove duplicate tests.
5395         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5396         generic instantiated class to find any arguments that are generic
5397         parameters.
5398         (mono_type_create_from_typespec_full): Use find_generic_param to
5399         avoid evicting some generic instantiations from the typespec
5400         cache.
5401
5402 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5403
5404         * reflection.c: fixed writing of doubles on ARM FPA.
5405
5406 2005-12-02  Robert Jordan  <robertj@gmx.net>
5407
5408         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5409
5410 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5411
5412         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5413         least on SUSE 10 they are not the same (on debian, they are just the
5414         same thing).
5415
5416 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5417
5418         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5419         DeclaringType for VARs and MVARs.
5420         * class.c (set_generic_param_owner): Fix initialization of owner
5421         fields.
5422
5423 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5424
5425         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5426
5427 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5428
5429         * threadpool.c: workaround for a bug that shows up on the Mac:
5430         select()+connect() on a blocking socket is not like it should
5431         be, so we proceed to connect() in that case, wasting the I/O
5432         threadpool thread until connect succeedes. Fixes bug #75436.
5433
5434 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5435
5436         * threadpool.c: fix typo when setting file descriptor states.
5437
5438 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5439
5440         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5441         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5442         create a temporary signature container.
5443         (mono_metadata_parse_generic_param): Update to changes.
5444         (mono_type_create_from_typespec_full): Update to changes.
5445         * loader.c (method_from_memberref): Don't use a
5446         MonoGenericContainer while parsing a memberref signature.
5447         (method_from_methodspec): Remove dead-store of the 'container'
5448         variable.  It's overwritten before use.
5449
5450         * metadata.c (mono_type_create_from_typespec_full): Make debugging
5451         checks tighter.
5452         (mono_metadata_parse_generic_param): Likewise.
5453         * loader.c (find_method_in_class): Does not need a
5454         MonoGenericContainer.  Use 'mono_method_signature' rather than
5455         'mono_method_signature_full'.
5456         (find_method, mono_get_method_constrained, method_from_memberref):
5457         Update to changes.
5458
5459         * metadata.c (mono_type_create_from_typespec_full): Ensure that
5460         owner-less generic-parameters are never evicted from the typespec
5461         cache.
5462
5463         * loader.c (method_from_memberref): Don't use the current context
5464         when parsing signatures.
5465         (method_from_methodspec, mono_get_method_from_token): Update to changes.
5466
5467         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
5468         side-effects in g_assert.
5469         * loader.c (mono_get_method_from_token): Resolve klass earlier so
5470         that we don't potentially lose information.
5471
5472 2005-11-26  Dick Porter  <dick@ximian.com>
5473
5474         * icall.c:
5475         * threads.c: icalls to implement basic (ie, not named)
5476         System.Threading.Semaphore.
5477
5478 2005-11-24  Dick Porter  <dick@ximian.com>
5479
5480         * process.c
5481         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5482         Use GetProcessId() if it's available.
5483
5484 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
5485
5486         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
5487
5488 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5489             Ankit Jain  <jankit@novell.com>
5490
5491         * loader.c (mono_get_method_from_token): Initialize 'method' field
5492         of all generic parameters before parsing the signature.  Remove
5493         code that "fixed"-up MVAR references.
5494
5495 2005-11-23  Ankit Jain  <jankit@novell.com>
5496
5497         * metadata.c (mono_metadata_has_generic_params):
5498         (mono_metadata_load_generic_param_constraints):
5499         (mono_metadata_load_generic_params): Move duplicate code ...
5500         (mono_metadata_get_generic_param_row): ... here. Returns the
5501         first row-id in GenericParam table for a given owner (token).
5502         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
5503         prototype.
5504
5505 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5506             Ankit Jain  <jankit@novell.com>
5507
5508         * metadata.c (mono_metadata_class_equal): Pass signature_only when
5509         comparing VARs too.
5510         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
5511         type->data.generic_param only if the type is an MVAR.
5512         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
5513         leak owner-less VARs and MVARs into managed space.
5514
5515 2005-11-21  Martin Baulig  <martin@ximian.com>
5516
5517         * class-internals.h
5518         (MonoMethod): Moved the `generic_container' here from
5519         `MonoMethodNormal' since we now also need it for
5520         `MonoMethodPInvoke';
5521         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
5522         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
5523         an union containing both `MonoMethodNormal' and
5524         `MonoMethodPInvoke'.
5525
5526         * loader.c
5527         (mono_get_method_from_token): Allow implementing generic methods
5528         as interncalls.
5529
5530         * threads.c
5531         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
5532         icall.
5533
5534 2005-11-17  Dick Porter  <dick@ximian.com>
5535
5536         * icall.c: 
5537         * process.h: 
5538         * process.c: Split the Process Start_internal icall into
5539         ShellExecuteEx_internal and CreateProcess_internal, which are
5540         called depending on whether UseShellExecute is true.  Fixes bug
5541         76670.
5542
5543         * appdomain.c (MONO_CORLIB_VERSION): Incremented
5544
5545 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
5546
5547         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
5548         'msize' parameters, use the information in 'mspec' instead.
5549         (emit_object_to_ptr_conv): Ditto.
5550
5551         * marshal.c (emit_struct_conv): Handle explicit layout structs with
5552         fields out of order. Fixes #76733.
5553
5554 2005-11-17  Ankit Jain  <jankit@novell.com>
5555
5556         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
5557
5558 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
5559
5560         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
5561           bug #76575.
5562
5563 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5564
5565         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
5566         for types with non-auto layout. Fixes #76717.
5567
5568 2005-11-16  Ankit Jain  <jankit@novell.com>
5569
5570         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
5571         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
5572         if generic_context is null.
5573           (mono_metadata_generic_param_equal): param->owner can be null.
5574           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
5575         null.
5576
5577 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5578
5579         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
5580         the correct value.
5581
5582 2005-11-15  Martin Baulig  <martin@ximian.com>
5583
5584         * object.c (set_value): Use mono_class_from_mono_type() instead of
5585         the hack for generic instances; fixes #76136.
5586
5587 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
5588
5589         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
5590         fields.
5591
5592         * image.c (load_metadata_ptrs): Initialize the new fields.
5593
5594         * reflection.c (create_dynamic_mono_image): Ditto.
5595
5596         * reflection.c (build_compressed_metadata): Use the new fields.
5597
5598         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
5599         icall.
5600
5601         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
5602         icall.
5603         
5604 2005-11-15  Ankit Jain  <jankit@novell.com>
5605             Raja R Harinath  <harinath@gmail.com>
5606
5607         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
5608         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
5609         new per-generic_container cache if the cached MonoType's context matches
5610         the current context.
5611           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
5612         to the expected context.
5613           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
5614
5615 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5616
5617         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
5618         we changed the signature of an icall.
5619         * icall.c: Modify to mono_double_ParseImpl return true/false 
5620         depending on the success, instead of throwing the exception. This will
5621         help us in Double.TryParse methods.
5622         
5623 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
5624
5625         * marshal.c (emit_marshal_object): Throw an exception when
5626         marshalling 'object' instead of crashing. Fixes #76696.
5627
5628 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5629
5630         * class-internals.h: Add prototype for mono_type_get_full_name ().
5631
5632 2005-11-11  Dick Porter  <dick@ximian.com>
5633
5634         * threads.c (mono_thread_manage): Make sure the main thread has
5635         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
5636
5637 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5638
5639         * loader.c (mono_loader_set_error_type_load): Log a warning to the
5640         console about the missing type.
5641         (mono_loader_set_error_method_load): Ditto.
5642
5643 2005-11-09  Miguel de Icaza  <miguel@novell.com>
5644
5645         * mono-config.c (mono_get_config_dir): Set the system defaults if
5646         none is specified.
5647
5648         * assembly.c (mono_set_dirs): New API entry point to set the
5649         assembly and the config directory in one call
5650
5651 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
5652
5653         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
5654         the ftnptr was created from a delegate in a domain other than the
5655         current domain. Fixes #75377.
5656
5657         * exception.h exception.c: Add mono_get_exception_not_supported ().
5658
5659 2005-11-08  Martin Baulig  <martin@ximian.com>
5660
5661         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
5662
5663 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
5664
5665         * security-manager.h: Added definitions to deal with strongname key 
5666         pairs bigger (and smaller) than 1024 bits.
5667         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
5668         adjust wrt the public key length being used.
5669
5670 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
5671
5672         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
5673           Windows build (r51396-51397).
5674
5675 2005-11-03  Martin Baulig  <martin@ximian.com>
5676
5677         * class.c (mono_class_setup_vtable_general): Also add generic
5678         methods to the vtable; fixes #76581.
5679
5680 2005-11-01  Miguel de Icaza  <miguel@novell.com>
5681
5682         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
5683         sure that we lookup GetString method from the System.Text.Encoding
5684         class, not the derived class or we get an empty method.
5685
5686         Fixed class #76612.
5687
5688 2005-10-25  Miguel de Icaza  <miguel@novell.com>
5689
5690         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
5691         if it has been previously set (embedders). 
5692
5693         Make mono_set_rootdir available also on Unix.
5694
5695 005-10-24  Robert Jordan  <robertj@gmx.net>
5696
5697         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
5698
5699 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
5700
5701         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
5702         only calls which are made to native code use this flag.
5703
5704         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
5705
5706 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
5707
5708         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
5709         Add support for FieldBuilders.
5710
5711 2005-10-29  Martin Baulig  <martin@ximian.com>
5712
5713         * mono-debug.c
5714         (mono_debug_using_mono_debugger): New public method; returns
5715         whether we're running inside the debugger.
5716
5717 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
5718
5719         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
5720         for Method/Constructor/FieldBuilders.
5721
5722 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
5723
5724         * reflection.c (module_add_cattrs): Save custom attributes for global methods
5725         and fields as well.
5726
5727 2005-10-26  Martin Baulig  <martin@ximian.com>
5728
5729         * mono-debug-debugger.c
5730         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
5731
5732 2005-10-24  Raja R Harinath  <harinath@gmail.com>
5733
5734         * icall.c (base64_to_byte_array): Don't pass an out-of-range
5735         integer to isspace.
5736
5737 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
5738
5739         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
5740         when passing valuetypes byref. Fixes #76502.
5741
5742 2005-10-19  Jackson Harper  <jackson@ximian.com>
5743
5744         * profiler.c: Don't put a . in front of types that are not in a
5745         namespace.
5746
5747 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
5748
5749         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
5750
5751 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
5752
5753         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
5754         #76436.
5755         (mono_marshal_get_ldflda_wrapper): Fix a warning.
5756
5757 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5758
5759         * assembly.c metadata-internals.h icall.c: Define an additional
5760         parameter for mono_assembly_name_parse_full, so we can avoid creating
5761         S.R.AssemblyName.Version when no version info wasn't passed.
5762         
5763 2005-10-09  Miguel de Icaza  <miguel@novell.com>
5764
5765         * class.c (mono_type_get_full_name): Reimplement method that was
5766         removed. 
5767
5768         * image.c: Some docs
5769
5770 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
5771
5772         * profiler.c (output_newobj_profile): Fix printing of Total memory
5773         on x86.
5774
5775 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5776
5777         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
5778
5779 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
5780
5781         * threads.c: remove debug output.
5782
5783 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5784
5785         * threads.c (mono_thread_manage): Fix crashes if more than 64
5786         threads need to be aborted. Hopefully fixes #75899.
5787
5788         * assembly.c (mono_stringify_assembly_name): New helper function.
5789
5790         * class.c: Use mono_stringify_assembly_name instead of the similar
5791         static function.
5792
5793         * assembly.h assembly.c: Add support for calling a postload search 
5794         hook if an assembly cannot be loaded.
5795
5796         * appdomain.c: Register new search hooks which call the AssemblyResolve
5797         events in AppDomain. Fixes #75231
5798
5799 2005-10-07  Martin Baulig  <martin@ximian.com>
5800
5801         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
5802         methods without debug info.
5803
5804 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
5805
5806         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
5807         wrappers.
5808
5809 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5810
5811         * file-io.c: now that we return symlinks, use lstat and, when the file
5812         is a symbolic link, stat, to get the file attributes. Also avoid the
5813         conversion to/from utf16/external.
5814
5815 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
5816
5817         * class.c (mono_class_layout_fields): Compute klass->has_references
5818         correctly if an embedded valuetype is not yet initialized. Fixes
5819         #76331.
5820
5821 2005-10-04  Martin Baulig  <martin@ximian.com>
5822
5823         * metadata.c
5824         (mono_metadata_load_generic_param_constraints): New public
5825         function; splitted the constraints loading out from
5826         mono_metadata_load_generic_params().
5827
5828         * class.c (mono_class_create_from_typedef): Call
5829         mono_metadata_load_generic_param_constraints() after setting up
5830         the type and creating our parent; fixes #75329.
5831
5832 2005-10-04  Martin Baulig  <martin@ximian.com>
5833
5834         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
5835         non-dynamic parent classes.
5836
5837 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
5838
5839         * file-io.c : win32 build fix (ETXTBSY seems not found).
5840
5841 2005-10-04  Martin Baulig  <martin@ximian.com>
5842
5843         * reflection.c
5844         (mono_image_get_methodspec_token): Make the cache actually work;
5845         fixes #75974.
5846
5847 2005-10-04  Martin Baulig  <martin@ximian.com>
5848
5849         * class.c (mono_class_name_from_token): Removed the unneccessary
5850         `MonoGenericContext *' argument.
5851
5852 2005-10-04  Martin Baulig  <martin@ximian.com>
5853
5854         * loader.c
5855         (method_from_methodspec): Make the caching work again; fixes the
5856         performance regression from #76262.
5857
5858 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5859
5860         * file-io.c:
5861         * file-io.h:
5862         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
5863         GetFileSystemEntries that performs the same work but without going
5864         into io-layer, locking, etc.
5865
5866 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
5867
5868         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
5869         ThreadState_Stopped as well. Fixes #76047.
5870
5871 2005-09-29  Martin Baulig  <martin@ximian.com>
5872
5873         * class.c
5874         (inflate_generic_context): If the new context has a `gmethod', set
5875         its `container' that that gmethod's `container'.
5876
5877         * metadata.c
5878         (mono_metadata_parse_generic_param): Simplify things;
5879         `generic_container = generic_context->container;' is just fine.
5880
5881         * loader.c (method_from_methodspec): Code cleanups.
5882
5883 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
5884
5885         * decimal.c: fix warning (and let gcc generate correct
5886         code on ARM with optimizations).
5887
5888 2005-09-28  Martin Baulig  <martin@ximian.com>
5889
5890         * loader.c
5891         (method_from_memberref): Added `MonoGenericContext *class_context'
5892         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
5893         (method_from_methodspec): If we're a memberref, use the enclosing
5894         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
5895
5896 2005-09-28  Martin Baulig  <martin@ximian.com>
5897
5898         * object.c (mono_runtime_invoke_array): Added support for
5899         MONO_TYPE_GENERICINST; fixes #75917.
5900
5901 2005-09-27  Martin Baulig  <martin@ximian.com>
5902
5903         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
5904         `k->byval_arg.type' to determine the actual type.
5905
5906         * loader.c (method_from_methodspec): Removed some hacks.
5907
5908 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
5909
5910         * class-internals.h (mono_field_is_deleted): Do the test for
5911         rtspecialname before we check the actual name of the field. This
5912         prevents us from dereferencing a pointer into the string table,
5913         saving us from accessing a few pages
5914
5915         * *.c: Replace the use of {Enter,Leave}CriticalSection with
5916         macros. This will allow a deadlock debugger to easily be plugged
5917         in.
5918
5919 2005-09-27  Martin Baulig  <martin@ximian.com>
5920
5921         * loader.c (method_from_methodspec): Create a "signature"
5922         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
5923
5924 2005-09-27  Martin Baulig  <martin@ximian.com>
5925
5926         * class.c
5927         (inflate_generic_class): Correctly set the new context's
5928         container.
5929
5930         * loader.c
5931         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
5932         instead of a `MonoGenericContext *'.
5933         (mono_method_signature_full): Take a `MonoGenericContainer *'
5934         instead of a `MonoGenericContext *'.
5935
5936         * metadata.c
5937         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
5938         instead of a `MonoGenericContext *'.
5939         (mono_metadata_parse_method_signature_full): Likewise.
5940
5941 2005-09-26  Martin Baulig  <martin@ximian.com>
5942
5943         * class.c
5944         (mono_class_from_generic_parameter): Set `klass->generic_container'
5945         (mono_class_from_generic_parameter): Likewise.
5946         (mono_bounded_array_class_get): We inherit the generic container
5947         from the element class.
5948
5949         * loader.c
5950         (find_method, find_method_in_class): Take a `MonoGenericContext *'
5951         argument rather than computing it here.
5952         (method_from_memberref): Correctly set the generic context before
5953         parsing the signature.  Fixes #75681.
5954
5955 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
5956
5957         * object.c (mono_class_has_special_static_fields): Fix warnings.
5958
5959 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5960
5961         * assembly.c: Add parse_public_key function, to
5962         par the public keys. Also added mono_assembly_name_parse_full,
5963         to define it the parsed key should be freed or not.
5964         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
5965         to parse a long format assembly name.
5966         * metadata-internals.h: Keep mono_assembly_name_parse_full as
5967         private, since calling it to preserve the key requires
5968         freeing it manually.
5969         
5970 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
5971
5972         * locales.c : removed HAVE_ICU part.
5973
5974 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
5975
5976         * object.c (mono_class_create_runtime_vtable): Avoid calling 
5977         field_is_special_static if the klass has no special static fields.
5978
5979         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
5980         (MonoCachedClassInfo): Likewise.
5981
5982         * object.c (mono_class_has_special_static_fields): New helper function.
5983
5984 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
5985
5986         * class.c (mono_class_create_from_typedef): Don't call 
5987         interfaces_from_typedef_full for enums.
5988         (mono_class_create_from_typedef): Compute the base types of enums directly
5989         without calling mono_class_setup_fields ().
5990         (mono_class_find_enum_basetype): New helper function.
5991
5992         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
5993         one place inside the string heap.
5994         
5995 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
5996
5997         * class.c: locking fixes, code cleanups, some docs added.
5998         Allocate some data structures in the image mempool.
5999
6000 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6001
6002         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6003         the example code.
6004         
6005 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
6006
6007         * class-internals.h, class.c, reflection.c: reduce memory taken by
6008         MonoClass.
6009
6010 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
6011
6012         * metadata.c, metadata.h, loader.h: documentation updates, code and
6013         API cleanups.
6014
6015 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6016
6017         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6018         the example code.
6019
6020         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
6021         page faults caused by the runtime while reading metadata.
6022
6023 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6024
6025         * socket-io.c: the field names were changed 3 months ago and no one
6026         realized until bug #76077 got filed!
6027
6028 2005-09-20  Martin Baulig  <martin@ximian.com>
6029
6030         * icall.c (assembly_icalls): Removed some unused debugger icalls.
6031
6032 2005-09-20  Martin Baulig  <martin@ximian.com>
6033
6034         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
6035         write the rank into the class entry.
6036
6037 2005-09-20  Martin Baulig  <martin@ximian.com>
6038
6039         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
6040
6041 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
6042
6043         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6044
6045         * icall.c (custom_attrs_defined_internal): New icall.
6046
6047         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
6048         function.
6049         (mono_custom_attrs_construct_by_type): New helper function.
6050
6051 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
6052
6053         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
6054         terminate the resulting string. Fixes #76123.
6055
6056 2005-09-16  Martin Baulig  <martin@ximian.com>
6057
6058         * mono-debug.c
6059         (mono_debug_add_method): Ignore inflated methods for the moment.
6060
6061 2005-09-14  Martin Baulig  <martin@ximian.com>
6062
6063         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
6064
6065 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
6066
6067         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
6068         return a success/failure indication.
6069         (mono_metadata_interfaces_from_typedef_full): Ditto.
6070         (get_constraints): Ditto.
6071
6072 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
6073
6074         * marshal.c (emit_marshal_array): Fix handling of null arrays.
6075         
6076         * marshal.c (emit_marshal_array): Add support for returning string
6077         arrays from delegates. Fixes #76063.
6078
6079         * marshal.c: Use the emit_ldloc/stloc macros where possible.
6080
6081 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
6082
6083         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
6084         icall.
6085
6086 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
6087
6088         * reflection.c icall.c: Fix after mono_get_exception_type_load
6089         signature change.
6090
6091         * assembly.c (mono_assembly_get_assemblyref): New helper function.
6092         (mono_assembly_load_reference): Use the new helper.
6093
6094         * class-internals.h (MonoLoaderError): New structure containing 
6095         information about type loading errors.
6096
6097         * class-internals.h loader.c: Add APIs to store per-thread loader
6098         error information.
6099
6100         * loader.c class.c: Set the loader error if needed.
6101
6102         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
6103
6104 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
6105
6106         * decimal.c: fixed to handle the broken ARM fp format.
6107
6108 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
6109
6110         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
6111         broken.
6112
6113 2005-09-06  Martin Baulig  <martin@ximian.com>
6114
6115         * domain.c (supported_runtimes): Added v2.0.50727.
6116
6117 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
6118
6119         * culture-info.h: reduce the size of some structures.
6120
6121 2005-09-05  Martin Baulig  <martin@ximian.com>
6122
6123         Reflect latest API changes in the August CTP.
6124
6125         * icall.c
6126         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
6127         ("MonoType.HasGenericArguments"): Removed.
6128         ("MonoMethod.BindGenericParameters"): Renamed to
6129         "MakeGenericMethod".
6130         ("MethodBuilder.BindGenericParameters"): Renamed to
6131         "MakeGenericMethod".    
6132
6133 2005-09-05  Martin Baulig  <martin@ximian.com>
6134
6135         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
6136
6137 2005-09-05  Martin Baulig  <martin@ximian.com>
6138
6139         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6140
6141         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
6142         generic_container is non-NULL.
6143
6144 2005-09-05  Martin Baulig  <martin@ximian.com>
6145
6146         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6147
6148         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
6149
6150 2005-08-29  Michal Moskal  <malekith@nemerle.org>
6151
6152         * reflection.c (encode_locals,
6153         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
6154         for large generic types.
6155
6156 2005-09-05  Martin Baulig  <martin@ximian.com>
6157
6158         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6159
6160         * class.c (mono_dup_array_type): New public method.
6161         (mono_metadata_signature_deep_dup): New public method.
6162         (dup_type): Correctly duplicate array and function types.
6163
6164 2005-09-05  Martin Baulig  <martin@ximian.com>
6165
6166         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6167
6168         * reflection.c (get_default_param_value_blobs): Handle generic types
6169         and generic methods.
6170
6171 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
6172
6173         * class.c: Fixed error reporting (method/class were inversed) for 
6174         inheritance demands.
6175         * security-manager.c|h: Added the AppDomain when calling the managed
6176         System.Security.SecurityManager.InheritanceDemand method.
6177
6178 2005-09-01  Raja R Harinath  <rharinath@novell.com>
6179
6180         * reflection.c (encode_marshal_blob): 'marshaltype' and
6181         'marshaltyperef' are alternate sources for the custom marshaler
6182         name.
6183
6184 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
6185
6186         * class.c: fix creation of array classes with rank == 1
6187         (patch by Ankit Jain <jankit@novell.com>).
6188
6189 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
6190
6191         * object.c: fix check for creating the bound data for arrays vs
6192         szarrays.
6193
6194 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6195
6196         * object.c: configuration file name is now based on the executable name,
6197         not the image name. Fixes bug #75931.
6198
6199 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
6200
6201         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
6202         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
6203
6204 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
6205
6206         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6207
6208 2005-08-24  Ankit Jain  <jankit@novell.com>
6209             Raja R Harinath  <rharinath@novell.com>
6210
6211         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6212           called by it recursively.
6213           (mono_class_init): Remove special case in pending_init handling, since it's
6214           superseded by the fix to mono_class_from_typeref.
6215
6216 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6217
6218         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6219         BROKEN_THREAD_START stuff.
6220
6221 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6222
6223         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6224         trampoline.
6225
6226         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6227         
6228         * object.c (mono_delegate_ctor): Replace the original function address with
6229         a delegate trampoline.
6230
6231 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6232
6233         * icall.c: add boolean argument to base64_to_byte_array and 
6234         InternalFromBase64String to control whether a whitespace-only string
6235         is allowed (or should casue a FormatException to be thrown). We need
6236         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6237         to match the MS behaviour in both profiles.
6238         * appdomain.c: Bump corlib version.
6239
6240 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6241
6242         This patch implements a big portion of publisher policy
6243         support, used to bind assembly versions and redirect
6244         one assembly from version A to version B.
6245
6246         * assembly.c:
6247         New GSList loaded_assembly_bindings, for storing the cached
6248         assembly bindings.
6249         (assembly_binding_maps_name): New static function for checking if a 
6250         assembly binding information maps an assembly name.
6251         (mono_assembly_binding_info_free): New function for freeing
6252         assembly binding information resources.
6253         (get_publisher_policy_info): New static function for retrieving 
6254         assembly binding information from a MonoImage.
6255         (compare_versions): New static function for comparing an assembly
6256         binding information data and the version of an assembly name.
6257         (check_policy_versions): New static function for checking if an
6258         assembly binding info mapping an assembly name is valid for it.
6259         (mono_assembly_load_publisher_policy): New static function for
6260         loading the 'policy.major.minor.MyAssembly' image for an assembly
6261         with an assembly name 'aname'.
6262         (mono_assembly_bind_version): New static function for updating
6263         assembly redirection.
6264         (mono_assembly_apply_binding): New static function for applying
6265         assembly binding.
6266         (search_binding_loaded): New static function for searching 
6267         loaded assembly binding infos in the cache domain.
6268         (mono_assembly_load_full): Don't apply assembly binding for
6269         reflection only assemblies.
6270
6271         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6272         which contains information about assembly binding. Also
6273         declare signature for mono_config_parse_publisher_policy ()
6274         function, used to retrieve pub policy info.
6275         
6276         * mono-config.c:
6277         (publisher_policy_start): New static function used to parse publisher 
6278         policy config files.
6279         (publisher_policy_parser): New static MonoParseHandler containing 
6280         the functions used when parsing config files.
6281         (mono_config_parse_publisher_policy): New function for parsing
6282         publisher policy files.
6283         
6284 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6285
6286         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6287
6288         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6289
6290         * object.c (mono_get_addr_from_ftnptr): New helper function.
6291
6292         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6293
6294         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6295
6296 2005-08-19  Dick Porter  <dick@ximian.com>
6297
6298         * threads.c, threads.h, appdomain.c, appdomain.h,
6299         profiler-private.h, monitor.c, object.c, object-internals.h,
6300         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6301         store the thread ID, so it can hold a 64 bit value if needed.
6302
6303 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6304
6305         * reflection.c (mono_reflection_create_dynamic_method): Store the
6306         handle class into the method references as well so ldtoken works in
6307         dynamic methods.
6308
6309         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6310         types.
6311
6312 2005-08-19  Ankit Jain <jankit@novell.com>
6313
6314         Fix #75847.
6315         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6316           here rather than using the method signature of a arbitrary function
6317           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6318           two arguments.
6319           Hack done with Harinath.
6320
6321 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6322
6323         * threadpool.c: disable printing stack traces when we get a exception
6324         in a threadpool thread. I need to do more testing to figure out which
6325         cases actually print this. Fixes bug #75828.
6326
6327 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6328
6329         * icall.c: there might be ignored whitespace after the last '='. This
6330         fixes length computation and bug #75840.
6331
6332 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6333
6334         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6335         well. Fixes #75809.
6336
6337         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
6338         #75784.
6339         
6340         * reflection.c (create_custom_attr_data): Ditto.
6341
6342 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
6343
6344         * locales.c, culture-info.h : removed RegionLCIDMap.
6345         * culture-info-tables.h : regenerated.
6346
6347 2005-08-16  Martin Baulig  <martin@ximian.com>
6348
6349         * class.c (mono_type_get_name_recurse): Small fix.
6350
6351 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6352
6353         * locales.c : indentation fixie.
6354
6355 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6356
6357         * object-internals.h,
6358           locales.h,
6359           locales.c,
6360           culture-info.h,
6361           icall.c : added RegionInfo table support.
6362         * culture-info-table.h : regenerated for region support.
6363
6364 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6365
6366         * reflection.c (resolve_object): handle all kinds of MonoMethod
6367         including generic ones
6368
6369 2005-08-12  Ankit Jain <jankit@novell.com>
6370
6371         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6372           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6373
6374 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6375
6376         * process.c: Don't close a thread handle when it's NULL. This is a
6377         workaround for bug #75733.
6378
6379 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6380
6381         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6382
6383 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6384
6385         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6386
6387 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6388
6389         * threadpool.c: if a work item in the thread pool has a callback that
6390         catches a exception, don't propagate it after invoking the callback.
6391         Fixes bug #75336.
6392
6393 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6394
6395         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6396
6397         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6398
6399         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6400
6401         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6402
6403 2005-08-03  Ankit Jain  <jankit@novell.com>
6404
6405         Fix #75683.
6406         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6407           PInvoke calling convention is 0.
6408
6409 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6410
6411         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6412         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6413
6414 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6415
6416         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6417         to handle threads not started by the GC (patch by Michael Meeks
6418         <michael.meeks@novell.com>).
6419
6420 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6421
6422         * reflection.c: Make buffer used in emitting types larger for some
6423         big generic types (patch by Michal Moskal).
6424
6425 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6426
6427         * mono-debug.c: Fix some (not all) alignment problems.
6428
6429 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6430
6431         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6432         Invoke mono_image_load_from_data_full passing the refonly
6433         parameter.
6434
6435         * assembly.c
6436         (mono_assembly_open_from_bundle): Add the refonly argument, 
6437         in order to pass it to other methods it calls to.
6438         (do_mono_assembly_open): Add the refonly argument, in order 
6439         to pass it to other methods it calls to.
6440         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6441         the refonly parameter to it.
6442
6443         * image.c: Add loaded_images_refonly_hash and
6444         loaded_images_refonly_guid_hash to cache the reflection
6445         only loaded images.
6446         (mono_images_init): Initialize the hash tables used for
6447         caching the reflection only images.
6448         (load_modules): Invoke mono_image_open_full passing the refonly
6449         parameter to load the modules the correct way.
6450         (build_guid_table): Add the refonly argument, to re-build the 
6451         correct hash table.
6452         (do_mono_image_open): Added the refonly argument, in order to
6453         define it for the loaded image.
6454         (mono_image_loaded_full): New function, which receives an
6455         additional parameter to look for the image in the refonly or
6456         non-refonly section.
6457         (mono_image_loaded): Updated, using mono_image_loaded_full.
6458         (mono_image_loaded_by_guid_full): The same case that happens
6459         with mono_image_loaded_full.
6460         (mono_image_loaded_by_guid): Likewise.
6461         (register_image): Use the ref_only variable inside MonoImage
6462         to decide in which hash table store the current image.
6463         (mono_image_open_from_data_full): Rename
6464         mono_image_open_from_data to mono_image_open_from_data_full,
6465         adding the refonly argument, to define the ref_only variable 
6466         inside MonoImage.
6467         (mono_image_open_from_data): Return 
6468         mono_image_open_from_data_full.
6469         (mono_image_open_full): Rename mono_image_open to
6470         mono_image_open_full, receiving the new refonly argument,
6471         to pass it to inner methods.
6472         (mono_pe_file_open): Update this function, to open
6473         a MonoImage as a non-refonly image.
6474         (mono_image_close): Use the refonly variable inside
6475         MonoImage to remove the image from the correct caches.
6476
6477         * image.h: Add the signatures of mono_image_open_full,
6478         mono_image_open_from_data_full, mono_image_loaded_full,
6479         mono_image_loaded_by_guid_full.
6480
6481         * metadata-internals.h: Add the ref_only field to 
6482         MonoImage.
6483         
6484 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6485
6486         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
6487         Fix the last behavior, which used to load the assemblies and
6488         extract MonoReflectionAssemblyName information, instead of
6489         extract it from the metadata tables. Needed for Reflection
6490         Only assemblies.
6491         
6492 2005-07-29  Martin Baulig  <martin@ximian.com>
6493
6494         * mono-debug-debugger.c
6495         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
6496         not initialized.
6497
6498         * mono-debug.c
6499         (mono_debug_address_from_il_offset): Check whether we have
6500         debugging support before attempting to take the lock.
6501         (mono_debug_source_location_from_address): Likewise.
6502         (mono_debug_source_location_from_il_offset): Likewise.
6503         (mono_debug_il_offset_from_address): Likewise.
6504         (mono_debug_address_from_il_offset): Likewise.
6505
6506 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
6507
6508         * class.c (mono_class_from_name_case): Add support for dynamic images.
6509         Fixes #75650.
6510
6511         * object.c (mono_class_compute_gc_descriptor): Add a workaround
6512         for #75479.
6513
6514 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6515         
6516         * reflection.c (mono_method_get_object): Fix warning.
6517
6518 2005-07-28  Martin Baulig  <martin@ximian.com>
6519
6520         * mono-debug.c
6521         (mono_debug_add_wrapper): Also write the wrapper type.
6522
6523 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6524
6525         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
6526         
6527         * class.c (mono_class_init): Avoid reading nested classes if the AOT
6528         data indicates the class has none.
6529
6530 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
6531
6532         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
6533         loader lock with the debugger lock. Prevents deadlocks for beagle.
6534
6535         Beagle can now run on an smp box for a weekend without any
6536         issues. Woohoo!
6537
6538 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
6539
6540         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
6541         in a module. Fixes #75629.
6542
6543 2005-07-26  Martin Baulig  <martin@ximian.com>
6544
6545         * mono-debug.c (mono_debug_add_wrapper): New static method.
6546         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
6547         interncall or a wrapper.
6548
6549         * mono-debug.h (MonoDebugWrapperData): New public typedef.
6550         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
6551         (MONO_DEBUGGER_VERSION): Bump to 51.
6552
6553         * mono-debug-debugger.c
6554         (mono_debugger_add_type): Removed this empty function.
6555         (mono_debugger_add_method): Likewise.
6556
6557 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
6558
6559         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
6560         before accessing method->slot.
6561
6562 2005-07-21  Jb Evain  <jbevain@gmail.com>
6563
6564         * reflection.c (method_encode_clauses/class): Handle filters clauses.
6565         Fixes #75010.
6566
6567 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
6568
6569         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
6570         #75587.
6571
6572 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
6573
6574         * image.h image.c: Add mono_image_get_guid () API function.
6575
6576 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
6577
6578         There were issues when multiple threads tried to load
6579         assemblies. A deadlock was created between assemblies_mutex and
6580         mono_domain_assemblies_lock. This fixes the issue by making the
6581         assembly ref counting be lock free. See bug 75586.
6582         
6583         * image.c (mono_image_close): The add ref function here was using
6584         Interlocked operations while the unref was using a mutex and a
6585         --. I don't think this was ever a bug that would be exposed in a
6586         non-pendantic way (ie, by an embedder doing a ref on one thread
6587         and an unref on another), but for the sake of correctness, this is
6588         now Interlocked.
6589
6590         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
6591         (mono_assembly_load_reference): Call mono_assembly_addref rather
6592         than touching the refcount ourselves.
6593         (mono_assembly_close): Use InterlockedDecrement to unref the
6594         assembly. Don't acquire the lock unless it is actually needed.
6595
6596 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6597
6598         * class.c (mono_class_layout_fields): Fix calculation of has_references
6599         for generic types.
6600
6601 2005-07-12  Martin Baulig  <martin@ximian.com>
6602
6603         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6604
6605         * metadata.c
6606         (mono_type_hash): Provide better hashing for generic instances.
6607         (mono_generic_inst_hash): Improve hashing.
6608         (mono_generic_class_hash): Likewise.
6609
6610         * reflection.c (mymono_metadata_type_hash): Improve hashing for
6611         generic instances.
6612
6613 2005-07-12  Martin Baulig  <martin@ximian.com>
6614
6615         * reflection.c (mono_reflection_create_runtime_class): Remove the
6616         hack for generic type definitions and non-`Run' assemblies.
6617         (mono_reflection_bind_generic_parameters): Also use
6618         `klass->wastypebuilder' to check for TypeBuilders.
6619
6620 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6621
6622         * class.c (mono_class_layout_fields): Fix calculation of has_references
6623         for generic types.
6624
6625         * class.c (inflate_generic_class): Fix a leak.
6626         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
6627         for generic types.
6628
6629 2005-07-11  Martin Baulig  <martin@ximian.com>
6630
6631         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
6632         on error.
6633
6634 2005-07-11  Martin Baulig  <martin@ximian.com>
6635
6636         * loader.c (find_method): Also lookup in
6637         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
6638
6639 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6640
6641         * appdomain.c (mono_domain_unload): Don't free the error message
6642         before passing it to mono_get_exception_...
6643
6644         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
6645         
6646 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
6647
6648         * threads.c: try to better guess an available RT signal (bug #75387).
6649
6650 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6651
6652         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
6653         and CACHE_OBJECT.
6654
6655 2005-07-07  Martin Baulig  <martin@ximian.com>
6656
6657         * class.c (mono_type_get_name_full): Return NULL for
6658         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
6659         fixes #75408.
6660
6661 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6662
6663         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
6664         exit the appdomain as well being aborted.
6665
6666         * threadpool.c: Create all threadpool threads inside the root appdomain, and
6667         change back to the root domain after calling managed code. This enables
6668         appdomains using threadpools to be unloaded.
6669
6670 2005-07-07  Martin Baulig  <martin@ximian.com>
6671
6672         * class-internals.h
6673         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
6674         into `MonoDynamicGenericClass' since we only need it for dynamic
6675         types.
6676
6677         * reflection.c (mono_class_bind_generic_parameters): We don't need
6678         to compute the `parent' here.
6679
6680 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
6681
6682         * culture-info-table.h : regenerated.
6683
6684 2005-07-06  Martin Baulig  <martin@ximian.com>
6685
6686         * icall.c
6687         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
6688
6689         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
6690
6691 2005-07-06  Martin Baulig  <martin@ximian.com>
6692
6693         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
6694         we're doing a signature-only comparision; fixes #74945.
6695
6696 2005-07-06  Martin Baulig  <martin@ximian.com>
6697
6698         * class-internals.h (MonoGenericClass): Moved some things out into
6699         a new `MonoInflatedGenericClass' type.  
6700         (MonoInflatedGenericClass): New type; the `klass' of a
6701         `MonoGenericClass' is now computed lazyly in
6702         mono_get_inflated_generic_class().      
6703
6704         * class.c (mono_get_inflated_generic_class): New public function.
6705         (mono_class_inflate_generic_method): Removed the unused
6706         `MonoClass *' argument.
6707         (setup_generic_vtable): Don't call mono_get_inflated_method() on
6708         all the methods.
6709         (mono_class_create_generic): Make this static and merge it with
6710         mono_class_create_generic_2(); we're now called automatically from
6711         mono_get_inflated_generic_class().
6712
6713         * loader.c (mono_method_signature): Call
6714         mono_get_inflated_method() here.
6715
6716 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
6717
6718         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
6719         type of fields with RVA.
6720
6721         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
6722         for this pseudo class.
6723         (my_mono_class_from_generic_parameter): Likewise.
6724         (mono_class_init): Allow interfaces to have cctors.
6725
6726 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6727
6728         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
6729         lazily for AOT methods.
6730
6731 2005-07-05  Martin Baulig  <martin@ximian.com>
6732
6733         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
6734         returns FALSE for a successful match, not TRUE.
6735
6736 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6737
6738         * loader.c (mono_method_get_index): Optimize this a bit.
6739
6740 2005-07-04  Martin Baulig  <martin@ximian.com>
6741
6742         * class.c
6743         (class_compute_field_layout): Move the check for generic type
6744         definitions into mono_class_layout_fields().  Fixes #74684.
6745         (mono_class_from_generic_parameter): Correctly compute
6746         `klass->parent'; fixes #75457.
6747
6748         * reflection.c (register_assembly, register_module): Make sure
6749         `domain->rejobject_hash' is already created.
6750
6751 2005-07-02  Martin Baulig  <martin@ximian.com>
6752
6753         * class-internals.h
6754         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
6755         `MonoDynamicGenericClass'.      
6756
6757 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
6758
6759         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
6760         returned by a field getter is null, since null is a valid value.
6761
6762 2005-07-01  Martin Baulig  <martin@ximian.com>
6763
6764         * reflection.c (mono_reflection_generic_class_initialize): Update
6765         the `dgclass->fields [i].parent' to the correct class.
6766         (mono_image_get_fieldref_token): Use the declaring type, not the
6767         reflected type.
6768
6769 2005-07-01  Martin Baulig  <martin@ximian.com>
6770
6771         * loader.c (find_method): Also look in the interfaces; fixes #75429.
6772
6773 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
6774
6775         * threads.c (thread_cleanup): assert that thread != NULL
6776         (wait_for_tids_or_state_change): We were using the wrong variable
6777         when accessing wait->threads. `i' was always out of the bounds of
6778         the array.
6779
6780 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6781
6782         * loader.c: map user32 and kernel32 to libMonoSupportW
6783
6784 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
6785
6786         * appdomain.c (unload_thread_main): Mark this as WINAPI.
6787
6788 2005-06-28  Martin Baulig  <martin@ximian.com>
6789
6790         * loader.c (method_from_methodspec): Fix #75334.
6791
6792 2005-06-28  Martin Baulig  <martin@ximian.com>
6793
6794         Fix #74953 - Arrays now implement the generic IList<T> interface
6795         on the 2.0 platform.
6796
6797         * class-internals.h (MonoDefaults): Added `generic_array_class'.
6798
6799         * reflection.c (mono_class_bind_generic_parameters): New public
6800         function; similar to mono_reflection_bind_generic_parameters(),
6801         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
6802
6803         * domain.c (mono_init_internal): Try to initialize.
6804         `mono_defaults.generic_array_class' here; this'll only succeed if
6805         we're using the 2.0 corlib.
6806
6807         * icall.c
6808         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
6809         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
6810         (mono_lookup_internal_call): Added support for nested classes.
6811
6812         * loader.c
6813         (mono_get_method_from_token): Set `result->signature->pinvoke' if
6814         we're an interncall and have generic arguments.
6815
6816         * class.c
6817         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
6818         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
6819         instance of System.Array.InternalArray<T> for arrays, so they
6820         implement the generic IList<T> interface.
6821
6822 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
6823
6824         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
6825         (chastamar@yahoo.com). Fixes #75374.    
6826
6827 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
6828
6829         * culture-info-table.h: regenerated.
6830
6831 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6832
6833         * icall.c: handle spaces correctly for base64 strings.
6834
6835 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
6836
6837         * *.c: Kill some warnings.
6838
6839 2005-06-23  Duncan Mak  <duncan@novell.com>
6840
6841         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
6842         that this builds on Solaris 10 (x86).
6843
6844 2005-06-23  Martin Baulig  <martin@ximian.com>
6845
6846         * class.c
6847         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
6848         generic type definitions.
6849
6850 2005-06-23  Martin Baulig  <martin@ximian.com>
6851
6852         Fix #75331.
6853
6854         * metadata.c (mono_class_get_overrides): Renamed to
6855         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
6856         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
6857         pass it to mono_get_method_full().
6858
6859 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
6860
6861         * reflection.c (mono_reflection_create_runtime_class): take the
6862         mono_domain_lock in this method. Prevents deadlocks
6863
6864 2005-06-22  Martin Baulig  <martin@ximian.com>
6865
6866         * loader.c (method_from_methodspec): Fix #75330.
6867
6868 2005-06-22  Martin Baulig  <martin@ximian.com>
6869
6870         * reflection.c (type_get_qualified_name): Use
6871         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
6872         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
6873         argument; use it if we don't have an assembly name.
6874
6875 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
6876
6877         * object.c: In mono_message_init, set "copy out" flag for in
6878         parameters with the [Out] flag.
6879
6880 2005-06-21  Martin Baulig  <martin@ximian.com>
6881
6882         * class.c
6883         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
6884         and MONO_TYPE_PTR.
6885
6886 2005-06-21  Martin Baulig  <martin@ximian.com>
6887
6888         * class.c (mono_class_init): Don't initialize `class->fields' for
6889         generic instances since they're initialized again in
6890         compute_field_layout(). 
6891         (compute_field_layout): Set the field's `generic_info' here; fix
6892         #75320. 
6893
6894 2005-06-21  Martin Baulig  <martin@ximian.com>
6895
6896         * class-internals.h
6897         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
6898
6899         * metadata.c (mono_metadata_generic_method_equal): Also
6900         distinguish the `generic_class'; fixes #75334.
6901
6902 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6903
6904         * domain.c:
6905         * appdomain.c:
6906         * domain-internals.h:
6907         * reflection.c: 'domain_assemblies' field is now protected by its own
6908         lock. Don't call into managed code to run the AssemblyLoad event if we
6909         now there are no registered delegates for it.
6910
6911 2005-06-20  Martin Baulig  <martin@ximian.com>
6912
6913         * class.c (mono_class_is_assignable_from): Use a custom version of
6914         mono_class_has_parent() to make things work for generic instances;
6915         fix #75300.
6916
6917 2005-06-20  Martin Baulig  <martin@ximian.com>
6918
6919         * loader.c (method_from_methodspec): Apply a patch from
6920         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
6921
6922 2005-06-20  Martin Baulig  <martin@ximian.com>
6923
6924         * class.c (mono_class_init): Reverted Zoltan's last change; it
6925         breaks generics.
6926
6927 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
6928
6929         * threads.c (wait_for_tids_or_state_change): Add missing locking.
6930
6931 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6932
6933         * socket-io.c: fix the index in the socket array for writable/error
6934         sockets. Fixes bug #75306.
6935
6936 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
6937
6938         * class.c (mono_class_init): Allow interfaces to have static ctors.
6939
6940 2005-06-17  Martin Baulig  <martin@ximian.com>
6941
6942         * loader.c (method_from_methodspec): Use `context->container' when
6943         parsing the `gmethod->inst'.
6944
6945 2005-06-17  Martin Baulig  <martin@ximian.com>
6946
6947         * class.c (mono_type_get_name_recurse): Don't add the assembly
6948         name for type arguments.
6949
6950 2005-06-15  Martin Baulig  <martin@ximian.com>
6951
6952         * reflection.c (mono_image_get_inflated_method_token): Encode
6953         correct klass; fixes #75260.
6954
6955 2005-06-13 Michal Moskal <malekith@nemerle.org>
6956
6957         * icall.c: Make GetCorrespondingMethod/Constructor take
6958         MonoReflectionMethod method not MonoMethod. Removed
6959         MonoType.GetCorrespondingField, and make
6960         MonoGenericType.GetCorrespondingField take name not
6961         MonoClassField.
6962
6963 2005-06-13  Michal Moskal <malekith@nemerle.org>
6964
6965         * reflection.c (field_encode_signature, encode_locals):
6966          Make sizes of buffers for types larger (for big generic types).
6967          (create_generic_typespec,
6968          mono_reflection_sighelper_get_signature_local,
6969          mono_reflection_sighelper_get_signature_field):
6970          Add asserts for too small buffers.
6971
6972 2005-06-15  Martin Baulig  <martin@ximian.com>
6973
6974         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
6975         if our parent is not a dynamic type.
6976
6977 2005-06-15  Martin Baulig  <martin@ximian.com>
6978
6979         * class-internals.h (MonoTypeNameFormat): New enum.
6980
6981         * class.c
6982         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
6983         (mono_type_get_full_name): Removed.
6984         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
6985         argument instead of the boolean's.
6986
6987         * icall.c (ves_icall_System_MonoType_getFullName):
6988         Added `gboolean assembly_qualified'.    
6989
6990         * reflection.h
6991         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
6992
6993         * reflection.c (mono_reflection_parse_type): Parse the new type
6994         name format.
6995
6996 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6997
6998         * icall.c: no need to convert from utf16 to utf8 and then back again
6999         after the call to GetLogicalDrives.
7000
7001 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7002
7003         * icall.c: frombase64. Fix problems exposed by new tests.
7004
7005 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7006
7007         * icall.c: added internal calls for converting char [] and strings in
7008         base64 into byte [].
7009
7010 2005-06-10  Martin Baulig  <martin@ximian.com>
7011
7012         * class.c (mono_class_create_generic_2): Read the nested classes
7013         from the metadata rather than from `gklass->nested_classes' since
7014         `gklass' might not be initialized yet.
7015
7016 2005-06-09  Duncan Mak  <duncan@novell.com>
7017
7018         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
7019         all public headers. Fixes #74919.
7020
7021 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
7022
7023         * domain.c: The key for proxy_vtable_hash is now a pointer
7024         array. Added new GHashFunc and GCompareFunc functions for this.
7025
7026         * class.h: The list of interfaces in MonoRemoteClass is known in
7027         advance and can't grow (we create a new MonoRemoteClass if needed),
7028         so now the interface array can be allocated together with
7029         MonoRemoteClass.
7030         
7031         * object.c: Added a new method create_remote_class_key.
7032         Fixed mono_remote_class so it does not depend on
7033         mono_upgrade_remote_class.
7034         Removed extend_interface_array.
7035         Added new method clone_remote_class(), which makes a copy of a remote
7036         class and adds a new interface or class to it.
7037         mono_upgrade_remote_class() now creates a new remote class (or gets
7038         it from the cache) if an vtable upgrade is needed. In this way
7039         we make sure that other objects sharing the same remote class
7040         don't get the new vtable with unwanted interfaces.
7041         
7042         * object-internals.h:
7043         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
7044         
7045         * marshal.c: Track changes in mono_upgrade_remote_class().
7046
7047 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
7048         * icall.c: Add runtime methods for obtaining members of inflated
7049         class, which were created from supplied non-inflated members. It
7050         is used in internal Get{Method,Constructor,Field} methods in
7051         System.Type
7052
7053 2005-06-09  Martin Baulig  <martin@ximian.com>
7054
7055         * reflection.c
7056         (mono_reflection_bind_generic_method_parameters): Fix #75169.
7057
7058 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7059         * reflection.c (mono_image_basic_init): Define
7060         Version in MonoDynamicAssembly. 
7061         
7062 2005-06-08  Martin Baulig  <martin@ximian.com>
7063
7064         Fix #75136.
7065
7066         * loader.c
7067         (mono_method_signature_full): New public method; takes a
7068         `MonoGenericContext *'.
7069         (find_method): Use mono_method_signature_full() and pass the
7070         klass'es context to it.
7071
7072         * class.c (mono_class_is_inflated_method): Use
7073         mono_method_signature_full() and pass the context to it.
7074
7075 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
7076
7077         * object.c: add proper locking in mono_remote_class_vtable(),
7078         fixes possible memory corruption.
7079
7080 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
7081
7082         * marshal.c (mono_remoting_marshal_init): set
7083         initialized after initialization.
7084
7085 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
7086
7087         * locales.c : hush.
7088
7089 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
7090
7091         * object.c (extend_interface_array): fix really silly
7092         memory corrupting / comparison bug.
7093
7094 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7095
7096         * reflection.c: Functions added to support the creation
7097         of CustomAttributeData, which includes Attribute data
7098         used by ReflectionOnly methods.
7099
7100         * reflection.h:  mono_reflection_get_custom_attrs_data and
7101          mono_custom_attrs_data_construct added (functions exposed).
7102
7103          * icall.c: Added mono_reflection_get_custom_attrs_data
7104          as icall.
7105         
7106 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
7107
7108         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
7109         lupus's request.
7110
7111 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
7112
7113         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
7114
7115         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
7116         dynamic DllImportAttribute.
7117
7118         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
7119         dynamic DllImportAttribute.
7120
7121         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
7122         Fixes #75162.
7123
7124 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7125
7126         * threads.c: avoid segfault when an unstarted thread is aborted.
7127
7128 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
7129
7130         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
7131         Returns the name and version of the runtime for reporting.
7132
7133 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7134
7135         * appdomain.c: bump corlib version.
7136         * object-internals.h: new field in MonoReflectionAssembly.
7137
7138 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7139
7140         * object-internals.h: Carlos forgot to add this field.
7141
7142 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7143
7144         * icall.c: Added create_version to create instances
7145         of Version of MonoReflectionAssemblyName. This change helps
7146         the AssemblyName tests to keep running fine.
7147         
7148 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
7149   
7150         * object.c (mono_method_return_message_restore): A somehow less
7151         intrusive fix for #75138.
7152
7153 2005-06-03  Raja R Harinath  <rharinath@novell.com>
7154
7155         * object.c (mono_method_return_message_restore): Fix computation
7156         of expected number of out args.
7157
7158 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7159
7160         * reflection.c (mono_image_get_method_info): Fix the case when the
7161         charset is empty.
7162
7163 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
7164
7165         * object.c: Added missing null check in
7166           mono_method_return_message_restore.
7167
7168 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7169
7170         * reflection.c (mono_image_get_method_info): Handle the case when
7171         dllentry is empty.
7172
7173 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
7174
7175         * object.c: When creating the vtable for a proxy, take into account
7176         all inherited interfaces, not only the ones registered in
7177         iclass->interfaces. This fixs bug #74996.
7178         Also, in mono_method_return_message_restore, verify that the array
7179         of out args has the expected lengh.
7180
7181 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7182
7183         * socket-io.c: update the timeout in Poll when the call is interrupte.
7184
7185 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7186
7187         * socket-io.c: support abort/suspend in Select_internal after last
7188         change.
7189
7190 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7191
7192         * threadpool.c: remove warning.
7193
7194 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7195
7196         * icall.c:
7197         * socket-io.[ch]: Select_internal uses poll() now when available, thus
7198         removing the 1024 limit from select(). Runtime part of the fix for
7199         bug #71203.
7200
7201 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7202
7203         * socket-io.c: when resolving the addresses for the same
7204         host returned by gethostname(), get the local IPs from the interface
7205         list. Loopback addresses are discarded if the are interfaces up with
7206         non-loopback ones. Fixes bug #63265.
7207
7208 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7209
7210         * appdomain.c, verify.c, object-internals.h, reflection.c:
7211         bumped corlib number to 36, and added new extra_flags field
7212         to ReflectionMethodBuilder and friends.  Fixes #75060.
7213
7214 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7215
7216         * gc.c: register a new weak link only if the object is non-null
7217         (fixes bug#75047).
7218
7219 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7220
7221         * culture-info.h : short time pattern too.
7222
7223 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7224
7225         * culture-info.h : expand long time pattern string length.
7226
7227 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7228
7229         * culture-info-table.h : update (more French date format; #72788).
7230
7231 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7232
7233         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7234         the method is static. Fixes #75029.
7235
7236 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7237
7238         * reflection.c: Update the table_idx field of method builders after
7239         saving the module, since it can change. This is a workaround for
7240         bug #74914. 
7241
7242 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7243
7244         * culture-info-table.h : update (additional French date format).
7245
7246 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7247
7248         * icall.c (ves_icall_type_Equals): Revert last change.
7249         
7250         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7251
7252         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7253
7254 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7255
7256         * class-internals.h: Added executioncontext_class field to 
7257         MonoDefaults structure.
7258         * domain.c: Cache System.Threading.ExecutionContext class in 
7259         mono_defaults.
7260         * object.c: Capture the ExecutionContext for asynchroneous calls in
7261          mono_async_result_new.
7262         * object-internals.h: Added execution_context and original_context 
7263         fields to MonoAsyncResult. Added execution_context to MonoThread.
7264         * security-manager.c|.h: Added mono_get_context_capture_method to 
7265         return the capture method (if required by the security manager or by
7266         the framework version used).
7267         * threadpool.c: Apply capture (if present) ExecutionContext in 
7268         mono_async_invoke and revert to original context after it completes.
7269
7270 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7271
7272         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7273
7274 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7275
7276         * culture-info-table.h : zh-CHT related workaround.
7277
7278 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7279
7280         * marshal.c (emit_marshal_custom): Add some error checking and call the
7281         methods in the ICustomMarshaler interface. Fixes #74875.
7282         
7283         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7284         native->managed wrappers.
7285
7286 2005-05-12  Martin Baulig  <martin@ximian.com>
7287
7288         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7289         here and use the loader lock.
7290
7291         * mono-debug.c: Properly lock when the debugger is not attached.
7292         (mono_debug_init): Release the initial lock if we're not running
7293         in the debugger.
7294
7295 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7296
7297         * marshal.c (emit_marshal_custom): Pass through NULL values without
7298         calling the custom marshalling routines.
7299
7300         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7301         conversion in structures. Fixes #74882.
7302
7303 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7304
7305         * culture-info-table.h : zh-* cultures were missing.
7306
7307 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7308
7309         * threads.c: Added a new event background_change_event which is signaled
7310         when a thread changes its background mode.
7311         Moved here several checks previously done in managed code. The checks
7312         require the thread lock, and using the thread lock in managed code
7313         can result in deadlocks.
7314         Merged Start_internal and Thread_internal into a single method. Now 
7315         Thread_internal does all work of creating and starting a thread.
7316         Added icalls for setting and getting the state of the object. Moved from
7317         managed code to avoid locking there.
7318         Added wait_for_tids_or_state_change() which is called instad of
7319         wait_for_tids when waiting for non-backround threads to end. This method
7320         will return if one of the threads ends or the background_change_event
7321         is signaled.
7322         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7323         the background mode. This method signals the background_change_event
7324         event.
7325         * icall.c:
7326         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7327         removed Start_internal.
7328         
7329 2005-05-11  Martin Baulig  <martin@ximian.com>
7330
7331         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7332         to order of some fields to get proper alignment on 64-bit machines.
7333
7334 2005-05-11  Martin Baulig  <martin@ximian.com>
7335
7336         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
7337         changes as they're broken and completely fuck up the debugger.
7338
7339         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
7340
7341 2005-05-10  Martin Baulig  <martin@ximian.com>
7342
7343         * reflection.c (mono_reflection_generic_class_initialize): Don't
7344         call mono_class_setup_parent() here.
7345
7346 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7347
7348         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7349         send/receive timeout use an integer in milliseconds. We were using a
7350         struct timeval.
7351
7352 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7353
7354         * locales.c:
7355         (internal_get_cultures): reserve the first slot of the array for the
7356         InvariantCulture, which will be filled in managed code.
7357
7358 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7359
7360         * reflection.c (mono_image_fill_module_table): Initialize the
7361         GENERATION field as well.
7362
7363 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7364
7365         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7366         Monitor.Enter on the object.
7367
7368 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7369
7370         * threads.c: Enable the wait for running threads when exiting.
7371         * icall.c: Suspend all threads before exiting.
7372
7373 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7374
7375         * assembly.c (mono_assembly_load_reference): Fix warning.
7376
7377 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7378
7379         * threadpool.c: changed the default number of threads per cpu. From now
7380         on, the default will be 20 + (5 * number of cpus) instead of 50.
7381
7382 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7383
7384         * loader.c (mono_method_get_signature_full): Add locking here.
7385
7386 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7387
7388         * appdomain.c: Moved methods for parsing and freeing assembly
7389         names to assembly.c.
7390         * assembly.c, domain-internals.h: Created public methods for parsing
7391         assembly names. Fixed mono_assembly_load_with_partial_name:
7392         it now finds the best match, taking into account the version,
7393         token and culture specified in the partial name. Also return
7394         the latest version if no version information is specified.
7395
7396 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7397
7398         * threadpool.c: replace check for SocketAsyncCall class.
7399
7400 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7401
7402         * threadpool-internals.h:
7403         * Makefile.am: added threadpool-internals.h
7404
7405         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7406         that happen in threadpool threads (tested on MS).
7407         (mono_thread_pool_remove_socket): new function that dispatch any pending
7408         AIO call on a socket that is closing. By now only epoll really needs it,
7409         as select/poll wake up when the socket closes.
7410
7411
7412         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7413
7414 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7415
7416         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7417
7418 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7419
7420         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7421
7422 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7423
7424         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7425         has an abort request, convert it into a suspend request.
7426
7427 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7428
7429         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7430         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7431         is not supported yet.
7432
7433 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7434
7435         * image.c: register assemblies loaded from data (bundles) in the loaded
7436         assemblies hash. Fixes bug #74772.
7437
7438 2005-04-29  Martin Baulig  <martin@ximian.com>
7439
7440         * class.c (mono_type_get_name_recurse): Update to the new naming
7441         schema from the latest .NET 2.x beta2.
7442         (mono_class_setup_vtable_general): If we're a generic instance,
7443         copy the vtable from our generic type definition and inflate all
7444         the methods in it.
7445
7446         * loader.c (find_method): Update to the new naming schema from the
7447         latest .NET 2.x beta2.
7448
7449 2005-04-29  Raja R Harinath  <harinath@gmail.com>
7450
7451         * class.c (mono_class_init): Add a mono_loader_unlock to the
7452         #74734 fix.
7453
7454 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
7455
7456         * icall.c (ves_icall_System_Environment_Exit): Remove the 
7457         suspend_all_other_threads () call for the time being, since it can hang.
7458
7459         * threads.c (mono_thread_manage): Similarly, disable the waiting for
7460         the background threads to exit, since it can also hang.
7461
7462         * class.c (mono_class_init): Applied patch from Ankit Jain 
7463         (radical@gmail.com). Avoid pending init errors when a field refers
7464         to a nested class using a typeref. Fixes #74734.
7465
7466         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
7467         this for dynamic modules.
7468
7469 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7470
7471         * threads.c: don't wait for threads that are in the process of aborting
7472         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
7473         and waiting for background threads to finish. This makes xsp and
7474         mod-mono-server exit without random length delays and/or hangs.
7475
7476 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7477
7478         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
7479
7480 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
7481
7482         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
7483         dynamic types to prevent infinite loops. Fixes #74727.
7484
7485         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
7486         ..._is_assignable_to.
7487
7488 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
7489
7490         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
7491
7492 2005-04-25  Martin Baulig  <martin@ximian.com>
7493
7494         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
7495
7496         * domain.c
7497         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
7498
7499         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
7500
7501         * reflection.c (build_compressed_metadata): Set metadata header
7502         version to 2.0.
7503
7504 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
7505
7506         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
7507         number into an integral and a decimal part. Fixes #70473.
7508
7509         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
7510
7511 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
7512
7513         * culture-info-table.h : reflected the latest locale-builder output.
7514
7515 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7516
7517         * threadpool.c: check for SuspendRequested too when deciding if
7518         mono_thread_interruption_checkpoint should be called.
7519
7520 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7521
7522         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
7523         * threads.c: remove interruption_mutex and use Interlocked instead. When
7524         suspending all the threads, wait for all the suspended events at once.
7525         If we're shutting down and get an APC that is going to be queued,
7526         call mono_thread_execute_interruption immediately, as the thread might
7527         be sleeping on a pthread condition or mutex.
7528
7529         * icall.c: call mono_runtime_set_shutting_down before suspending the
7530         threads.
7531
7532         Fixes bug #74693. And now xsp is happier when exiting.
7533
7534 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
7535
7536         * loader.c (mono_stack_walk): Fix #74690.
7537
7538 2005-04-22  Martin Baulig  <martin@ximian.com>
7539
7540         * mono-debug.h (MonoDebugMethodJitInfo): Added
7541         `MonoDebugMethodJitInfo *jit'.
7542
7543         * mono-debug.c (mono_debug_read_method): Cache the
7544         MonoDebugMethodJitInfo in `address->jit'.
7545         (mono_debug_free_method_jit_info): New public method.
7546
7547 2005-04-22  Martin Baulig  <martin@ximian.com>
7548
7549         * class.c (mono_class_is_assignable_from): Disallow
7550         type parameter -> interface.
7551
7552 2005-04-21  Dick Porter  <dick@ximian.com>
7553
7554         * threads.c (mono_thread_create): Turn an assertion into an error.
7555
7556 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
7557
7558         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
7559         
7560         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
7561         Fix some gcc 4.0 warnings.
7562
7563 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
7564
7565         * file-io.c: fix alt dir separator char on unix systems
7566         and cleanup (fixes bug #71214).
7567
7568 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
7569
7570         * marshal.c: Use CALLVIRT instead of CALL when dispatching
7571         a call to a remote domain, since the method may be an
7572         interface method in the client domain. This fixes bug #74192.
7573
7574 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7575
7576         * threadpool.c: recv/send are now performed before going back to managed
7577         code to save one transition.
7578
7579 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7580
7581         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
7582
7583         * metadata/threadpool.c: removed hack to workaround the bug above.
7584
7585         Fixes bug #74618.
7586
7587 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
7588
7589         * reflection.c reflection.h: Fix handling of parameter defaults in
7590         dynamic methods. Also fixes handling of parameter attributes.
7591         Fixes #74609.
7592
7593         * mono-debug.c (mono_debug_close_image): Fix warning.
7594
7595 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7596
7597         * socket-io.h: replaced old unused field with new 'blocking'.
7598         * threadpool.c: restore socket blocking state on windows(tm).
7599
7600 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
7601
7602         * icall.c: don't return the codebase in the AssemblyName[] returned by
7603         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
7604         * object-internals.h: Removed FIXME (fields were presents) and fixed
7605         versioncompat declaration.
7606
7607 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7608
7609         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
7610         not closed, so don't cleanup when it happens.
7611
7612 2005-04-13  Chris Toshok  <toshok@ximian.com>
7613
7614         * mono-debug-debugger.h: change prototype for
7615         mono_debugger_lookup_type.
7616
7617         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
7618         this function, although it should probably be named
7619         mono_debugger_init_type.
7620
7621 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7622
7623         * threadpool.c: fix non-AIO case.
7624
7625 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
7626
7627         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
7628         the built-in profiler to measure just JIT compilation times.
7629
7630 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7631
7632         * threadpool.c: the epollfd might be closed by another thread at
7633         any time, so ignore EBADF at treat it as a "we're closing" sign.
7634
7635 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7636
7637         * threadpool.c: release the semaphores with a count equals to the number
7638         of working threads in both IO and regular pools. Fixed typo that messed
7639         up the count of IO pool threads. Don't initialize the pipe handles if
7640         we're using epoll.
7641
7642 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7643
7644         * threadpool.c: some systems don't like a NULL when deleting the socket
7645         from epoll.
7646
7647 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7648
7649         * threadpool.c: fix semaphore allocation.
7650
7651 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7652
7653         * threadpool.c: added epoll() based implementation for asynchronous IO
7654         that is used instead of the default poll() when available.
7655         It can be disabled by setting MONO_DISABLE_AIO.
7656
7657 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7658
7659         * threadpool.c: windows needs 'closesocket' and instead of returning
7660         0 when the stream is closed while in select, it returns -1. Fixes bug
7661         #74573.
7662
7663 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
7664
7665         * class.c (class_compute_field_layout): Fix the regression caused by
7666         the previous try.
7667
7668 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7669
7670         * threadpool.c: separate pool for socket async. IO.
7671         * threadpool.h: mono_max_worker_threads is not a global any more.
7672
7673 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
7674
7675         * class.c (class_compute_field_layout): Fix #74549.
7676
7677 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7678
7679         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
7680         use 2 connected sockets instead.
7681
7682 2005-04-08  Miguel de Icaza  <miguel@novell.com>
7683
7684         * mono-config.c: Add new entry point for mkbundle
7685         mono_config_parse_memory. 
7686
7687 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7688
7689         * threadpool.c: removed another unused function.
7690
7691 2005-04-08  Ankit Jain  <radical@corewars.org>
7692
7693         * reflection.c (get_default_param_value_blobs): Add 'types'
7694         parameter to get the types encoded in the constant table.
7695         (mono_param_get_objects): Use the type from the constant table,
7696         not the type of the parameter, when creating default values.
7697         Handle null default values correctly.
7698
7699 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7700
7701         * file-io.c:
7702         * file-io.h:
7703         * threadpool.c:
7704         * threadpool.h:
7705         * icall.c:
7706         * socket-io.c: removed dead code for async IO.
7707
7708 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7709
7710         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
7711
7712         * threadpool.c: intercept socket async. calls and pass them to a thread
7713         that is polling and dispatching the job items to the threadpool as
7714         socket become ready. Fixes bugs #71217, #71933.
7715
7716         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
7717         between char and short/ushort arrays.
7718
7719         * socket-io.c: remove dead code.
7720
7721 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7722
7723         * locales.c,
7724           icall.c : removed InternalToUpper_Comp() and
7725           InternalToLower_Comp().
7726
7727 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7728
7729         * char-conversions.h : The tables were incorrectly generated. Should
7730           be generated against invariant culture.
7731
7732 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
7733
7734         * object.c (mono_runtime_invoke_array): Fix return value when 
7735         passing pre-created valuetype objects to ctors.
7736
7737         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
7738         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
7739         Fixes #74338.
7740
7741 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
7742
7743         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
7744         only used with --security and hides the wrong corlib version error.
7745
7746 2005-03-30  Joshua Tauberer  <tauberer@for.net>
7747
7748         * class.c: Changed mono_class_name_from_token so that types
7749         outside of a namespace don't have an initial period.  Improved
7750         the g_warning message used in _mono_class_get when loading
7751         fails.
7752         * assembly.c: In mono_assembly_load_reference, when an assembly
7753         can't be found, "No such file or directory" is misleading and
7754         unhelpful because a few paths were checked for the presence of
7755         the assembly.  When that happens (ENOENT), display a nicer
7756         message indicating the directories that were searched.  In all
7757         cases, the warning is made easier to read for non-hackers.
7758
7759 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
7760
7761         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
7762         project/solution.
7763         * appdomain.h|domain.c: Removed inline from functions.
7764         * appdomain.c: Reduced warnings when compiling on windows.
7765         * icall.c: Fixed output_debug declaration to gunichar2*.
7766         * mono-config.c: Reduced warnings when compiling on windows.
7767         * rand.c: Added missing "windows.h". Added missing return value.
7768         * rawbuffer.c: Added missing winsock2.h for windows.
7769         * sysmath.h: Added mono-compiler.h header to allow/ease 
7770         compilation with non-GCC compilers.
7771         * threads.c: Fixed declarations to compile with VS.NET C compiler.
7772         Removed cast warnings.
7773
7774         Adapted from the work of J Lothian (for VC6).
7775
7776 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
7777
7778         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
7779         from default_path.
7780
7781 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
7782
7783         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
7784         the 2.0 profile.
7785
7786 2005-03-27  Raja R Harinath  <harinath@gmail.com>
7787
7788         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
7789         has to be in $(exec_prefix).  $(prefix) is for arch-independent
7790         stuff, and it would probably use $(prefix)/share rather than
7791         $(prefix)/lib.
7792
7793 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7794
7795         * console-io.c: added 2 includes that might be missing.
7796
7797 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
7798
7799         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
7800         profile.
7801
7802         * reflection.c (create_custom_attr): Allocate the params array using
7803         alloca so it gets GC tracking.
7804
7805 2005-03-23  Chris Toshok  <toshok@ximian.com>
7806
7807         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
7808         out some spew.
7809
7810 2005-03-24  Raja R Harinath  <rharinath@novell.com>
7811
7812         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
7813         changes to pick up any changes in prefix, etc.
7814
7815 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7816
7817         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
7818         
7819         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
7820         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
7821
7822 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7823
7824         * class-internals.h object-internals.h class.c reflection.c: Extend the
7825         mono_lookup_dynamic_token () function to return the class of the
7826         token as well. 
7827
7828         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
7829         well. Fixes #73848.
7830
7831 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
7832
7833         * security-manager.c: Skip inheritance checks for intra-corlib
7834         class inheritance and method overrides. This skips a lot of checks
7835         and (anyway) permissions cannot work until corlib is loaded.
7836
7837 2005-03-23  Martin Baulig  <martin@ximian.com>
7838
7839         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
7840         MONO_TYPE_GENERICINST.  
7841
7842 2005-03-23  Martin Baulig  <martin@ximian.com>
7843
7844         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
7845
7846 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7847
7848         * class.c: added locking comments to some functions.
7849         Cache the interface offsets arrays (saves about 20 KB
7850         of runtime memory in a typical app).
7851         Reduce the time overhead in mono_class_setup_supertypes ().
7852
7853 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
7854
7855         * icall.c: speedup and fix leaks in GetMethodsByName and
7856         GetPropertiesByName.
7857
7858 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7859
7860         * reflection.c: some locking fixes.
7861
7862 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7863
7864         * metadata.c: added missing break in case statement.
7865
7866 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
7867
7868         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
7869         typedbyref return values. Fixes #73941.
7870
7871 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
7872
7873         * security-manager.c|h: Added demandunmanaged method and 
7874         suppressunmanagedcodesecurity class to MonoSecurityManager.
7875         Renamed aptc class to allowpartiallytrustedcallers.
7876
7877 2005-03-17  Martin Baulig  <martin@ximian.com>
7878
7879         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
7880
7881 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7882
7883         * file-io.c: disabled file async. IO using aio_*. It uses the
7884         threadpool now. Workaround for bug #73718.
7885
7886 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7887
7888         * assembly.h, mono-config.c: added code to deal with bundled configs
7889         for bundled assemblies.
7890
7891 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
7892
7893         * *.c, private.h: cleanup, removing old private.h header file.
7894
7895 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
7896
7897         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
7898         and throw_on_unmappable_char attributes.
7899
7900 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
7901
7902         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
7903         _ProcessName_internal.
7904
7905 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
7906
7907         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
7908         #73631.
7909
7910         * icall.c threads.c threads-types.h: Remove slothash icalls as they
7911         are no longer used.
7912
7913 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
7914
7915         * object.c (compute_class_bitmap): Add support for generics. Fixes
7916         #73527.
7917
7918 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
7919
7920         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
7921
7922 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7923
7924         * filewatcher.c: commented out the code for windows watcher, as we don't
7925         use it (we use the managed implementation instead).
7926
7927 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
7928
7929         * object-internals.h (MonoThread): Remove 'unused1' field.
7930
7931         * appdomain.c: Bump corlib version.
7932
7933         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
7934
7935         * reflection.c (mono_reflection_create_runtime_class): Remove the
7936         AssemblyBuilder.Save optimization since it causes too many problems.
7937
7938 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
7939
7940         * exception.c|h: Added mono_get_exception_reflection_type_load to
7941         create a ReflectionTypeLoadException object.
7942         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
7943         to return NULL is a InheritanceDemand fails during reflection. Updated
7944         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
7945         ReflectionTypeLoadException if an InheritanceDemand fails during 
7946         reflection. Added icall mapping for GetLinkDemandSecurity.
7947         * security-manager.c|h: Added ves_icall_System_Security_
7948         SecurityManager_GetLinkDemandSecurity internal call to return the
7949         class and methods permissions set for a LinkDemand. Removed unused
7950         fields in MonoSecurityManager.
7951
7952 2005-03-10  Martin Baulig  <martin@ximian.com>
7953
7954         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
7955         it's a generic instance.
7956
7957 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
7958
7959         * reflection.c (mono_get_object_from_blob): Applied patch from
7960         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
7961
7962         * class.c (mono_class_is_assignable_from): Another try at fixing 
7963         #73469 without breaking anything.
7964
7965 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
7966
7967         * class.c: (mono_class_is_assignable_from): Revert the last changes
7968         since they don't work with generics.
7969         
7970         * class.c (mono_class_is_assignable_from): Fix build bustage.
7971
7972         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
7973         the managed IsAssignableFrom method. Fixes #73469.
7974
7975         * reflection.c (mono_reflection_call_is_assignable_from): New helper
7976         function.
7977
7978 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
7979
7980         * object.c (mono_load_remote_field_new): Fix returning uninitialized
7981         memory when the remoting callback does not sets the out arguments.
7982         Fixes #73007.
7983
7984         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
7985         by mistake.
7986
7987         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
7988
7989         * object-internals.h (MonoStackFrame): Sync with managed object layout.
7990
7991         * appdomain.c: Bump corlib version.
7992
7993 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
7994
7995         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
7996         function.
7997
7998         * threads.c (mono_thread_attach): Detect threads which are not started
7999         by the GC pthread wrappers.
8000
8001 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
8002
8003         * icall.c: Added new icall for RNG.
8004         * rand.c|h: Added new icall to open the RNG. This allows to share a 
8005         single handle on Linux to access /dev/urandom and fix #73183.
8006
8007 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
8008
8009         * object.c: setting the new vtable in a transparent proxy object must
8010         not change the GC descriptor.
8011
8012 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8013
8014         * object.c: fixed compilation without GCJ support.
8015         * reflection.c: for runtime-created types ensure klass->has_references
8016         is correct (bug #73215).
8017
8018 2005-03-02  Martin Baulig  <martin@ximian.com>
8019
8020         * class.c (mono_class_is_assignable_from): Make this work if
8021         `oklass' is a generic instance; fixes #72831.
8022
8023 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8024
8025         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
8026         with hasthis set.
8027         
8028         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
8029
8030         * marshal.c: Reorganize native->managed marshalling code to also use
8031         the emit_marshal_... functions.
8032
8033 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8034
8035         * object.c: typed allocs have issues with bitmap sizes > 30,
8036         so check for max_set >= 30.
8037
8038 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8039
8040         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
8041         managed code. Fixes #73012.
8042
8043         * metadata.h (MonoMarshalSpec): Add elem_mult field.
8044
8045         * metadata.c reflection.c: Load/Emit elem_mult as well.
8046         
8047         * metadata.h (MonoMarshalSpec): Add comment.
8048
8049         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
8050
8051         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
8052         num_elem to -1 if not given.
8053
8054         * object-internals.h (MonoReflectionMarshal): Add has_size field.
8055
8056         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
8057         given values.
8058
8059 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
8060
8061         * null-gc.c (mono_gc_free_fixed): Was not compilable.
8062
8063 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
8064
8065         * reflection.c (encode_marshal_blob): Encode param_num field as well.
8066
8067         * object-internals.h (MonoReflectionMarshal): Add param_num field.
8068
8069 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8070
8071         * object.c: generalized the reference bitmap creation
8072         and added hooks for the new GC.
8073         * class-internals.c: removed the gc_bitmap field from MonoClass.
8074
8075 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8076
8077         * domain.c: help the compiler to produce better code
8078         in mono_jit_info_table_find ().
8079
8080 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8081
8082         * object.c: make all allocations look typed.
8083
8084 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8085
8086         * socket-io.c: load Mono.Posix if it's not loaded already
8087         (fixes bug#73033).
8088
8089 2005-02-24  Martin Baulig  <martin@ximian.com>
8090
8091         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
8092         * reflection.c (dup_type): Likewise.
8093
8094 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
8095
8096         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
8097         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
8098
8099 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8100
8101         * domain.c, threads.c, object-internals.h: make the critical thread
8102         local vars use the fast access mode (even when we're compiled in
8103         a lib). Provide accessors to be used by the jit during codegen.
8104
8105 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8106
8107         * appdomain.c: Changed hook functios behavior to include
8108         support for the reflection only assemblies. Some icalls were changed
8109         to support the mentioned assemblies too. Signatures of static methods
8110         try_assembly_resolve and real_load now have an additional parameter:
8111         refonly.
8112
8113         * assembly.c: General changes to mono_assembly_ methods to support
8114         reflection only api. Functions mono_assembly_open, mono_assembly_load,
8115         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
8116         suffix, to support an additional gbool parameter to specify whether
8117         the assembli is reflection only or not. Created some new hook functions 
8118         to add support for reflection only assemblies. Signatures of static 
8119         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
8120         have now an additional parameter: refonly.
8121
8122         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
8123         indicating whether the assembly is reflection only or not.
8124
8125         * exception.c: Add mono_get_exception_invalid_operation.
8126
8127         * icall.c: Throw an InvalidOperationException when trying to invoke
8128         a property/method/event, or trying to set/get the value of a field.
8129         Also add an icall to retrieve the ref_only flag to the
8130         MonoReflectionAssembly.
8131
8132 2005-02-23  Chris Toshok  <toshok@ximian.com>
8133
8134         Part of fix for #72827.
8135         * mono-debug.c (mono_debug_add_method): add lexical block data to
8136         the info we write.  Kind of a hack at the moment - we copy the
8137         lexical block info from the MonoDebugMethodInfo to the
8138         MonoDebugMethodJitInfo here, before writing it.
8139         (mono_debug_read_method): read the lexical block info.
8140
8141         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
8142
8143         * debug-mono-symfile.h: add lexical block support.
8144
8145         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
8146         support.
8147
8148 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8149
8150         * loader.c (mono_lookup_pinvoke_call): Fix warning.
8151
8152         * object.c (mono_runtime_free_method): Call mono_free_method () and
8153         put the TODOs there.
8154
8155         * loader.c (mono_free_method): Free up most memory allocated for 
8156         dynamic methods.
8157
8158 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8159
8160         * reflection.c: properly flag a Type argument to a
8161         named custom attr value (bug #72248).
8162
8163 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8164
8165         * reflection.c: reduce code duplication in named custom
8166         attribute encoding.
8167
8168 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
8169
8170         * reflection.c: properly encode custom attrs of type object
8171         (bug #72649).
8172
8173 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8174
8175         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
8176
8177 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
8178
8179         * socket-io.c: load System.dll if it's not loaded already
8180         (bug #72850 and #70477).
8181
8182 2005-02-21  Martin Baulig  <martin@ximian.com>
8183
8184         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8185         generic instances.
8186
8187 2005-02-21  Martin Baulig  <martin@ximian.com>
8188
8189         * reflection.c (mono_image_build_metadata): We also need to
8190         "fixup" the MethodImpl table after we computed the final method
8191         indices.  Call fixup_methodimpl() to do that.
8192         (fixup_methodimpl): New private method.
8193
8194 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8195
8196         * assembly.c: special case mscorlib.dll (bug#72536),
8197         patch from Carlos Alberto Cortez.
8198
8199 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
8200
8201         * threads-types.h threads.c: Fix build bustage.
8202
8203         * threads.c: Use a union for long<->double conversions.
8204
8205         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8206         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8207
8208         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8209         containing the checkpoint call with NOT_TAKEN.
8210         
8211         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8212         checkpoint before pushing the arguments, so they won't have to be
8213         spilled to stack.
8214
8215 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8216
8217         * domain.c, assembly.c, domain-internals.h: make some data
8218         const and relocation-free.
8219
8220 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8221
8222         * object.c, appdomain.c, class-internals.h: introduce the
8223         MonoClassRuntimeInfo structure to hold the info needed to
8224         use a class at runtime. Made mono_class_vtable() lock-free
8225         for all the appdomains.
8226
8227 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8228
8229         * metadata-internals.h, image.c: introduce a per-image mempool to
8230         be used for memory that has the same lifetime as the image.
8231
8232 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8233
8234         * domain.c: In mono_init_internal(), instead of selecting the first
8235         runtime version supported by an executable, get a list of all
8236         supported versions and select the one for which an mscorlib exists
8237         (since even if the runtime supports a given version, it doesn't mean
8238         that the framework for that version is installed).
8239         Modified get_runtimes_from_exe to support this behavior.
8240         In supported_runtimes, added information about additional system
8241         assembly versions.
8242         
8243         * assembly.c: Added support for more than one system assembly version
8244         per runtime version. Updated the assembly list.
8245         In mono_assembly_remap_version, removed the initial version check,
8246         since we don't know to which version we need to compare until we
8247         get the version set on which the assembly is based.
8248         Moved the code for loading corlib into the new method
8249         mono_assembly_load_corlib(), so it can be used by the initialization
8250         code.
8251         
8252         * domain-internals.h: Updated data structures and added declaration
8253         for mono_assembly_load_corlib.
8254
8255 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8256
8257         * reflection.c (resolve_object): Fix the creation of the signature in 
8258         the SignatureHelper case.
8259
8260         * assembly.c (mono_assembly_remap_version): Fix binary search.
8261         
8262 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8263  
8264         * class.c: Added inheritance check when a method is overloaded (from a
8265         virtual method or when implementing an interface) and when a class is
8266         inherited. Added functions to set a failure for a class and to 
8267         retreive the exception from a failure.
8268         * class-internals.h: Added fields to MonoClass to keep the exception
8269         information status for inheritance (or other exceptions) to be thrown
8270         later (i.e. not at load time).
8271         * object.c: Throw the inheritance SecurityException when a type is to 
8272         be created with either class or method inheritance violations.
8273         * reflection.c|h: Fix when getting declsec from a class. Removed 
8274         unrequired code for class. Improved sanity in parameter naming.
8275         * security-manager.c|h: Added functions to check for class and method
8276         inheritance.
8277
8278 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8279
8280         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8281         and has_finalize in dynamic types as well.
8282
8283 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8284
8285         * culture-info-table.h : fixed currency format for en-GB (and so on).
8286
8287 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8288
8289         * gc.c: ensure the GC handles never have 0 as a value.
8290
8291 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8292
8293         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8294         a pointer to a struct to unmanaged code. Fixes #72625.
8295
8296 2005-02-16  Martin Baulig  <martin@ximian.com>
8297
8298         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8299
8300 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8301
8302         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8303
8304 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8305
8306         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8307
8308         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8309         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8310         etc. Fixes #71471.
8311
8312         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8313
8314         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8315
8316 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8317
8318         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8319         changes to make the current context a field in MonoThread.
8320
8321 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8322
8323         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8324         the last change.
8325         
8326         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8327         extracted from mono_marshal_get_native_wrapper.
8328
8329         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8330         to create wrappers around native functions.
8331
8332         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8333         delegates for arbitrary function pointers. Fixes #71472.
8334
8335 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8336
8337         * threads.c: cleaned up the code a little.
8338
8339 2005-02-15  Martin Baulig  <martin@ximian.com>
8340
8341         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
8342         the data table.
8343
8344         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
8345         allocate larger chunks if needed.
8346
8347 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8348
8349         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8350         in by mistake.
8351
8352 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8353
8354         * domain.c: keep the domains in an array and ensure the domain ids
8355         are kept small, so they can be used as indexes to domain-specific data
8356         with a small memory overhead.
8357
8358 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8359
8360         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8361
8362 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8363
8364         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8365
8366 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8367
8368         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8369
8370         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8371         values.
8372
8373         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8374         
8375 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8376
8377         * domain-internals.h: add the hashtable here.
8378
8379         * class-internals.h: Remove `info' from MonoMethod
8380
8381         * domain.c: Add a new hashtable, jit_trampoline_hash
8382
8383 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8384
8385         * object.c: don't set the value of static fields
8386         (fixes bug#72494).
8387
8388 2005-02-11  Martin Baulig  <martin@ximian.com>
8389
8390         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8391         (mono_debug_add_method): Silently ignore the method if it's too big.
8392         (mono_debug_add_type): Likewise.
8393
8394 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8395
8396         * threads.c, appdomain.c: remove #ifdefs from the code.
8397
8398 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8399
8400         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8401         common security informations. This allows us to stay in unmanaged code
8402         when doing LinkDemand and it's special cases (except for the first 
8403         time for initialization). The flags a very much used with --security.
8404         * reflection.c|h: Added code to get declarative security attributes 
8405         for LinkDemand and InheritanceDemand. This required to refactor the
8406         existing code for Demand.
8407         * security-manager.c|h: Added new method fields for the special cases
8408         of LinkDemand.
8409
8410 2005-02-10  Martin Baulig  <martin@ximian.com>
8411
8412         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8413         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8414
8415 2005-02-10  Martin Baulig  <martin@ximian.com>
8416
8417         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8418         debugging code; this is almost a complete rewrite.
8419
8420         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8421
8422 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8423
8424         * domain.c, object.h: expose mono_string_equal () and 
8425         mono_string_hash ().
8426         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8427         it's implemented in managed code.
8428
8429 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8430
8431         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8432         lo leak objects between appdomains.
8433
8434 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8435
8436         * assembly.c: old compilers compilation fix from 
8437         robertj@gmx.net (Robert Jordan).
8438
8439 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8440
8441         * class-internals.h: Little reminder for the future.
8442
8443         * debug-helpers.c: Fix up wrapper_type_names
8444
8445 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8446
8447         * image.c, metadata-internals.h: when loading an image from a file,
8448         mmap all of it and use the same codepaths as when using a
8449         in-memory image: the code is simpler and we use less memory
8450         (both writable and readonly).
8451
8452 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8453
8454         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
8455         API to alloc runtime data structures that need to be tracked by the
8456         GC and contain pointers.
8457         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
8458         make the code more readable and eventually use a different GC.
8459
8460 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
8461
8462         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
8463         for out arguments.
8464         
8465 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
8466
8467         * object.c: In release_type_locks(), don't release the cctor lock
8468         if it has already been released. This fixes a crash in the
8469         thread5 test.
8470
8471 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8472
8473         * gc.c, marshal.c, icall.c: register a delegate for finalization
8474         only when the native function pointer has been allocated for it.
8475
8476 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8477
8478         * object.c: cleaned up some code, allocate objects that are
8479         pointer free with the atomic malloc variant. Allocate memory
8480         for static data from the mempool if it's pointer-free.
8481         Allocate the bounds array at the end of the array data, when needed.
8482         * object-internals.h, object.h: move a private function in a private
8483         header.
8484         * class.c: handle missing case in tracking references in fields.
8485
8486 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8487
8488         * class.c, class-internals.h: keep track if a type has
8489         reference fields in either the instance or static fields.
8490
8491 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
8492
8493         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
8494         and renamed to MonoRuntimeInfo. Added fields to store the expected
8495         framework assembly version. Changed mono_get_framework_version and
8496         mono_get_runtime_version for a single mono_get_runtime_info method.
8497         
8498         * assembly.c: Added method to remap system assembly versions to the
8499         current executing runtime version. Removed old mapping code.
8500         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
8501         
8502         * icall.c, reflection.c: Track api changes.
8503
8504 2005-02-06  Miguel de Icaza  <miguel@novell.com>
8505
8506         * loader.c (method_from_memberref): Improve error reporting,
8507         produce the class name instead of the typeref/typedef index. 
8508
8509 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
8510
8511         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
8512
8513 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8514
8515         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
8516         stdcall and charset name mangling.  Reorganize the code and add
8517         some tracing stuff.
8518
8519 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8520
8521         * monodiet.c: More iters!
8522
8523         * marshal.c: Iter usage.
8524
8525         * icall.c: Iter usage.
8526
8527         * object.c: Use iters.
8528
8529         * debug-helpers.c: More iters
8530
8531 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8532
8533         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
8534         under win32.
8535
8536 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8537
8538         * mono-debug-debugger.c: use iters
8539
8540         * class.c, class-internals.h: mono_class_setup_events is static
8541         now
8542
8543         * All callers: use iters
8544
8545 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8546
8547         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
8548         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
8549
8550 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8551
8552         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
8553
8554         * marshal.h: Add prototypes for ldfld/stfld_remote.
8555
8556         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
8557         this is called during startup.
8558         
8559 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
8560
8561         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
8562         MonoThreadsSync struct private in monitor.c. Changed the way
8563         MonoThreadsSync is allocated so it's faster and there is no
8564         need to keep track of it with a finalizer and it uses less memory.
8565         This also finally allows us to allocate mono objects as ptrfree when
8566         there are no reference fields.
8567
8568 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
8569
8570         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
8571         disappearing link to the GC interface and use them to simplify
8572         the gchandles code.
8573
8574 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8575
8576         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
8577         stfld_remote which call mono_load/store_field_new. This allows methods
8578         calling ldfld/stfld wrappers to be AOTed.
8579
8580         * console-io.c: Include sys/filio.h under solaris.
8581         
8582         * console-io.c: Include curses.h if needed correctly.
8583
8584 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8585         
8586         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
8587         method->klass as well.
8588
8589         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
8590
8591         * class.c (mono_class_init): Switch on lazy initialization of 
8592         methods.
8593
8594         * class.c (mono_class_get_finalizer): Handle the case when the 
8595         finalizer is inherited.
8596
8597 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8598
8599         * console-io.c: <curses.h> is needed by term.h on solaris.
8600
8601 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
8602
8603         * icall.c, class-internals.h, monodiet.c, class.c: Remove
8604         mono_class_setup_properties where possible. Remove this ftn from
8605         the header file, and make it static.
8606
8607 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8608
8609         * loader.c: Add missing setup_... call.
8610
8611         * class.c: Add missing setup_... calls.
8612
8613         * class.c (mono_class_init): Switch on lazy initialization of 
8614         the generic vtable.
8615         
8616         * class.c (mono_class_init): Fix generics broken by the recent changes.
8617
8618         * monodiet.c (handle_type): Add missing setup_... calls.
8619
8620         * class.c: Back out garbage in previous patch.
8621         
8622         * class.c: Add missing setup_... calls.
8623
8624         * class.c (mono_class_get_method_from_name_flags): Avoid calling
8625         mono_class_setup_methods () if possible.
8626
8627         * class-internals.h (MonoClass): Add 'has_cctor' flag.
8628
8629         * class-internals.h (MonoCachedClassInfo): New structure.
8630
8631         * class.c: Initialize properties and events fields of MonoClass lazily.
8632
8633         * class.c: Add infrastructure for lazily initializing the methods and
8634         vtable fields of MonoClass. Not yet used.
8635
8636         * class.c (mono_class_get_finalizer): New helper function.
8637
8638         * class.c: Add infrastructure for loading some class related data from
8639         an AOT file.
8640
8641         * object.c: Add infrastructure for initializing the vtable from data
8642         in the AOT file.
8643
8644         * gc.c (run_finalize): Use mono_class_get_finalizer ().
8645
8646         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
8647         appropriate initialization function before accessing parts of the
8648         MonoClass structure.
8649
8650         * marshal.c: Fix warnings.
8651         
8652         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
8653
8654         * mono-debug-debugger.c (get_exception_message): Use 
8655         mono_class_get_method_from_name_flags ().
8656
8657 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
8658
8659         * reflection.c, appdomain.c: Replace a few manual searches that
8660         Zoltan missed. (Paolo approved this part of my initial patch).
8661
8662 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
8663
8664         * profiler.c: disable recording statistical events at report time.
8665
8666 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8667
8668         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
8669         to byteswap arrays of enum values, too (bug #72080).
8670
8671 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
8672
8673         * appdomain.c (set_domain_search_path): Allow this to be called if
8674         domain->setup is not yet set.
8675
8676         * loader.c (mono_method_get_index): New helper function.
8677
8678         * loader.c reflection.c: Use mono_method_get_index ().
8679
8680         * class.c (mono_class_get_method_from_name_flags): New helper method.
8681
8682         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
8683         this.
8684
8685         * class.c (mono_class_get_cctor): New helper method.
8686
8687         * string-icalls.c object.c class.c marshal.c reflection.c: Use
8688         mono_class_get_method () to look up methods.
8689
8690 2005-02-01  Miguel de Icaza  <miguel@novell.com>
8691
8692         * console-io.c: Fix the build, this should work on Windows.
8693
8694 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
8695
8696         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
8697         be set to null to keep things valid
8698
8699 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8700
8701         * icall.c: added Console 2.0 icalls.
8702         * Makefile.am: added console-io.[ch]
8703         * console-io.[ch]: internal calls for Console 2.0 API.
8704
8705 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8706
8707         * class.c: make sure we consider all the interfaces
8708         when calculating max_interface_id (bug found by
8709         Jeroen Frijters running ikvm).
8710
8711 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
8712
8713         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
8714         valuetype fields to null.
8715
8716         * object.c (set_value): Ditto. Fixes #71669.    
8717
8718 2005-01-31  Martin Baulig  <martin@ximian.com>
8719
8720         * metadata.c (mono_metadata_has_generic_params): New public
8721         function; checks whether something is a generic method.
8722
8723 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
8724
8725         * appdomain.c: fix infinite recursion when adding assemblies.
8726
8727 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
8728
8729         * object.c: Fix small typo to return all items for Environment.
8730         GetCommandLineArgs.
8731
8732 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8733
8734         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
8735         reflection.c: more domain and assembly-unload related fixes
8736         and memory leaks plugs.
8737
8738 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
8739
8740         * 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.
8741
8742 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
8743
8744         * loader.c (mono_method_signature): Make this method lazy
8745         (mono_get_method_from_token): Don't computate the signature here.
8746
8747         Doing this saves quite a bit of memory. I got 90 kb on starting up
8748         monodoc. It should also save some disk reads on startup.
8749
8750         * *: MonoMethod->signature might be NULL now. You *MUST* use
8751         mono_method_signature.
8752
8753 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
8754
8755         * object.c (mono_runtime_get_main_args): Return an array from the
8756         current domain here. Fixes #71938.
8757
8758 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
8759
8760         * monitor.c: formatting changes to comply with the
8761         mono coding style and remove #ifdefs from the code.
8762
8763 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8764
8765         * metadata.c, private.h: remove some unneeded data
8766         and use a more compact representation for table schemas.
8767
8768 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
8769
8770         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
8771         to get a better distribution in hash tables.
8772         * *.c: use mono_aligned_addr_hash() where appropriate.
8773         * assembly.c: make var static.
8774
8775 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
8776
8777         * domain-internals.h: Put MonoJitInfo on a diet.
8778
8779         * domain.c: Fix a warning.
8780
8781 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8782
8783         * gc.c: rework the gc handles code to reuse handles
8784         when freed.
8785
8786 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8787
8788         * domain.c: fixed long standing bug in mono_string_equal() which
8789         was brought to light with the ldstr changes.
8790
8791 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
8792
8793         * reflection.c: Remove warning by adding missing include for marshal.h
8794
8795 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8796
8797         * domain.c, object.c: change the ldstr_table to hold
8798         MonoString* as keys: makes the runtime isinterned lookup
8799         faster and simplifies memory management.
8800
8801 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
8802  
8803         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
8804         possible to add imperative security checks before calling the icall.
8805         * reflection.c: Return security attributes on the original MonoMethod
8806         (and not the wrapped one). This fix permissions on icalls.
8807
8808 2005-01-25  Dick Porter  <dick@ximian.com>
8809
8810         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
8811         the check for mktime() support actually test the mktime() return
8812         value.  "Fixes" bug 71682, though the output is still different to
8813         MS.
8814
8815 2005-01-25  Martin Baulig  <martin@ximian.com>
8816
8817         * class.c (mono_class_is_assignable_from): Make this work for
8818         generic instances.
8819
8820 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
8821
8822         * marshal.c (mono_string_utf8_to_builder)
8823         (mono_string_builder_to_utf16): We might not have ownership of the
8824         string. In thise case, we need to create a new buffer.
8825
8826         * object-internals.h (mono_stringbuilder_capacity): sb->str might
8827         be null, in which case, use the default capacity.
8828
8829 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8830
8831         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
8832         GC events to the profiler.
8833
8834 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8835
8836         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
8837         if you don't want the GC to run.
8838
8839 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
8840
8841         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
8842         start providing a GC API and keeping different implementations in
8843         their own file.
8844         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
8845
8846 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
8847
8848         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
8849         mmap rather than allocating a huge buffer.
8850         (mono_debug_close_mono_symbol_file): Free the buffer allocated
8851         above.
8852
8853 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
8854
8855         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
8856         and CheckExecutionRights.
8857         * reflection.c|h: Keep the index of the declarative security to be 
8858         used, instead of the pointer, when AOT compiler is used. Also add 
8859         class initialization when requesting demands.
8860         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
8861         CheckExecutionRights. Both properties are now FALSE by default, and
8862         unmodifiable, unless the --security option is used.
8863
8864 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8865
8866         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
8867         reflection.c: properly refcount images and assemblies, many leaks fixed.
8868
8869 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8870
8871         * threadpool.c: increase the timeout for threads in the thread pool to
8872         10s.  Fixes bug #67159.
8873
8874 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
8875
8876         * class-internals.h: Sun's compiler insists on explicit
8877         signed on bit fields to handle then correctly.
8878
8879 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
8880
8881         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
8882         Make the size of the array fit only the number of invalid path
8883         chars that we have.
8884
8885         * class.c (_mono_class_get): Improve the error reporting when a
8886         class referenced is not found, to assist debugging. 
8887
8888 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
8889
8890         * threads.c: fix off-by-one error.
8891         * domain.c: free data allocated in the domain.
8892
8893 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
8894
8895         * reflection.c (mono_method_body_get_object): Fill out exception info
8896         as well.
8897
8898         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
8899         structure.
8900         
8901 2005-01-19  Martin Baulig  <martin@ximian.com>
8902
8903         * loader.c (mono_get_method_constrained): Make this work again.
8904
8905 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
8906
8907         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
8908         guint16 to match the managed side.
8909
8910         * reflection.c (mono_reflection_body_get_object): Fill out local
8911         variables array.
8912
8913         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
8914         as well.
8915
8916         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
8917         'local_var_sig_token'.
8918
8919 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
8920
8921         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
8922         System.Drawing.
8923
8924         * reflection.c (mono_method_body_get_object): Handle abstract and
8925         runtime methods.
8926
8927 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
8928
8929         * marshal.c, loader.c, class-internals.h, reflection.c:
8930         store the emthod data for a wrapper in an array instead of a list.
8931
8932 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
8933
8934         * marshal.c: change the code to allocate memory more
8935         conservatively for method wrappers.
8936
8937 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
8938
8939         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
8940         fields from MonoClass to the marshal info structure where they belong.
8941
8942 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8943
8944         * class.c, object.c, class-internals.h, marshal.c: rearrange
8945         some fields and tweak some types to lower memory usage.
8946
8947 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
8948
8949         * threads.c (signal_thread_state_change): Handle the case when the
8950         target thread is the current thread.
8951
8952         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
8953
8954         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
8955         emit_ptr_to_object_conv. 
8956
8957         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
8958         marshalling. Fixes #71352.
8959
8960 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8961
8962         * metadata.h, blob.h: move table enum to blob.h so it can be included
8963         in any header.
8964         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
8965         cut the size of MonoImage/MonoDynamicImage.
8966
8967 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
8968
8969         * profiler.c (mono_profiler_install_simple): Fix default arguments.
8970
8971 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
8972
8973         * reflection.c, reflection.h, icall.c: add a function to check
8974         if an attribute type is defined for a metadata object.
8975
8976 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
8977
8978         * object-internals.h: Added some needed fields from StringBuilder class.
8979         * marshal.c: Set the maxCapacity when creating a StringBuilder.
8980
8981 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
8982
8983         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
8984         threads before shutting down the runtime.
8985
8986         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
8987
8988 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8989
8990         * object-internal.h, threads.c: implement stacksize and 
8991         parameterized thread start functionality (requires
8992         matching corlib). Marked broken code for later removal.
8993
8994 2005-01-12  Martin Baulig  <martin@ximian.com>
8995
8996         * class-internals.h (MonoGenericClass): Moved the `initialized'
8997         flag to MonoDynamicGenericClass, removed `init_pending'.
8998         (MonoGenericInst): Added `is_reference' flag.
8999
9000 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
9001
9002         * reflection.c (mono_image_create_pefile): Only set the pe_offset
9003         inside the MSDOS header. Fixes #71201.
9004
9005         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
9006         gc thread.
9007         (mono_domain_finalize): Ditto.
9008
9009 2005-01-12  Martin Baulig  <martin@ximian.com>
9010
9011         * class.c (mono_get_shared_generic_class): Use the cache for
9012         non-dynamic generic classes.
9013
9014         * class-internals.h (mono_class_create_generic_2): Removed
9015         function prototype, this function is now static inside class.c.
9016
9017         * class.c (mono_class_create_generic_2): Made this static, only
9018         call it from mono_class_init() and mono_class_setup_parent().
9019         (collect_implemented_interfaces_aux): Call mono_class_init() on
9020         the interfaces we collect.
9021         (mono_class_setup_vtable): Call mono_class_init (class->parent).
9022
9023 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9024
9025         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
9026         it a real thread handle.
9027
9028         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
9029         MonoJitExceptionInfo, since each catch clause needs its own variable.
9030         
9031 2005-01-11  Dick Porter  <dick@ximian.com>
9032
9033         * image.c (mono_pe_file_open): New variant on mono_image_open()
9034         that does not set up the CLI metadata; used for FileVersionInfo so
9035         it can get the data for windows binaries too.
9036         
9037         * process.c (process_read_string_block): Don't read off the end of
9038         the StringTable block.
9039
9040         These both fix bug 70766.
9041
9042 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
9043
9044         * gc.c: set some fields to NULL at GC cleanup time.
9045         * threads.c: if we quit the main thread, call exit ().
9046
9047 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9048
9049         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
9050
9051 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
9052
9053         * threads.h, threads.c, object.c: added accessor and settor for
9054         main_thread. Handle it specially when exiting from it: wait
9055         for other foreground threads to exit.
9056
9057 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
9058
9059         * process.c, verify.c: remove some bloat.
9060
9061 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
9062
9063         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
9064         the calling convention to cdecl under win32.
9065
9066 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
9067
9068         * object.c (mono_object_get_size): New function to get the size of
9069         an object instance.
9070
9071         * profiler.c (simple_allocation): Use above.
9072
9073 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9074
9075         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
9076         ves_icall_System_AppDomain_getRootDomain (as it's not required to
9077         get an appdomain by it's id and we can't assume the root's id is 0).
9078         * domain-internals.h: Change the function prototype to match.
9079         * icall.c: Change the icall table for AppDomain.
9080
9081 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
9082
9083         * locales.c (string_invariant_compare_char): Only compute
9084         GUnicodeTypes in the case where we need them.  Test for ordinality
9085         first and return if so.
9086
9087         From the commit:
9088
9089                 /*
9090                  * FIXME: here we must use the information from c1type and c2type
9091                  * to find out the proper collation, even on the InvariantCulture, the
9092                  * sorting is not done by computing the unicode values, but their
9093                  * actual sort order.
9094                  */
9095
9096 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9097
9098         * loader.c: for P/Invoke methods, allow the "Internal" shared
9099         library name to refer to the calling process symbol namespace.
9100
9101 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
9102
9103         * Makefile.am: Add the security manager to the build.
9104         * security-manager.c|h: New. Initialization of the security manager.
9105
9106 2005-01-07  Dick Porter  <dick@ximian.com>
9107
9108         * threads.c: 
9109         * monitor.c: Update thread state during Monitor and WaitHandle
9110         waits.  Fixes bug 71031.
9111
9112 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
9113
9114         * reflection.c (property_encode_signature): Correctly handle when the
9115         property has no methods.
9116
9117 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
9118
9119         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
9120         
9121         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
9122         fields from mb, not rmb. Fixes #71017.
9123
9124         * marshal.c (emit_ptr_to_str_conv): Add support for 
9125         ByValTStr -> string conversion. Fixes #71015.
9126
9127         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
9128
9129         * mempool.c (mono_mempool_contains_addr): New helper function.
9130
9131 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9132
9133         * metadata.c (mono_metadata_compute_size): Fix size calculation of
9134         HasSematics encoded fields.
9135         
9136         * metadata.c (mono_type_to_unmanaged): Improve error message for 
9137         invalid string marshalling.
9138
9139         * metadata.c: Fix warnings.
9140         
9141 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9142
9143         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
9144         profiler support.
9145
9146 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9147
9148         * domain.c object.c domain-internals.h: Revert part of r38077 since the
9149         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
9150         tests.
9151
9152 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
9153
9154         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
9155         so methods containing these can be AOTed.
9156
9157 2005-01-03  Martin Baulig  <martin@ximian.com>
9158
9159         * loader.c (find_method): Removed the hack for generic instances.
9160         (method_from_memberref): If our parent is a generic instance, pass
9161         its generic type definition to find_method() and then inflate the
9162         method.
9163         (mono_get_method_constrained): Pass the generic type definition to
9164         find_method() and inflate the method later.
9165
9166         * class-internals.h (MonoStats): Added `generic_class_count'.
9167
9168         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
9169         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
9170
9171         * reflection.c (mono_custom_attrs_from_params): Don't ignore
9172         generic type definitions.
9173
9174 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
9175
9176         * loader.c icall.c: Fix warnings.
9177
9178 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
9179
9180         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
9181         blittable types. Fixes #70864.
9182
9183 2004-12-29  Martin Baulig  <martin@ximian.com>
9184
9185         * icall.c
9186         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
9187
9188         * reflection.c (mono_method_get_object): Create a
9189         "System.Reflection.MonoGenericMethod" for inflated methods; don't
9190         call mono_get_inflated_method().
9191
9192         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
9193
9194 2004-12-27  Martin Baulig  <martin@ximian.com>
9195
9196         * class-internals.h (MonoMethod): Added `is_inflated' flag.
9197         (MonoMethodInflated): Added `inflated' field.
9198
9199         * class.c (mono_class_inflate_generic_method): Don't really
9200         inflate the method here; just set the `is_inflated' flag in the
9201         MonoMethod.
9202         (mono_class_get_inflated_method): Actually inflate the method here
9203         if it's not already inflated; we use the MonoMethodInflated's new
9204         `inflated' field as a cache.
9205
9206 2004-12-26  Martin Baulig  <martin@ximian.com>
9207
9208         * class.c
9209         (inflate_generic_class): Moved some code out of inflate_generic_type().
9210         (mono_class_inflate_generic_method): If we're already inflated,
9211         inflate the context and use the declaring method; ie. make sure
9212         the declaring method of an inflated method is always the generic
9213         method definition.
9214         (mono_class_create_from_typedef): Create
9215         `class->generic_container->context->gclass'.
9216
9217 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9218
9219         * metadata-internals.h, marshal.c, reflection.c: More
9220         MonoGHashTable->GHashTable.
9221
9222         * domain-internals.h, class.c: Change MonoGHashTable's into
9223         GHashTables for some cases where no gc stuff is used
9224
9225         All users: update apis
9226
9227 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9228
9229         * metadata.c (builtin_types): Make this `const'. Makes this get
9230         put into the shareable section.
9231         (mono_metadata_init): Casts to make gcc happy.
9232
9233 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9234
9235         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9236
9237 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9238
9239         * icall.c: Added an internal call to retrieve the position and length
9240         of assembly-level declarative security attributes (RequestMinimum, 
9241         RequestOptional and RequestRefuse). This is used by the Assembly class
9242         to re-create the corresponding permission sets.
9243
9244 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9245
9246         * marshal.c: fix the stelemref wrapper to be type correct
9247         (and faster).
9248
9249 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9250
9251         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9252         to do key & 0x7fffffff. Hashtable already does this. It just
9253         results in longer code.
9254
9255 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9256
9257         * appdomain.c: Bump corlib version.
9258         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9259         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9260         * reflection.c|h: Add functions to get declarative security infos
9261         (blob position and length) for assemblies, classes and methods.
9262
9263 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9264
9265         * reflection.c: sort the constant table (bug #70693).
9266
9267 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9268
9269         * object-internals.h, threads.c, domain.c: add accessors for
9270         the MonoThread and MonoDomain tls keys.
9271
9272 2004-12-18  Martin Baulig  <martin@ximian.com>
9273
9274         * class.c (inflate_generic_type): If we're inflating a generic
9275         instance, set `ngclass->context->container = context->container';
9276         ie. the container we inflated into.
9277
9278         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9279         inflate_generic_type() changes.
9280
9281 2004-12-17  Martin Baulig  <martin@ximian.com>
9282
9283         * class-internals.h
9284         (MonoGenericClass): Replaced `MonoType *generic_type' with
9285         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9286         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9287         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9288
9289 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9290
9291         * exception.c (mono_exception_from_token): New helper function.
9292
9293 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9294
9295         * assembly.c (mono_assembly_load_with_partial_name): Call 
9296         mono_assembly_loaded before invoking the preload hooks. Fixes
9297         #70564.
9298
9299         * object-internals.h (MonoThread): Change culture_info and 
9300         ui_culture_info into an array.
9301
9302         * threads.c: Cache culture info objects from more than one appdomain.
9303
9304         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9305         current UI culture.
9306
9307 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9308
9309         * threads.h threads.c appdomain.c: Clear the culture_info field of
9310         all threads during unloading if they point to an object in the dying
9311         appdomain.
9312
9313 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9314
9315         * culture-info.h (TextInfoEntry): New struct
9316         * object-internals.h: sync with managed
9317         * locales.c: fill the `text_info_data' field
9318         * culture-info-tables.h: update
9319
9320 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9321
9322         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9323         collector.
9324
9325 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9326
9327         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9328         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9329
9330 2004-12-12  Martin Baulig  <martin@ximian.com>
9331
9332         * mono-debug-debugger.c (write_type): If we're an enum and the
9333         builtin types have already been initialized, call mono_class_init().
9334
9335 2004-12-11  Martin Baulig  <martin@ximian.com>
9336
9337         * metadata.c (mono_metadata_load_generic_params): Added
9338         `MonoGenericContainer *parent_container' argument; automatically
9339         compute `container->is_method'; pass the correct owner to
9340         get_constraints().      
9341
9342         * reflection.c (compare_genericparam): Sort the GenericParam table
9343         according to increasing owners. 
9344
9345 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
9346
9347         * profiler.c: allow disabling the default profiler.
9348
9349 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9350
9351         * decimal.c, icall.c: allow disabling System.Decimal support.
9352
9353 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9354
9355         * reflection.c: Add support for null attribute arguments.
9356
9357 2004-12-09  Martin Baulig  <martin@ximian.com>
9358
9359         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9360         names to get rid of compiler warnings.
9361
9362 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9363
9364         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9365         mono_marshal_load_type_info (). Fixes #69625.
9366         (mono_marshal_get_ptr_to_struct): Likewise.
9367
9368 2004-12-08  Martin Baulig  <martin@ximian.com>
9369
9370         * mono-debug.h: Bumped version number to 47.
9371
9372         * mono-debug-debugger.c
9373         (mono_debugger_event_handler, mono_debugger_event): Take two
9374         guint64 arguments insteed of a gpointer and a guint32.  
9375
9376 2004-12-08  Martin Baulig  <martin@ximian.com>
9377
9378         * debug-mono-symfile.h
9379         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9380         `address' to `native_offset'.
9381
9382 2004-12-08  Martin Baulig  <martin@ximian.com>
9383
9384         * class.c (mono_class_create_from_typespec): Only inflate if we
9385         either have `context->gclass' or `context->gmethod'.
9386
9387 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9388
9389         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9390
9391         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9392
9393         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9394
9395         * reflection.c (mono_assembly_get_object): Remove the workaround put
9396         in for the release.
9397         
9398         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9399
9400         * appdomain.c: Bump corlib version.
9401
9402         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9403         be visible in other appdomains.
9404
9405 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9406
9407         * threads.c: Interlocked inc and dec for longs were messed up,
9408         use a KISS based impl for this. Fixes 70234
9409
9410 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9411
9412         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9413
9414 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9415
9416         * icall.c: fix to follow policy not to allow struct
9417         arguments in icalls.
9418
9419 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9420
9421         * process.c: make the patch that handles spaces in file paths work
9422         on mono/windows too.
9423
9424 2004-12-06  Martin Baulig  <martin@ximian.com>
9425
9426         * class.c (mono_class_create_generic): Call
9427         mono_class_setup_supertypes() if we're dynamic.
9428         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9429
9430 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9431
9432         * object-internals.h: Add new fields to MonoThread.
9433
9434         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9435
9436         * icall.c threads-types.h threads.c: Add new icalls.
9437
9438         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9439
9440         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9441         managed side.
9442
9443         * appdomain.c: Bump corlib version.
9444
9445         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
9446         internal assemblies. Fixes #69181.
9447
9448 2004-12-05  Martin Baulig  <martin@ximian.com>
9449
9450         * class.c (mono_class_inflate_generic_signature): Make this a
9451         no-op if `context' is NULL or we don't have any type parameters;
9452         also copy `sentinelpos'.        
9453
9454 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
9455
9456         * image.c: Add unbox_wrapper_cache.
9457
9458         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
9459
9460         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
9461         function generator.
9462         
9463         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
9464         Fixes #70173.
9465
9466         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
9467         
9468 2004-12-04  Martin Baulig  <martin@ximian.com>
9469
9470         * loader.c (mono_method_get_signature_full): New public function;
9471         like mono_method_get_signature(), but with an additional
9472         `MonoGenericContext *' argument.
9473
9474         * class.c (mono_class_inflate_generic_signature): Formerly known
9475         as inflate_generic_signature(); make this public.
9476
9477 2004-12-04  Martin Baulig  <martin@ximian.com>
9478
9479         * metadata.c
9480         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
9481         instead of a `MonoGenericContainer *'.  
9482         (mono_metadata_parse_array_full): Likewise.
9483         (mono_metadata_parse_signature_full): Likewise.
9484         (mono_metadata_parse_method_signature_full): Likewise.
9485         (mono_metadata_parse_generic_inst): Likewise.
9486         (mono_metadata_parse_generic_param): Likewise.
9487         (mono_metadata_parse_mh_full): Likewise.
9488         (mono_type_create_from_typespec_full): Likewise.
9489
9490 2004-12-03  Martin Baulig  <martin@ximian.com>
9491
9492         * class-internals.h (MonoGenericContainer): Replaced the
9493         `MonoGenericContext * pointer with a `MonoGenericContext'
9494         structure and made it the first element.
9495
9496 2004-12-03  Martin Baulig  <martin@ximian.com>
9497
9498         * class.c
9499         (inflate_generic_type): Set the `context->container' when creating
9500         a new MonoGenericContext.
9501         (mono_class_inflate_generic_method): Likewise.
9502         (mono_class_create_from_typespec): Just use `context->container'
9503         to get the container.
9504
9505         * loader.c (method_from_methodspec): Set `context->parent' from
9506         `context->container' - and if that's a method container, use its
9507         parent.  Also set the `context->container' when creating a new
9508         MonoGenericContext.
9509         (mono_get_method_from_token): Use just `context->container' to get
9510         the container.
9511
9512         * metadata.c (do_mono_metadata_parse_generic_class): Also set
9513         `gclass->context->container'.
9514
9515         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
9516         the `context->container' when creating a new MonoGenericContext.
9517
9518 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
9519
9520         * reflection.c (compare_genericparam): Sort params with identical
9521         owner by their number. Fixes gen-111 on sparc.
9522
9523 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9524
9525         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
9526         around the domain changes.
9527
9528         * appdomain.c (mono_domain_unload): Handle the case when the thread
9529         calling Unload is itself being aborted during unloading. Fixes #70022.
9530
9531         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
9532
9533         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
9534         checkpoint_func as an icall so it gets a wrapper.
9535         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
9536         in the cross-appdomain wrappers too.
9537
9538         * threads.c (mono_thread_has_appdomain_ref): Make this public.
9539
9540         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
9541
9542         * reflection.c: Fix some memory leaks.
9543         
9544 2004-12-02  Martin Baulig  <martin@ximian.com>
9545
9546         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
9547
9548         * metadata.c (generic_class_cache): New static hashtable.
9549         (mono_metadata_lookup_generic_class): New public method.
9550
9551 2004-12-02  Martin Baulig  <martin@ximian.com>
9552
9553         * class.c (mono_class_create_from_typedef): Call
9554         mono_class_setup_parent() and mono_class_create_mono_type() before
9555         parsing the interfaces.
9556
9557 2004-12-02  Martin Baulig  <martin@ximian.com>
9558
9559         * metadata.c (generic_inst_cache): New static hashtable.
9560         (mono_metadata_lookup_generic_inst): New public function.
9561         (mono_metadata_inflate_generic_inst): New public function.
9562         (mono_metadata_parse_generic_inst): New public function.
9563         (do_mono_metadata_parse_generic_class): Use the new
9564         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
9565         since this'll also use the cache.
9566
9567         * reflection.c (mono_reflection_bind_generic_method_parameters):
9568         Use mono_metadata_lookup_generic_inst() to use the new cache.
9569
9570         * class.c (inflate_mono_type): Use
9571         mono_metadata_inflate_generic_inst() to inflate a generic
9572         instance; this'll also use the new cache.
9573
9574         * loader.c (method_from_methodspec): Use
9575         mono_metadata_parse_generic_inst() and
9576         mono_metadata_inflate_generic_inst() rather than parsing it
9577         manually, so we can use the new cache.
9578
9579 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9580
9581         * threads.c (wait_for_tids): Do not incorrectly free threads when 
9582         the wait times out.
9583
9584 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
9585
9586         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
9587         iter->args based on whether parameters are passed in registers (i.e.
9588         MONO_ARCH_REGPARMS is defined)
9589
9590 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
9591
9592         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
9593         the exception message. Fixes #70070.
9594         (method_from_methodspec): Fix warnings.
9595
9596 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9597
9598         * process.c: (complete_path) return the path quoted
9599
9600 2004-12-01  Martin Baulig  <martin@ximian.com>
9601
9602         * class-internals.h (MonoGenericInst): New structure.
9603         (MonoGenericClass): Replaced `type_argc', `type_argv' and
9604         `is_open' with `MonoGenericInst *inst'.
9605         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
9606         `is_open' with `MonoGenericInst *inst'.
9607
9608 2004-11-30  Martin Baulig  <martin@ximian.com>
9609
9610         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
9611
9612         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
9613         to `generic_class_cache'.
9614
9615         * metadata.c
9616         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
9617         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
9618         (mono_generic_inst_is_valuetype): Renamed to
9619         mono_generic_class_is_valuetype().
9620
9621         * class-internals.h
9622         (MonoGenericInst): Renamed to MonoGenericClass.
9623         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
9624         (MonoClass): Renamed `generic_inst' to `generic_class'.
9625         (MonoGenericContext): Renamed `ginst' to `gclass'.
9626
9627         * object-internals.h
9628         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
9629
9630         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
9631         mono_reflection_generic_class_initialize().
9632
9633         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
9634         now known as "System.Reflection.MonoGenericClass".
9635         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
9636
9637 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
9638
9639         * class-internals.h: Added a flag field to MonoClass to cache the
9640         declarative security attributes actions associated with the class.
9641         * domain-internals.h: Added booleans to MonoJitInfo to cache the
9642         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
9643         applicable to the JITted method.
9644         * reflection.c|h: Added functions to extract (as flags) which security
9645         actions are available (declaratively) for a method, class or assembly.
9646         * metadata.c|h: Added functions to search the declarative security
9647         table in the metadata.
9648         
9649 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
9650
9651         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
9652         EXPORTEDTYPES are already in the class name cache, so there is no
9653         need to add extra code here to look at them. Just removes a bit of
9654         cruft.
9655
9656         (ves_icall_System_Environment_get_TickCount): No need for #if
9657         WINDOWS. We already have the code in io-layer.
9658
9659 2004-11-28  Martin Baulig  <martin@ximian.com>
9660
9661         * loader.c
9662         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
9663         Fixes gen-112.cs.
9664
9665 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
9666
9667         * assembly.c (do_mono_assembly_open): Instead of having a
9668         conditional WITH_BUNDLE, incorporate support for bundles here, by
9669         having a global `bundles' variable holding a pointer to the actual
9670         bundles. 
9671
9672         (mono_register_bundled_assemblies): New API call used by the
9673         bundle code. 
9674
9675         See mkbundle.1 for details.
9676         
9677 2004-11-27  Martin Baulig  <martin@ximian.com>
9678
9679         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
9680         the vtable for generic methods.
9681
9682 2004-11-26  Martin Baulig  <martin@ximian.com>
9683
9684         * metadata.c
9685         (mono_metadata_generic_method_hash): New public function.
9686         (mono_metadata_generic_method_equal): Likewise.
9687
9688         * class-internals.h
9689         (MonoGenericContainer): Added `GHashTable *method_hash'.
9690
9691         * reflection.c (ReflectionMethodBuilder): Added
9692         `MonoGenericContainer *generic_container'.
9693         (reflection_methodbuilder_to_mono_method): Don't create a new
9694         MonoGenericContainer each time we're called.
9695         (mono_reflection_bind_generic_method_parameters): Use
9696         `container->method_hash' to cache the results so we don't create a
9697         different method if we're called several times with the same
9698         arguments.
9699
9700         * loader.c (method_from_methodspec): Use the new
9701         `container->method_hash' here, too.
9702
9703 2004-11-26  Martin Baulig  <martin@ximian.com>
9704
9705         * class.c (inflate_generic_signature): Correctly compute
9706         `res->has_type_parameters'.
9707         (mono_class_vtable): Use the `has_type_parameters' flag to
9708         determine whether we're a generic method.
9709
9710         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
9711
9712 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
9713
9714         * object.c (mono_runtime_run_main): Fix a small memory leak.
9715
9716 2004-11-25  Martin Baulig  <martin@ximian.com>
9717
9718         * class.c (set_generic_param_owner): Fixed the loop.
9719
9720 2004-11-25  Martin Baulig  <martin@ximian.com>
9721
9722         * object.c (mono_class_vtable): Don't create any JIT wrappers for
9723         generic methods.
9724
9725 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
9726
9727         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
9728         names. Fixes #69787.
9729
9730 2004-11-24  Martin Baulig  <martin@ximian.com>
9731
9732         * class.c (mono_class_create_generic_2): If we don't have a
9733         `ginst->parent', inflate `gklass->parent' to get our parent.
9734
9735 2004-11-24  Martin Baulig  <martin@ximian.com>
9736
9737         * reflection.c (compare_genericparam): Correctly sort the
9738         GenericParam table; fixes #69779.
9739
9740 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
9741
9742         * reflection.c: When writing a PE file, don't create a huge
9743         buffer in memory. Just write the arrays we have to the file.
9744         This reduces memory usage.
9745
9746         * metadata-internals.h: MonoDynamicStream pefile is no longer used
9747         globally.
9748
9749 2004-11-17  Martin Baulig  <martin@ximian.com>
9750
9751         * class.c (mono_class_init): Don't setup `class->parent' for
9752         dynamic instances; moved this to mono_class_generic_2().
9753         (mono_class_create_generic): Also set `klass->inited' for dynamic
9754         generic instances.
9755         (mono_class_create_generic_2): Don't do anything for dynamic
9756         generic instances.  Set `klass->parent' here and also call
9757         mono_class_setup_parent() here. 
9758
9759         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
9760         `MonoType *parent' argument; set `ginst->parent' before calling
9761         mono_class_create_generic_2(), so we set the correct parent.
9762
9763 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
9764
9765         * reflection.c: allow getting attributes from ModuleBuilder
9766         (used by ikvm).
9767
9768 2004-11-17  Martin Baulig  <martin@ximian.com>
9769
9770         * class.c (mono_class_create_from_typedef): If a type parameter is
9771         inherited from an outer class, set its owner to that class.
9772
9773 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
9774
9775         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
9776           for (int*) written size. This fixes bug #69592.
9777
9778 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
9779
9780         * icall.c: Added IsAuthenticodePresnet internal call.
9781         * image.c|h: New function that check a MonoImage for an Authenticode
9782         signature in the certificate PE data directory.
9783         * security.c|h: New internal call to ask the runtime if an 
9784         Authenticode signature seems referenced in the PE header.
9785
9786 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
9787
9788         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
9789
9790         * reflection.c (mono_image_create_pefile): Free the assembly streams
9791         after writing out the assembly file.
9792
9793         * object.c (mono_runtime_run_main): Fix small memory leak.
9794
9795         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
9796         property access modifiers. Fixes #69389.
9797
9798 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
9799
9800         * domain.c, object.c, object-internals.h, domain-internals.h,
9801         object.h, marshal.c: keep dynamic code info per domain.
9802
9803 2004-11-15  Martin Baulig  <martin@ximian.com>
9804
9805         * class.c (mono_type_get_name_recurse): Put type arguments in
9806         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
9807         see bug #68387.
9808
9809 2004-11-15  Martin Baulig  <martin@ximian.com>
9810
9811         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
9812         (mono_class_setup_vtable): When computing `the_cname' for a
9813         generic instance, don't include the namespace since we'd otherwise
9814         add it twice.
9815
9816 2004-11-15  Martin Baulig  <martin@ximian.com>
9817
9818         * class.c (mono_class_create_generic): Changed return type to void.
9819         (mono_class_create_generic_2): New public function; setup
9820         `class->method', `class->field' and `class->interfaces' here
9821         instead of in mono_class_init().
9822
9823         * class.h (mono_class_create_generic): Moved to class-internals.h.
9824
9825 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
9826
9827         * reflection.c (mono_image_create_pefile): take a file HANDLE.
9828         rather than writing to memory, write to this file. Right now,
9829         we are just writting into a buffer, and copying that. However
9830         we can avoid the buffer later.
9831
9832         (mono_dynamic_stream_reset): new function
9833
9834         * icall.c, object-internals.h: update for the above.
9835
9836 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
9837
9838         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
9839         have been using gc'd memory. First it is slower, unlikely
9840         the comment in the source code said, secondly, it increases
9841         our footprint to do it in the gc.
9842
9843         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
9844         the method so that it does not have to copy to managed code.
9845
9846 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
9847
9848         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
9849
9850 2004-11-12  Martin Baulig  <martin@localhost>
9851
9852         * reflection.c (mono_image_create_token): Allow generic method
9853         definitions here, since they may appear in an `.override'; see
9854         gen-98/gen-99 for an example.
9855
9856 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
9857
9858         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
9859         #69365.
9860
9861         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
9862         descriptive.
9863
9864 2004-11-11  Martin Baulig  <martin@ximian.com>
9865
9866         * class.c (mono_class_setup_vtable): In an explicit interface
9867         implementation, the method name now includes the arity.
9868
9869 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
9870
9871         * object.c (mono_array_full_copy): Fix warning.
9872
9873 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
9874
9875         * appdomain.c: Removed look_for_method_by_name(). Use the new method
9876         mono_class_get_method_from_name() instead.
9877         
9878         * class-internals.h: Added two new types of wrappers. 
9879         Added MonoRemotingTarget enum. Added new trampoline function type, which
9880         takes an additional MonoRemotingTarget value as parameter, so it is
9881         possible to request a trampoline for a specific target.
9882         
9883         * class.c: Added new mono_class_get_method_from_name() method.
9884         
9885         * class.h: In MonoRemoteClass, we can have now to vtables, one for
9886         general remoting sinks and one specific for cross domain calls.
9887         
9888         * debug-helpers.c: Added new wrapper names.
9889         
9890         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
9891         of a remote class.
9892         
9893         * image.c: Porperly delete value objects form the remoting invoke hashtable.
9894         
9895         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
9896         with several other methods (mono_marshal_get_xappdomain_dispatch,
9897         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
9898         and others) can generate a fast remoting wrapper for cross domain calls.
9899         More information can be found in docs/remoting.
9900         Other changes: Removed mono_find_method_by_name, and used
9901         mono_class_get_method_from_name instead.
9902         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
9903         is stored in the remoting invoke hashtable.
9904         
9905         * marshal.h: published the new method for getting the xdomain wrapper,
9906         and also added a method for getting the adequate wrapper for a given
9907         method and target.
9908         
9909         * object-internals.h, object.c: Added a couple of methods for capying and
9910         cloning arrays.
9911         Modified mono_install_remoting_trampoline, which takes the new remoting
9912         trampoline that has a remoting target as parameter.
9913         mono_class_proxy_vtable now also takes a remoting target as parameter, and
9914         will return the most suitable vtable for the target.
9915         Added mono_remote_class_vtable, which returns the vtable of a remote class
9916         (which can be the normal remoting vtable or the xdomain vtable).
9917         
9918         * threads.c: the xdomain invoke and dispatch wrappers must also be
9919         protected against interruptions.
9920
9921 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9922
9923         * icall.c: use memmove in BlockCopyInternal when the source and
9924         destination arrays are the same.
9925
9926 2004-11-09  Martin Baulig  <martin@ximian.com>
9927
9928         * class-internals.h (MonoGenericContainer): Removed `method' and
9929         `signature', replaced them with `is_method' and `is_signature'
9930         flags.  Added `context'.
9931
9932         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
9933         instead of a `MonoGenericContainer *'.
9934
9935         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
9936         for dynamic type parameters.
9937         (mono_metadata_load_generic_params): Setup `container->context'.
9938
9939         * reflection.c (mono_reflection_setup_generic_class): Setup
9940         `tb->generic_container->context'.
9941         (do_mono_reflection_bind_generic_parameters): Use
9942         mono_class_inflate_generic_type() to correctly inflate types,
9943         rather than using our own hack just for MONO_TYPE_VAR.
9944
9945 2004-11-09  Martin Baulig  <martin@ximian.com>
9946
9947         * class.c (mono_class_inflate_generic_method): Small fix; don't
9948         crash here.
9949
9950         * icall.c
9951         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
9952         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
9953         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
9954         (ves_icall_Type_BindGenericParameters): Likewise.
9955         (ves_icall_Type_get_IsGenericInstance): Likewise.
9956         (ves_icall_Type_GetGenericParameterPosition): Likewise.
9957         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
9958         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
9959         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
9960
9961 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
9962
9963         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
9964         assembly versions and public key tokens. Fixes #69113.
9965
9966 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
9967
9968         * metadata.c: fix bug introduced with the type cache changes
9969         on 2004-11-06.
9970
9971 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
9972
9973         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
9974         the MonoClass pointer instead of the token in exception clauses.
9975         * reflection.c: updates for the above and make the code not depend
9976         on the structure of MonoExceptionClause.
9977
9978 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
9979
9980         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9981         Add support for dynamic assemblies. Fixes #69114.
9982
9983         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
9984
9985 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
9986
9987         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
9988         since most only those methods use it. the code member of
9989         MonoMethodPInvoke was dead, so that can be removed too. Also,
9990         remove inline_count (again, not used), and move slot so that it
9991         can share bits with some other flags. This saves 8 bytes in the
9992         structure and gives us about 50 kb back for mcs helloworld.cs
9993
9994         * *.[ch]: Do naming changes for the above.
9995
9996         * loader.c (mono_method_get_header): Lazily init the header
9997         on first access.
9998         (mono_get_method_from_token): don't init the header here
9999         (mono_free_method): the header may never be allocated
10000
10001         Overall, this saves 150 kb of unmanaged allocations
10002         for mcs helloworld.cs. That accounts for 10% of the unmanaged
10003         memory at runtime.
10004         
10005         * loader.c, loader.h (mono_method_get_header): new accessor.
10006
10007         * *.[ch]: use the above method. Prepares us to lazily load
10008         the header.
10009
10010         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
10011         three warnings, which are actual bugs (see 69206).
10012
10013         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
10014         unused. Saves a cool 4 bytes / method.
10015
10016 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
10017
10018         * metadata.c (builtin_types): Add types for System.Object here.
10019         (mono_metadata_parse_type_full): Cache MonoType*'s that are
10020         for a class or valuetype from klass->this_arg or klass->byval_arg.
10021
10022         On mcs for a hello world, this gets us down from 21836 MonoType's
10023         to 14560.
10024
10025         (mono_metadata_free_type): Account for the above change.
10026
10027 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
10028
10029         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
10030         exception instead of asserting if name is null.
10031         (ves_icall_System_AppDomain_GetData): Ditto.
10032
10033 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
10034
10035         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
10036         EnumBuilder.
10037
10038         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
10039         Return NULL when the domain does not have entry_assembly set.
10040
10041         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
10042         Add a 'resource_modules' argument.
10043         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
10044
10045         * reflection.c (mono_reflection_create_runtime_class): Move setting
10046         of wastypebuilder here, so mono_get_type_object () returns a MonoType
10047         for enums too.
10048
10049         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
10050         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
10051         Throw an ArgumentNullException if 'ptr' is null.
10052
10053         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
10054         assemblies here. Fixes #69020.
10055
10056 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
10057
10058         * reflection.c (build_compressed_metadata): Fix the previous patch for
10059         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
10060         the stack.
10061
10062 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
10063
10064         * assembly.c (mono_assembly_names_equal): Allow a match if one of
10065         the cultures is false. Fixes #69090.
10066
10067         * reflection.c (build_compressed_metadata): Fix invalid memory read 
10068         detected by valgrind.
10069         
10070         * reflection.c (mono_reflection_get_type): Avoid triggering a 
10071         TypeResolve multiple times for the same type. Fixes #65577.
10072
10073 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
10074
10075         * marshal.c: Avoid using ldftn to call managed functions. It is
10076         much slower than just a call.
10077
10078         * reflection.c (mono_module_get_object): free the basename we
10079         allocate here from glib.
10080         
10081         * reflection.c (ensure_runtime_vtable): make sure to free
10082         overrides.  Also, we were allocating an array of MonoMethod not an
10083         array of MonoMethod*.
10084
10085         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
10086
10087         * image.c (mono_image_close): free image->guid here.
10088
10089 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
10090
10091         * reflection.c: Fix some spec conformance issues with the PE file
10092         structures so mcs compiled apps run on the Net 2.0 beta.
10093
10094 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
10095
10096         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
10097         Implement this. Fixes #67264.
10098
10099         * debug-helpers.h debug-helpers.c marshal.c: Move 
10100         mono_find_method_by_name to debug-helpers.c.
10101
10102 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
10103
10104         * object.c (mono_release_type_locks): type_initialization_hash is
10105         a GHashTable.
10106
10107         * reflection.c object.c object-internals.h: Fix warnings.
10108
10109         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
10110         without accessors. Fixes #61561.
10111
10112         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
10113         application base from the root domain if not set. Fixes #65641.
10114         (mono_runtime_init): Fix warning.
10115
10116 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10117
10118         * appdomain.c: call mono_thread_pool_init.
10119         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
10120         of worker threads based on the number of CPUs and the environment
10121         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
10122         for non-windows (windows) systems.
10123
10124 2004-10-27  Chris Toshok  <toshok@ximian.com>
10125
10126         * mono-debug-debugger.c (write_class): don't call mono_class_init
10127         here, as even with the check for (!klass->init_pending), we get
10128         into a situation where we're hitting cycles in class
10129         initialization.  Fixes #68816.
10130
10131 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
10132
10133         * image.c: Avoid overwriting values in the loaded_images_hash when an
10134         assembly is loaded multiple times. Fixes #61152.
10135
10136         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
10137         so multiple satellite assemblies for the same name can be loaded.
10138         Fixes #68259.
10139
10140         * mono_domain_assembly_preload: Actually return the loaded assembly, 
10141         not NULL.
10142
10143         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
10144         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
10145
10146         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
10147         pending finalizers are not invoked after the appdomain has been 
10148         unloaded. Fixes #67862.
10149
10150 2004-10-22  Martin Baulig  <martin@ximian.com>
10151
10152         * mono-debug-debugger.c
10153         (mono_debugger_runtime_invoke): Don't box valuetypes.
10154
10155 2004-10-22  Chris Toshok  <toshok@ximian.com>
10156
10157         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
10158         don't hide private methods.
10159
10160 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
10161
10162         * icall.c: Allows the runtime to "share" (when known) the public key
10163         token of an assembly. This avoid the need to recalculate the token 
10164         (from the public key) in managed code.
10165
10166 2004-10-21  Chris Toshok  <toshok@ximian.com>
10167
10168         * debug-helpers.c (append_class_name): argh, revert last patch.
10169         
10170 2004-10-21  Chris Toshok  <toshok@ximian.com>
10171
10172         * debug-helpers.c (append_class_name): use '+' as the delimiter,
10173         not '/', so that it matches what the debugger uses to look up
10174         methods.
10175
10176 2004-10-21  Martin Baulig  <martin@ximian.com>
10177
10178         * mono-debug-debugger.c (mono_debugger_throw_exception): New
10179         public method; this is called each time an exception is thrown and
10180         allows the debugger to use exception catch points.
10181
10182 2004-10-21  Martin Baulig  <martin@ximian.com>
10183
10184         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
10185         the stack pointer and the exception object in some struct and pass
10186         that to the debugger.
10187
10188 2004-10-21  Chris Toshok  <toshok@ximian.com>
10189
10190         * mono-debug-debugger.c (do_write_class): add instance/static
10191         event support.  We don't expose "raise" or "other" yet.
10192         (event_is_static): new method.
10193
10194 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
10195
10196         * mono-debug-debugger.c
10197         (mono_debugger_handle_exception): Remove
10198         bogus return value for fussy compilers.
10199
10200 2004-10-20  Martin Baulig  <martin@ximian.com>
10201
10202         * mono-debug-debugger.c
10203         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
10204         (mono_debugger_handled_exception): Likewise.
10205
10206 2004-10-20  Martin Baulig  <martin@ximian.com>
10207
10208         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10209         MONO_DEBUGGER_EVENT_EXCEPTION.
10210
10211         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10212         public function to send the debugger a notification for an
10213         exception and inform it about a catch/finally clause.
10214
10215 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10216
10217         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10218         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10219         fix 2.95 build. 
10220
10221         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10222
10223 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10224
10225         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10226         marshalled as [In,Out]. Fixes #58325.
10227
10228 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10229
10230         * reflection.c (mono_method_body_get_object): Implement some fields.
10231
10232 2004-10-12  Martin Baulig  <martin@ximian.com>
10233
10234         * reflection.c (mono_reflection_bind_generic_parameters): Small
10235         fix, correctly retrieve our parent from a generic instance.
10236
10237 2004-10-12  Martin Baulig  <martin@ximian.com>
10238
10239         * metadata.c (mono_metadata_generic_param_equal): We always have
10240         an owner.
10241
10242         * class.c
10243         (mono_class_from_generic_parameter): We need to have an owner.
10244         (my_mono_class_from_generic_parameter): Likewise.
10245
10246         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10247         mono_reflection_create_generic_class() and added a new
10248         mono_reflection_setup_generic_class().  
10249         (mono_reflection_initialize_generic_param): If we're a nested
10250         generic type and inherited from the containing class, set our
10251         owner to the outer class.
10252
10253 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10254
10255         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10256
10257         * reflection.c (mono_method_body_get_object): New function to create
10258         a MethodBody object.
10259
10260         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10261
10262 2004-10-11  Martin Baulig  <martin@ximian.com>
10263
10264         * metadata.c (_mono_metadata_type_equal): Renamed to
10265         do_mono_metadata_type_equal() and made static.
10266
10267 2004-10-11  Martin Baulig  <martin@ximian.com>
10268
10269         * appdomain.c: Bump corlib version number to 28.
10270
10271 2004-10-10  Martin Baulig  <martin@ximian.com>
10272
10273         * class-internals.h
10274         (MonoGenericInst): Added `MonoGenericContainer *container'.
10275         (MonoGenericMethod): Likewise.
10276         (MonoGenericContext): Likewise.
10277         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10278
10279         * metadata.c
10280         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10281         (do_mono_metadata_parse_generic_inst): Likewise.
10282         (mono_metadata_parse_type_full): New public method.  This is the actual
10283         mono_metadata_parse_type() implementation - with an additional
10284         `MonoGenericContainer *' argument.
10285         (mono_metadata_parse_array_full): Likewise.
10286         (mono_metadata_parse_signature_full): Likewise.
10287         (mono_metadata_parse_method_signature_full): Likewise.
10288         (mono_metadata_parse_mh_full): Likewise.
10289         (mono_type_create_from_typespec): Likewise.
10290         (mono_metadata_interfaces_from_typedef_full): New public method;
10291         this is similar to the other _full() methods, but we take a
10292         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10293         (mono_metadata_parse_generic_param): Take an additional
10294         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10295         from that container.
10296         (mono_metadata_generic_param_equal): New static method to compare
10297         two type parameters.
10298         (_mono_metadata_type_equal): New static method; takes an
10299         additional `gboolean signature_only' argument - if true, we don't
10300         compare the owners of generic parameters.
10301         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10302         with a TRUE argument - do a signature-only comparision.
10303
10304         * loader.c: Use the new _full() methods and pass the
10305         MonoGenericContainer to them.
10306
10307         * object-internals.h (MonoReflectionTypeBuilder): Added
10308         `MonoGenericContainer *generic_container' field.
10309         (MonoReflectionMethodBuilder): Likewise.
10310
10311 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10312
10313         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10314         case initial images of dynamic assemblies.
10315
10316         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10317
10318         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10319
10320         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10321         length of event->other array.
10322         (typebuilder_setup_events): Ditto.
10323
10324         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10325         'assembly_by_name' and add an 'assemblies' list.
10326
10327         * assembly.h assembly.c: Add a new search hook for determining whenever
10328         an assembly is already loaded. Use this instead of searching in the
10329         loaded_assemblies list.
10330
10331         * domain.c appdomain.c: Implement the new search hook so loaded 
10332         assemblies are now scoped by appdomain. Fixes #67727.
10333
10334 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10335
10336         * threads.c (mono_thread_attach): Initialize synch_lock field so
10337         mono_thread_detach works again.
10338
10339         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
10340         'lib' too. Fixes #63130.
10341
10342 2004-10-06  Jackson Harper  <jackson@ximian.com>
10343
10344         * culture-info-tables.h: regenerated.
10345
10346 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
10347
10348         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10349         implemented by other interfaces in the result. Fixes #65764.
10350         
10351         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10352         Handle unloadable modules without crashing.
10353
10354         * image.c (load_modules): Revert the previous patch since modules must
10355         have a fixed index inside the array.
10356         
10357         * image.c (load_modules): Don't include native modules in the modules
10358         array.
10359
10360 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10361
10362         * reflection.h: Add param_defaults field.
10363
10364         * reflection.c: Add support for parameter defaults in dynamic methods.
10365         Fixes #64595.
10366
10367         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10368         an empty string when a type has no namespace. Fixes #64230.
10369
10370 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10371
10372         * tabledefs.h: Added "internal" security actions to support non-CAS
10373         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10374         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10375
10376 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10377
10378         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10379         constructor of abstract class. Fixes #61689.
10380
10381 2004-10-04  Martin Baulig  <martin@ximian.com>
10382
10383         * class-internals.h (MonoGenericContainer): New type.
10384         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10385         `MonoGenericContainer *generic_container'.
10386         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10387         `MonoGenericContainer *generic_container'.
10388
10389         * metadata.c (mono_metadata_load_generic_params): Return a
10390         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10391         removed the `num' argument.
10392
10393 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10394
10395         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10396         for dynamic images.
10397
10398         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10399         machine fields.
10400
10401         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10402
10403         * reflection.c: Save pe_kind and machine values into the generated
10404         image file.
10405
10406         * appdomain.c: Bump corlib version number.
10407
10408         * object-internals.h: Reorganize layout of LocalBuilder.
10409
10410         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10411         New helper function.
10412
10413         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10414         created MonoType for dynamic types. Fixes #66180.
10415
10416 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10417
10418         * threadpool.c: the ares hashtable needs a critical section around it.
10419         this prevents some nasty segfaults
10420
10421 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10422
10423         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10424         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10425         bug 67324).
10426         
10427 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10428
10429         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10430         
10431 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10432
10433         * image.c: Always canonicalize image file names, to avoid loading
10434         the same assembly twice when referenced using a relative path.
10435
10436 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10437
10438         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10439
10440         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10441
10442         * marshal.c: Fix warnings.
10443
10444 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
10445
10446         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
10447         attempting to marshal the delegate_trampoline as the method_addr.
10448         This patch has a static hashtable of marshalled delegates so that 
10449         we can map delegate_trampoline addresses back to delegates.  This
10450         allows a delegate passed to managed code to be passed back into native
10451         code.  Fixes #67039
10452
10453 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10454
10455         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
10456
10457         * reflection.c (method_encode_code): Align method headers properly.
10458         Fixes #66025.
10459
10460 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10461
10462         * marshal.c: In the runtime invoke wrapper, reset the abort
10463         exception if it is cached. This avoids the automatic rethrowal of 
10464         the exception after the catch of the wrapper. Also check for pending
10465         interruptions before calling the managed method. This is done using
10466         the new method emit_thread_force_interrupt_checkpoint, since the
10467         normal checkpoint method is ignored when running the invoke wrapper.
10468         * object.c: If the abort exception is rethrown, set the abort_exc
10469         field of the thread, so it will be rethrown aftere every catch.
10470         * threadpool.c: Only run an interruption checkpoint if what has been
10471         requested is a stop of the thread (aborts will be ignored).
10472         * threads.c: By default, a thread will now never be interrumped while
10473         running the runtime invoke wrapper (this ensures that runtime_invoke
10474         will always return to the caller if an exception pointer is provided).
10475         There is a new special method mono_thread_force_interruption_checkpoint()
10476         to force an interruption checkpoint even if running a protected
10477         wrapper, which is used by the same runtime invoke wrapper to do a check
10478         at a safe point.
10479
10480 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10481
10482         * object.c, object-internals.h: Implemented mono_release_type_locks,
10483         which releases the cctor locks held by a thread.
10484         * threads.c, threads.h: In thread_cleanup, release cctor locks held
10485         by a thread. Added mono_thread_exit() method to be used to safely stop
10486         a thread.
10487
10488 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10489
10490         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10491         Move null check before dereference.  Avoid indexing beyond the end
10492         of the 'modules' array.
10493
10494 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10495
10496         * metadata-internals.h (MonoImage): Add module_count field.
10497         * image.c (load_modules): Set image->module_count.
10498         (mono_image_load_file_for_image): Use image->module_count.
10499         * reflection.c (mono_image_load_module): Append to image->modules array 
10500         of dynamic assembly.
10501         (mono_module_get_object): Fix loop to actually increment index.
10502         Use image->module_count.
10503         * assembly.c (mono_assembly_load_references): Use image->module_count.
10504         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
10505         Likewise.
10506
10507 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10508
10509         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
10510         Avoid assert on generic types.
10511
10512 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
10513
10514         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
10515
10516         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
10517
10518         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
10519         function to convert a MarshalSpec structure to its managed counterpart.
10520
10521         * reflection.c: Fix warnings.
10522         
10523         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
10524         field.
10525
10526         * icall.c (mono_create_icall_signature): Fix build.
10527
10528 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
10529
10530         * icall.c: Add MakePointType icall.
10531
10532         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
10533         warnings.
10534
10535 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10536
10537         * threadpool.c: reuse allocated slots in the queue.
10538
10539 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
10540
10541         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
10542
10543         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
10544
10545         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
10546         previous change.
10547
10548         * tabledefs.h: Add constants for pinvoke attributes BestFit and
10549         ThrowOnUnmappableChar.
10550
10551         * icall.c (ves_icall_Type_GetPacking): New icall.
10552
10553 2004-09-24  Martin Baulig  <martin@ximian.com>
10554
10555         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
10556
10557 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10558
10559         * appdomain.c:
10560         (mono_domain_set): allow setting a domain that is being unloaded.
10561         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
10562         being unloaded.
10563
10564 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10565
10566         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
10567         the GetCustomAttributes icall.
10568
10569 2004-09-23  Martin Baulig  <martin@ximian.com>
10570
10571         * object-internals.h (MonoReflectionGenericParam): Replaced
10572         'has_ctor_constraint', `has_reference_type' and `has_value_type'
10573         with `guint32 attrs'.
10574
10575 2004-09-23  Martin Baulig  <martin@ximian.com>
10576
10577         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
10578
10579 2004-09-23  Martin Baulig  <martin@ximian.com>
10580
10581         * object-internals.h (GenericParameterAttributes): New enum.
10582
10583 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10584
10585         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
10586         
10587         * class.c (init_events): Fill out event->other field.
10588
10589         * class.c: Fix warnings.
10590
10591         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
10592
10593 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
10594
10595         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
10596         walk which doesn't supply the IL offset.
10597
10598 2004-09-22  Martin Baulig  <martin@ximian.com>
10599
10600         * reflection.c (mono_reflection_setup_internal_class): If we're
10601         System.ValueType, System.Object or System.Enum, set
10602         `klass->instance_size' and create the vtable.
10603         (mono_reflection_create_internal_class): If we're an enum type,
10604         get the base class from our current corlib.
10605
10606 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
10607
10608         * reflection.h (MonoResolveTokenError): New type.
10609
10610         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
10611         icall.
10612
10613         * icall.c: Add an 'error' argument to the ResolveToken icalls.
10614
10615 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
10616
10617         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
10618         Support also calling constructors, but only for already allocated objects.
10619
10620 2004-09-17  Geoff Norton <gnorton@customerdna.com>
10621
10622         * reflection.c (type_get_qualified_name): If the klass is null
10623         return the typename to avoid a NullRefEx.
10624         (encode_cattr_value): Get the qualified name of the boxed type,
10625         not the underlying enumtype.  Fixes #62984.
10626
10627 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
10628
10629         * marshal.c: Fix problems with previous checkin.
10630
10631 2004-09-21    <vargaz@freemail.hu>
10632
10633         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
10634         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
10635
10636         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
10637
10638 2004-09-21  Geoff Norton <gnorton@customerdna.com>
10639
10640         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
10641         should only return a type for pointers, arrays, and passbyref types.
10642         Fixes bug #63841.
10643
10644 2004-09-21  Martin Baulig  <martin@ximian.com>
10645
10646         * domain.c (mono_debugger_check_runtime_version): New public
10647         function.
10648
10649         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
10650
10651 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
10652
10653         * reflection.c: Added missing sort to the declarative security 
10654         attributes table. MS implementation stops seeing the attributes if the
10655         token number regress in the table (as shown by ildasm and permview).
10656
10657 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
10658
10659         * object-internals.h (MonoReflectionModule): Add 'token' field.
10660         
10661         * reflection.c (mono_reflection_get_token): Add support for Module
10662         and Assembly.
10663         (mono_module_get_object): Set 'token' field.
10664         (mono_module_file_get_object): Set 'token' field.
10665
10666         * icall.c: Add new Assembly and Module icalls.
10667
10668         * appdomain.c: Bump corlib version.
10669
10670 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
10671
10672         * loader.h loader.c class.h class.c: Add helper functions for obtaining
10673         tokens of metadata objects.
10674
10675         * reflection.h reflection.c (mono_reflection_get_token): New function
10676         to obtain the token of a metadata object.
10677
10678         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
10679
10680 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
10681
10682         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
10683         
10684         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
10685
10686 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
10687
10688         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
10689         * object-internals.h: Added 3 MonoArray* members to MonoReflection
10690         AssemblyBuilder to access the permissions set in the class lib.
10691         * reflection.c: Added security attributes encoding step in 
10692         mono_image_build_metadata.
10693         * tabledefs.h: Added new security actions defined in 2.0:
10694         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
10695
10696 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10697
10698         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
10699         macro parameter.
10700
10701 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10702  
10703         * locales.c: nullify the ICU_collator member of CompareInfo when it is
10704           finalized. There where random SIGSEVs at program termination, when
10705           an object being finalized was trying to do a string comparison and
10706           the current culture was already finalized.
10707  
10708 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10709
10710         * threads.c: call thread_cleanup before finishing the thread if we get
10711         there.
10712
10713 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
10714
10715         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
10716         assemblies from the parent. Fixes #65665.
10717
10718 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
10719
10720         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
10721         modifiers.
10722
10723 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
10724
10725         * reflection.h: add prototype for mono_get_dbnull_object
10726         * reflection.c: add prototypes for get_default_param_value_blobs 
10727         and mono_get_object_from_blob for fussier compilers
10728
10729 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
10730  
10731         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
10732         false deadlock checks in class initialization.
10733  
10734 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
10735
10736         * image.c (mono_image_addref): Fix comment.
10737
10738         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
10739         possible.
10740
10741 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
10742
10743         * reflection.c (mono_param_get_objects): Modified to return
10744         ParameterInfo.DefaultValue object.
10745
10746         (get_default_param_value_blobs):
10747         (mono_get_object_from_blob):
10748         (mono_get_dbnull_object): New helper routines. 
10749
10750         * object.c (mono_get_constant_value_from_blob): New helper routine
10751         carved out from get_default_field_value ()
10752
10753         * object-internals.h (mono_get_constant_value_from_blob): Added
10754         function declaration.
10755
10756 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
10757
10758         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
10759         referenced assemblies. Fixes #62135.
10760
10761         * exception.h exception.c (mono_get_exception_file_not_found2): New
10762         helper function.
10763
10764 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
10765
10766         * class.h class.c: Add mono_type_get_underlying_type ().
10767
10768 2004-09-09  Geoff Norton <gnorton@customerndna.com>
10769
10770         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
10771         Fix GetTypes() to support dynamically created assemblies.
10772
10773 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
10774
10775         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
10776         
10777         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
10778         previous patch.
10779
10780         * reflection.h reflection.c loader.c: Allow dynamic construction of
10781         pinvoke methods. Fixes #65571.
10782         
10783         * reflection.c (mono_reflection_get_type): Revert previous change since
10784         it causes regressions.
10785
10786 2004-09-08  Martin Baulig  <martin@ximian.com>
10787
10788         * class.c (class_compute_field_layout): Don't call
10789         mono_class_layout_fields() for open generic instances.
10790
10791 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
10792         * threads.c appdomain.c: fix typo in GC macro
10793
10794 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10795
10796         * threads.c: don't call mono_thread_detach() in start_wrapper(),
10797         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
10798
10799 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
10800
10801         * image.c (mono_image_close): Applied patch from 
10802         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
10803         assembly is loaded multiple times from data.
10804         
10805         * image.c (mono_image_open): Fix warning.
10806
10807 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10808
10809         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
10810         once. Fixes #58334.
10811         
10812         * reflection.c (mono_reflection_create_runtime_class): Initialize
10813         klass->nested_classes. Fixes #61224.
10814
10815 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
10816
10817         * threads.c: sched_yield() on exit, to allow threads to quit.
10818
10819 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10820
10821         * object.c (mono_unhandled_exception): Remove leftover debug code.
10822
10823 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
10824
10825         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
10826
10827 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10828
10829         * marshal.c (emit_marshal_array): Really null terminate string arrays.
10830         
10831         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
10832
10833 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10834
10835         * marshal.c (emit_marshal_array): Null terminate string arrays.
10836         
10837         * marshal.c (raise_auto_layout_exception): Fix warning.
10838
10839         * reflection.c (mono_param_get_objects): Initialize the default value
10840         with DBNull.Value, not null. Fixes #62123.
10841
10842 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
10843
10844         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
10845         throw an exception with a cute explanation.
10846
10847 2004-09-06  Dick Porter  <dick@ximian.com>
10848
10849         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
10850         Close the new process's thread handle, as we don't use it.  The
10851         handle stays around forever otherwise.
10852
10853 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10854
10855         * object.c (arith_overflow): Fix warning.
10856
10857         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
10858         calling conventions in method refs. Fixes #65352.
10859
10860         * reflection.c: Fix warnings.
10861
10862 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
10863
10864         * icall.c: Add a new icall for Array.Clear
10865
10866 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
10867
10868         * object.c: When allocating an array, we have to throw
10869         an overflow exception if any of the lengths are < 0.
10870
10871 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10872
10873         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
10874         properly. Also move implementation of string array marshalling to 
10875         managed code. Fixes #42316.
10876
10877 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10878
10879         * assembly.c: provide more information when loading an assembly fails.
10880
10881 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10882
10883         * filewatcher.c: don't expect the development fam package to be
10884         installed.
10885
10886 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
10887
10888         * marshal.c: Make a copy of the signature cookie since it will be
10889         freed by the caller.
10890         
10891         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
10892
10893         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
10894
10895         * metadata.c (mono_metadata_free_marshal_spec): New function to free
10896         marshal specs.
10897
10898         * marshal.c: More refactoring.
10899         
10900         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
10901         smaller functions.
10902
10903 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
10904
10905         * object.c: In mono_message_invoke, fill the output parameter array after
10906           calling the managed method (it was done before the call). This fixes
10907           bug #59299.
10908
10909 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
10910
10911         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
10912         as well.
10913
10914 2004-09-02  Martin Baulig  <martin@ximian.com>
10915
10916         * class.c (mono_class_instance_size): Don't allow generic type
10917         definitions or open generic instances.
10918         (mono_class_array_element_size): If we're a value type, call
10919         mono_class_instance_size() on the original class.
10920
10921         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
10922         handle generic instances.
10923
10924         * mono-debug-debugger.c (write_type): Handle generic instances
10925         like classes.
10926
10927 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
10928
10929         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
10930         the allocation request fails. Fixes #65089.
10931
10932         * object.c (mono_runtime_free_method): Do not call mono_free_method.
10933         
10934         * object.c (mono_runtime_free_method): New function to free a dynamic
10935         method.
10936
10937         * marshal.c (mono_delegate_free_ftnptr): New function to free the
10938         delegate trampoline.
10939
10940         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
10941         with hasthis as dynamic,
10942
10943         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
10944
10945         * domain.c (mono_jit_info_table_remove): New function to remove an
10946         entry from the jit info table.
10947
10948         * class-internals.h (MonoMethod): Add 'dynamic' field.
10949
10950         * loader.c: Fix warnings.
10951
10952 2004-09-01  Martin Baulig  <martin@ximian.com>
10953
10954         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
10955         instead of mono_debugger_lock() because the latter one is a no-op
10956         unless running in the debugger.
10957
10958 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
10959
10960         * class.c (class_compute_field_layout): Classes with auto-layout or
10961         reference fields are not blittable.
10962         
10963 2004-09-01  Dick Porter  <dick@ximian.com>
10964
10965         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
10966         mono_image_get_filename() to get the assembly location.
10967
10968         * icall.c:
10969         * metadata.h: Fix compile warnings
10970
10971 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
10972
10973         * class.c (class_compute_field_layout): System.Object is blittable.
10974
10975         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
10976         as in/out. Fixes #59909.
10977
10978 2004-09-01  Martin Baulig  <martin@ximian.com>
10979
10980         * metadata.h (MONO_TYPE_ISREFERENCE): Call
10981         mono_metadata_generic_inst_is_valuetype() if we're a generic
10982         instance to check whether our underlying type is a reference type.
10983
10984 2004-09-01  Martin Baulig  <martin@ximian.com>
10985
10986         * metadata.c (mono_type_size): If we're a generic instance, call
10987         mono_class_value_size() for value types.
10988
10989 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
10990
10991         * marshal.c: Implement more custom marshalling functionality. Fixes
10992         #64915.
10993
10994 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10995
10996         * mono-debug.c, debug-mono-symfile.c: add some locking love.
10997
10998 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
10999
11000         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
11001
11002         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
11003
11004         * icall.c: Fix some warnings.
11005
11006         * threads.c (abort_appdomain_thread): Fix unref errors.
11007         (mono_thread_current): Fix THREAD_DEBUG define.
11008
11009 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
11010
11011         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
11012
11013         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
11014
11015 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
11016
11017         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
11018         string arrays.
11019
11020 2004-08-28  Martin Baulig  <martin@ximian.com>
11021
11022         * metadata.c
11023         (mono_metadata_generic_inst_is_valuetype): New public function.
11024
11025         * metadata.h (MONO_TYPE_ISSTRUCT): Call
11026         mono_metadata_generic_inst_is_valuetype() if we're a generic
11027         instance to check whether our underlying type is a valuetype.
11028
11029 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
11030
11031         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
11032         #63768.
11033
11034 2004-08-25  Martin Baulig  <martin@ximian.com>
11035
11036         * loader.c (mono_get_method_from_token): Abstract methods can also
11037         be generic and thus have type parameters.
11038
11039         * metadata-internals.h
11040         (MonoDynamicImage): Added `GPtrArray *gen_params'.
11041
11042         * reflection.c (mono_image_get_generic_param_info): Don't create a
11043         metadata row, just add an entry to the `gen_params' array.
11044         (build_compressed_metadata): Sort the `gen_params' array and then
11045         actually create the metadata.
11046
11047 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11048
11049         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
11050
11051 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
11052
11053         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
11054
11055 2004-08-24  Martin Baulig  <martin@ximian.com>
11056
11057         * class.cs (mono_class_is_subclass_of): Like an interface, a
11058         generic instance also derives from System.Object.
11059
11060 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
11061
11062         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
11063         custom modifiers to be in any order. Fixes #61990.
11064
11065 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
11066
11067         * object.c: Register mono_object_new_fast icall.
11068         
11069         * object.c (mono_class_get_allocation_ftn): Return to calling
11070         mono_object_new_fast, since it seems faster to compute the object 
11071         size in unmanaged code than passing it as a parameter.
11072
11073         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
11074
11075         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
11076         this function with Boehm as the oom handler, so we don't have to check
11077         the result of GC_malloc.
11078
11079         * object.c: Remove checks for oom.
11080
11081         * object.h object.c (mono_class_get_allocation_ftn): New function to
11082         return the icall which can be used to allocate an instance of a given
11083         class. 
11084
11085         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
11086
11087         * class-internals.h: Add 'enabled' field.
11088
11089 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
11090
11091         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
11092
11093 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
11094         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
11095         value 0x0010.
11096
11097 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
11098
11099         * appdomain.c: use the Tls function for appdomain too,
11100         at Zoltan's request. Actually return in mono_context_get
11101
11102         * appdomain.c, profiler.c, threads.c: use __thread
11103
11104 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
11105
11106         * appdomain.c threads.c: Call GC_CreateThread on windows.
11107
11108         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
11109         multiple libraries since this don't work on windows.
11110
11111 2004-08-18  Martin Baulig  <martin@ximian.com>
11112
11113         * class-internals.h
11114         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
11115         MonoMethodHeader.
11116
11117         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
11118         MonoMethodNormal since we also need it for abstract and interface
11119         methods.
11120
11121         * reflection.c
11122         (build_compressed_metadata): Sort the GenericParam table.
11123         (mono_image_create_token): Added `gboolean create_methodspec'
11124         argument; this is false when generating a MethodImpl token.
11125         (reflection_methodbuilder_to_mono_method): Abstract and interface
11126         methods may also have generic parameters.
11127
11128 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
11129
11130         * appdomain.c: thread local alloc
11131
11132 2004-08-17  Martin Baulig  <martin@ximian.com>
11133
11134         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
11135
11136         * icall.c
11137         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
11138         argument.
11139
11140         * class.c (mono_type_get_full_name): New public function.
11141         (mono_type_get_name): Don't include the type arguments.
11142
11143 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
11144
11145         * Makefile.am: Build static versions of libmetadata and libmonoruntime
11146         for inclusion into the mono executable.
11147
11148 2004-08-16  Martin Baulig  <martin@ximian.com>
11149
11150         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
11151         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
11152
11153 2004-08-14  Martin Baulig  <martin@ximian.com>
11154
11155         * class.c (dup_type): Also copy the `byref' field.
11156
11157 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
11158
11159         * reflection.c (create_dynamic_mono_image): Revert the last change 
11160         since it breaks bootstrap.
11161
11162 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
11163
11164         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
11165
11166         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
11167         not free them with g_free.
11168
11169 2004-08-11  Martin Baulig  <martin@ximian.com>
11170
11171         * reflection.c (mono_reflection_setup_internal_class): Also call
11172         mono_class_setup_mono_type() if we already have a `tb->type.type'.
11173
11174 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
11175
11176         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
11177         called during default (first) AppDomain creation. Keep track of
11178         Evidence when loading assemblies.
11179
11180 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11181
11182         * opcodes.c, opcodes.h: reduce runtime relocations.
11183
11184 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
11185
11186         * culture-info.h, locales.c: fixes and chages to sue the new
11187         optimized format of the locale data.
11188         * culture-info-tables.h: regenerated.
11189
11190 2004-08-06  Geoff Norton <gnorton@customerdna.com>
11191         
11192         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
11193
11194 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
11195
11196         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
11197         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
11198         * domain-internals.h: icall declaration.
11199         * icall.c: icall registration.
11200         * object-internals.h: New fields in MonoAssembly for CAS.
11201
11202 2004-08-05  Duncan Mak  <duncan@ximian.com>
11203
11204         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
11205         CEE_LDELEM_ANY.
11206
11207 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11208
11209         * reflection.c: fix to deal with object[] arrays in custom ctors
11210         (bug #62550).
11211
11212 2004-08-05  Martin Baulig  <martin@ximian.com>
11213
11214         * class.c (mono_class_array_element_size): Added support for
11215         generic instances and correctly handle "recursive" types.
11216
11217 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11218
11219         * assembly.c: Fix warnings.
11220
11221 2004-08-04  Martin Baulig  <martin@ximian.com>
11222
11223         * class.c
11224         (mono_type_get_name_recurse): Added `gboolean include_arity'
11225         argument specifying whether or not we should include the generic
11226         arity in the type name.
11227         (_mono_type_get_name): New static function.
11228         (mono_class_setup_vtable): If we're a generic instance, don't
11229         include the generic arity in the names of explicit method
11230         implementations.        
11231
11232 2004-08-03  Martin Baulig  <martin@ximian.com>
11233
11234         * class.c (mono_type_get_name_recurse): Enclose the generic type
11235         arguments in `<', '>'.
11236
11237 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11238
11239         * gc.c: make GC warning messages use the trace API, they are just
11240         noise to most of the users.
11241
11242 2004-08-03  Martin Baulig  <martin@ximian.com>
11243
11244         * debug-mono-symfile.c (read_string): Correctly read the string.
11245
11246 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11247
11248         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11249         
11250         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11251         icalls.
11252         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11253
11254 2004-07-30  Martin Baulig  <martin@ximian.com>
11255
11256         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11257         Reflect latest symbol writer changes.   
11258
11259 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11260
11261         * object.c: always create an object if null is passed
11262         to Invoke() where a valuetype is expected.
11263
11264 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11265
11266         * marshal.c (mono_marshal_init): make managed
11267         signatures match native ones better for 64bits.
11268
11269 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11270
11271         * appdomain.c: hack to build correctly the private bin path on windows.
11272         Fixes bug #61991.
11273
11274 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11275
11276         * assembly.c: Load mscorlib from the correct framework directory
11277           (mono/<version>/mscorlib.dll).
11278         * appdomain.h: Added prototypes for new functions.
11279         * internals.h: Added some prototypes.
11280         * domain.c: When initializing the runtime, get from the executable and
11281           the configuration files the runtime version that the app supports.
11282           Added support methods for reading app.exe.config. Added list of versions
11283           supported by the JIT. Added two new methods: mono_init_from_assembly,
11284           which initializes the runtime and determines the required version from
11285           the provided exe file, and mono_init_version, which initializes
11286           the runtime using the provided version.
11287         * icall.c: Get machine.config from version-specific directory.
11288         * reflection.c: When generating an image, embed the version number
11289           of the current runtime.
11290
11291 2004-07-28  Dick Porter  <dick@ximian.com>
11292
11293         * socket-io.c
11294         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11295         returned sockaddr size before creating the remote address object.
11296         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11297         61608.
11298
11299 2004-07-28  Dick Porter  <dick@ximian.com>
11300
11301         * locales.c (string_invariant_compare_char): Fix invariant char
11302         compares between upper and lower cases.  Fixes bug 61458.
11303
11304 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11305         
11306         * marshal.c: actually cache stelem.ref wrappers.
11307         
11308 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11309
11310         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11311         sections and remove the mono_cli_rva_map () function.
11312
11313 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11314
11315         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11316         by Geoff Norton (<gnorton@customerdna.com>).
11317
11318 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11319
11320         * class.c: fix class loads for pointer types (typeof(int) !=
11321         typeof(int*)).
11322
11323 2004-07-27  Martin Baulig  <martin@ximian.com>
11324
11325         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11326         reading the debugging information from an external ".mdb" file.
11327
11328 2004-07-24  Martin Baulig  <martin@ximian.com>
11329
11330         * reflection.c (mono_image_get_type_info): Only write a class
11331         layout entry if we actually have a size or a packing size.
11332
11333 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11334
11335         * reflection.c (type_get_fully_qualified_name): 
11336         insert cast to get type checking of ?: with non-gcc compilers
11337
11338 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11339
11340         * rand.c: use g_getenv for both lookups of
11341         MONO_EGD_SOCKET
11342
11343 2004-07-17  Martin Baulig  <martin@ximian.com>
11344
11345         * reflection.c (mono_reflection_bind_generic_method_parameters):
11346         Set `gmethod->reflection_info'.
11347
11348 2004-07-17  Martin Baulig  <martin@ximian.com>
11349
11350         * class.c (mono_class_create_from_typedef): Insert the newly
11351         created class into the hash table before computing the interfaces
11352         since we could be called recursively.
11353
11354 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11355
11356         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11357         function to implement stelem.ref in managed code
11358         * class-internals.h, debug-helpers.c: a new wrapper type
11359         for the above.
11360
11361 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11362
11363         * gc.c: allow GC handles to work even when no GC is compiled in.
11364         Fix part of bug #61134 (GetAddrOfPinnedObject).
11365
11366 2004-07-13  Peter Williams  <peter@newton.cx>
11367  
11368         * process.c (complete_path): Make sure we don't attempt to execute
11369         directories.
11370  
11371 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11372
11373         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11374           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11375           and will add/subtract the hour if needed
11376
11377 2004-07-12  Martin Baulig  <martin@ximian.com>
11378
11379         * reflection.c (mono_field_get_object): If we have
11380         `field->generic_info', take the attributes from
11381         `field->generic_info->generic_type'.    
11382
11383 2004-07-12  Martin Baulig  <martin@ximian.com>
11384
11385         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11386         This function must be called before initializing the runtime.
11387         (mono_debug_init_1): New function; call this after initializing
11388         the runtime, but before loading the assembly.  It tells the
11389         debugger to load corlib and the builtin types.
11390
11391         * mono-debug-debugger.c: Did some larger changes in the debugging
11392         code; support recursive class declarations, make sure we actually
11393         add all classes.
11394
11395 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11396
11397         * debug-helpers.c: undo my previous patch and fixed the real issue in
11398         ../mini/exceptions-x86.c
11399
11400 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11401
11402         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11403         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11404         called from other .cctors.
11405
11406 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11407
11408         * loader.c: Removed the mono_loader_wine_init hack now that we are
11409         doing a managed version of Windows.Forms.
11410
11411 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11412
11413         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11414         threadpool.c, threads.c: remove static data from rootset.
11415
11416 2004-07-09  Dick Porter  <dick@ximian.com>
11417
11418         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11419         Don't do any more processing if the matched length was 0.  It was
11420         increasing the size of the string before.  Fixes bug 61167.
11421
11422 2004-07-09  Dick Porter  <dick@ximian.com>
11423
11424         * socket-io.h:
11425         * socket-io.c
11426         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11427         Add support for SO_PEERCRED if its available.
11428
11429 2004-07-09  Peter Bartok <pbartok@novell.com>
11430         * loader.c: winelib.exe.so error message is now only displayed if
11431         MONO_DEBUG is set. To help us avoid questions when people are trying
11432         out the new Managed.Windows.Forms.
11433
11434 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11435
11436         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11437         for isinst and castclass wrappers.
11438
11439         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11440         to libmetadata from the JIT, so they could be used by the marshalling
11441         code and the interpreter.
11442
11443         * marshal.c: Register marshalling related JIT icalls here instead of
11444         in mini.c. Use CEE_MONO_ICALL instead of the family of 
11445         CEE_MONO_PROC<x> opcodes to call marshalling functions.
11446
11447         * metadata.h: Remove unneeded marshalling conversions.
11448
11449         * opcodes.c: Update for new opcodes.
11450         
11451 2004-07-08  Martin Baulig  <martin@ximian.com>
11452
11453         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
11454         (mono_debug_get_domain_data): Make this function static.
11455
11456 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11457
11458         * gc.c, object.h: add nice GC handle API for embedders.
11459
11460 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
11461
11462         * reflection.c: more changes for the new api
11463
11464         * object.c: When we reflect on a field w/ a constant value, it
11465         will not have a memory location, so we must access metadata. Also,
11466         allow easier reading of strings so that we can read them from
11467         the constant data.
11468
11469         * class.c (mono_class_layout_fields): no need for literal fields here.
11470
11471         * class-internals.h: api changes for const fields
11472
11473         * icall.c (ves_icall_get_enum_info): use new apis for const fields
11474
11475 2004-07-06  Martin Baulig  <martin@ximian.com>
11476
11477         * mono-debug.h: Increment version number to 44.
11478
11479         * mono-debug.c (mono_debug_add_wrapper): The second argument is
11480         now a gpointer, rewrote this whole method.
11481
11482         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
11483         function.  Add information about the wrapper in a new "misc table".
11484
11485         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
11486         for the new misc table.
11487
11488 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
11489
11490         * metadata-internals.h image.c: Add a cache for helper signatures.
11491
11492         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
11493
11494 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
11495
11496         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
11497         delegates from a delegate. Fixes #61033.
11498         
11499         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
11500         marshalling of stringbuilder arrays. Fixes #59900.
11501
11502 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
11503
11504         * icall.c: Add EnumBuilder:setup_enum_type icall.
11505
11506 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
11507
11508         * icall.c: Added a new icall for the property version of
11509         OffsetOfStringData.
11510
11511 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
11512
11513         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
11514         it has a constant size across platforms.
11515
11516         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
11517         stack trace.
11518
11519 2004-06-29  Martin Baulig  <martin@ximian.com>
11520
11521         * mono-debug.c (mono_debug_add_method): Protect the whole function
11522         in mono_debugger_lock(), not just parts of it.
11523
11524 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11525
11526         * reflection.c: make sure padding bytes in heaps are zeroed.
11527
11528 2004-06-24  David Waite  <mass@akuma.org>
11529
11530         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
11531         image.c, loader.c, locales.c, marshal.c, metadata.c,
11532         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
11533         string-icalls.c, threads.c: change to C90-style comments from C99 /
11534         C++ -style
11535
11536 2004-06-24  Dick Porter  <dick@ximian.com>
11537
11538         * threads.c
11539         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
11540         return createdNew.  Fixes bug 60412.
11541
11542         * threads-types.h: 
11543         * icall.c: Add createdNew parameter to CreateMutex icall
11544
11545 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11546
11547         * reflection.c, object-internals.h: save default value in params.
11548
11549 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11550
11551         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
11552         no need to build a new path combining that with the application base.
11553         Fixes bug #60442.
11554
11555 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
11556
11557         * reflection.c: fixed minor standard compliance issues.
11558
11559 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11560
11561         * reflection.c: fixed issue with encoding some custom attributes
11562         (arrays in properties and fields, bug #60411).
11563
11564 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11565
11566         * reflection.c: fix start address when copying the public key token.
11567
11568 2004-06-23  Martin Baulig  <martin@ximian.com>
11569
11570         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
11571         the `exc' object in a static object to put it into the GC's root set.
11572
11573 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
11574
11575         * reflection.c: make mono_reflection_setup_internal_class ()
11576         callable a second time to setup a new parent class.
11577
11578 2004-06-23  Dick Porter  <dick@ximian.com>
11579
11580         * threads.c: Check for WAIT_IO_COMPLETION return values.
11581
11582 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
11583
11584         * appdomain.c: Removed the g_free on the public key token. Now copy 
11585         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
11586         * assembly.c: Added public key token string value when loading 
11587         assemblies. Fix bug #60439.
11588         * icall.c: Added missing informations (like public key) in 
11589         GetReferencedAssemblies. Fix #60519.
11590         * image.h: Changed definition for public key token from const char*
11591         public_tok_value to guchar public_key_token [17];
11592         * reflection.c: Updated for changes to public key token.
11593
11594 2004-06-22  Lluis Sanchez Gual
11595
11596         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
11597         for the field in base classes.
11598
11599 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11600
11601         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
11602         mark headers as not supported, they are installed only for use by the
11603         debugger.
11604
11605 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
11606
11607         * *.c, *.h: avoid namespace pollution in public headers.
11608
11609 2004-06-21  Martin Baulig  <martin@ximian.com>
11610
11611         * exception.c (mono_get_exception_security): It's in
11612         "System.Security", not in "System".
11613
11614         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
11615         the exception classes.
11616
11617 2004-06-21  Martin Baulig  <martin@ximian.com>
11618
11619         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
11620         Protect the exception object from being finalized.
11621
11622 2004-06-21  Martin Baulig  <martin@ximian.com>
11623
11624         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
11625         public function.
11626
11627 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
11628
11629         * reflection.c: Load the assembly in mono_reflection_type_from_name,
11630         if it was not loaded before. Fix parts of #60439.
11631
11632 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
11633
11634         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
11635         code that was broken since Ben's change: wrappers are now
11636         dependent on the method signature only again.
11637
11638 2004-06-21  Martin Baulig  <martin@ximian.com>
11639
11640         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
11641         added interface support.
11642
11643 2004-06-21  Martin Baulig  <martin@ximian.com>
11644
11645         * class.c (mono_vtable_get_static_field_data): New public method.
11646
11647 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
11648
11649         * filewatcher.c : Windows build fix to be compliant with API changes.
11650
11651 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11652
11653         * class.h, class.c: more accessors.
11654         * metadata.h, metadata.c: prepare for hiding MonoType and
11655         MonoMethodSignature: people should use the accessors from now on
11656         outside of the tree.
11657
11658 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11659
11660         * *.c, *.h: more API cleanups.
11661
11662 2004-06-18  Jackson Harper  <jackson@ximian.com>
11663
11664         * assembly.c: Trace loading assemblies.
11665         * loader.c: Trace loading native libraries.
11666         * mono-config.c: Trace loading config files.
11667         
11668 2004-06-18  Dick Porter  <dick@ximian.com>
11669
11670         * locales.c: Tell ICU the lengths of strings, it can cope with
11671         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
11672
11673 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
11674
11675         * image.c: swapped name/filename;
11676
11677 2004-06-18  Martin Baulig  <martin@ximian.com>
11678
11679         * mono-debug-debugger.c (write_class): Write the parent class at
11680         the end of the header.
11681
11682 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11683
11684         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
11685
11686 2004-06-17  Raja R Harinath  <rharinath@novell.com>
11687
11688         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
11689         (bundle_obj): New conditional define.
11690         (BUILT_SOURCES): Remove.
11691         ($(bundle_srcs)): Make parallel-make safe.
11692         (libmonoruntime_la_LIBADD): Make unconditional.
11693         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
11694         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
11695
11696 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
11697
11698         * culture-info-tables.h: It was inconsistent with the latest
11699           supp info files.
11700
11701 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
11702
11703         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
11704         be loaded.
11705
11706         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
11707         with gcc 2.95.
11708
11709 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11710
11711         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
11712         cleaned up public header threads.h.
11713
11714 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11715
11716         * Makefile.am, *.c, *.h: more API cleanups.
11717
11718 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
11719
11720         * Makefile.am: removed monosn from compilation.
11721         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
11722         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
11723         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
11724         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
11725         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
11726         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
11727
11728 2004-06-15  Jackson Harper  <jackson@ximian.com>
11729
11730         * assembly.c: Make locales lower case when searching the GAC for
11731         assemblies. gacutil will always make locales lowercase when
11732         installing so this effectively makes them case insensitive.
11733         
11734 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
11735
11736         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
11737         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
11738           parameter which allows to choose whether the wait can be interrupted or 
11739           not. Also added the method mono_monitor_enter(), which locks the monitor
11740           using an infinite wait and without allowing interruption.
11741           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
11742           interrupted.
11743         * object.h: Added new fields in MonoThread. suspend_event holds the event
11744           used to susped/resume the thread. synch_lock is the lock object to use for
11745           modifying the thread state.
11746         * threads.c: Use the new synch_lock object for locking, instead of "this",
11747           which can generate deadlocks.
11748           Moved thread state change in Thread.Sleep and Thread.Join from managed
11749           to unmanaged code. This avoids a deadlock when the thread was suspended
11750           just after acquiring the thread lock.
11751           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
11752           Implemented Thread.Suspend using an event instead of ThreadSuspend,
11753           which is not fully implemented in the io-layer.
11754         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
11755
11756 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
11757
11758         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
11759         threads-types.h: more API cleanups.
11760
11761 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11762
11763         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
11764         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
11765         threadpool.c, threads.c: first pass at the exported API cleanup.
11766
11767 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
11768
11769         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
11770
11771 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11772
11773         * icall.c: added internalGetHome.
11774
11775 2004-06-14  Dick Porter  <dick@ximian.com>
11776
11777         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
11778         possible to return successfully when '.' or '..' were the only
11779         entries in a directory, but were skipped.  The MonoIOStat was not
11780         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
11781         Fixes bug 59574.
11782
11783 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11784
11785         * reflection.c: make binaries run on .Net 1.1 by default.
11786
11787 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11788
11789         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
11790
11791 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
11792
11793         * marshal.c: keep track of struct size with explicit layout
11794         (bug #59979).
11795
11796 2004-06-12  Martin Baulig  <martin@ximian.com>
11797
11798         * mono-debug-debugger.c: Comment out a debugging g_message().
11799
11800 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11801
11802         * reflection.c, reflection.h: do not free custom attrs that are cached.
11803         * icall.c: use braces to make code clearer.
11804
11805 2004-06-11  Martin Baulig  <martin@ximian.com>
11806
11807         * class.h (MonoInflatedField): New type.
11808         (MonoClassField): Replaced `MonoType *generic_type' with
11809         `MonoInflatedField *generic_info'.
11810
11811         * icall.c
11812         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
11813
11814 2004-06-11  Martin Baulig  <martin@ximian.com>
11815
11816         * reflection.c (mono_image_create_method_token): Correctly encode
11817         varargs methods.
11818
11819 2004-06-11  Martin Baulig  <martin@ximian.com>
11820
11821         * metadata.c (mono_metadata_parse_method_signature): When parsing
11822         a MethodDef which has VarArgs, also set sentinelpos if we don't
11823         have any parameters.
11824
11825 2004-06-11  Martin Baulig  <martin@ximian.com>
11826
11827         * verify.c (mono_method_verify): In CEE_CALL, use
11828         mono_method_get_signature() to get the method's signature, unless
11829         we're a PInvoke method.
11830
11831 2004-06-10  Jackson Harper  <jackson@ximian.com>
11832
11833         * assembly.c: Use <path>/lib/mono/gac for the extra paths
11834         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
11835         logical name as the supplied path is just a prefix to the gac not
11836         the direct path to it.
11837         
11838 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
11839
11840         * reflection.c: make the token for a created method match
11841         the token of the MethodBuilder it was created from
11842         (IKVM requires this behaviour now).
11843
11844 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
11845
11846         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
11847         reflection.c, socket-io.c: leak fixes.
11848
11849 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
11850
11851         * icall.c: handle sentinel pos in vararg methods in position different
11852         from 0.
11853
11854 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11855
11856         * culture-info-tables.h: freshly generated.
11857
11858 2004-06-09  Martin Baulig  <martin@ximian.com>
11859
11860         * loader.c (mono_get_method_constrained): Call `mono_class_init
11861         (constrained_class)'.   
11862
11863 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
11864
11865         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
11866         any methods. Fixes #59629.
11867
11868 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11869
11870         * culture-info-tables.h: reflecting locale-builder updates.
11871
11872 2004-06-08  Dick Porter  <dick@ximian.com>
11873
11874         * object.h:
11875         * locales.c: Fixed compile warnings, including a real bug in
11876         CompareInfo_internal_compare.
11877         
11878 2004-06-08  Dick Porter  <dick@ximian.com>
11879
11880         * locales.c
11881         (ves_icall_System_Globalization_CompareInfo_internal_index):
11882         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
11883         Double-check the resuls of usearches, because ICU currently
11884         ignores most of the collator settings here.  Fixes bug 59720.
11885         
11886 2004-06-08  Dick Porter  <dick@ximian.com>
11887
11888         * locales.c
11889         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
11890         Fix memory leak and segfault-causing typo.  No idea how this one
11891         lasted so long without being noticed.
11892
11893 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
11894
11895         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
11896         any methods. Fixes #59629.
11897
11898 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11899
11900         * assembly.c:
11901         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
11902         own the critical section before). Removed dead code (that's done
11903         in the preload hook).
11904
11905         (mono_assembly_load_with_partial_name): call the preload hook.
11906
11907 2004-06-08  Martin Baulig  <martin@ximian.com>
11908
11909         * metadata.c (mono_metadata_signature_alloc): Default
11910         `sentinelpos' to -1.
11911
11912         * reflection.c (mono_image_get_array_token): Likewise.
11913
11914 2004-06-08  Martin Baulig  <martin@ximian.com>
11915
11916         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
11917
11918         * metadata.c (mono_metadata_parse_method_signature): When parsing
11919         a MethodDef which has VarArgs, set sentinelpos.
11920
11921         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
11922         `gint16' since we're using -1 for non-varargs methods.
11923
11924         * reflection.c
11925         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
11926         (method_encode_signature): Added varargs support.
11927         (method_builder_encode_signature): Likewise.
11928         (mono_image_get_varargs_method_token): New static method.
11929         (mono_image_create_method_token): New public method; this is
11930         called via an icall instead of mono_image_create_token() when
11931         calling a varargs method.       
11932
11933 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
11934
11935         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
11936
11937 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11938
11939         * culture-info-tables.h : Reflecting the latest locale-builder that
11940           fixed empty array representation ({} to {0}).
11941
11942 2004-06-07  Jackson Harper  <jackson@ximian.com>
11943
11944         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
11945         looking up extra gac paths. This allows MONO_GAC_PATH to act
11946         exactly like a prefix.
11947         
11948 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
11949
11950         * reflection.c (mono_reflection_type_from_name): Make a copy of the
11951         type name before modifying it. Fixes #59405.
11952
11953 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11954
11955         * culture-info.h: added fields for "all datetime patterns".
11956         * locales.c: (  ves_icall_System_Globalization_CultureInfo
11957           _construct_datetime_format ()): fill xxx_patterns fields.
11958         * object.h: added fields for "all datetime patterns" to
11959           MonoDateTimeFormatInfo.
11960         * culture-info-tables.h: reflecting locale-builder updates.
11961
11962 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
11963
11964         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
11965         the event has no add and remove methods. Fixes #59629.
11966
11967 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
11968
11969         * object.c: Fixed possible integer overflow when allocating large
11970         strings.
11971
11972 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
11973
11974         * culture-info-tables.h: reflecting locale-builder updates.
11975
11976 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
11977
11978         * culture-info-tables.h: reflecting locale-builder updates.
11979
11980 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
11981
11982         * culture-info-tables.h: reflecting locale-builder updates.
11983
11984 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
11985
11986         * threads.c: Made Thread.Sleep abortable.
11987
11988 2004-06-02  Martin Baulig  <martin@ximian.com>
11989
11990         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
11991
11992         * debug-mono-symfile.h: Bumped symbol file version number to 37.
11993
11994 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
11995
11996         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
11997
11998 2004-05-30  Jackson Harper  <jackson@ximian.com>
11999
12000         * reflection.c: Do not hardcode assembly versions or public key
12001         tokens anymore. All of this except the corlib section was dead
12002         code anyways.
12003         
12004 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
12005
12006         * object.c (mono_runtime_invoke_array): Automatically create boxed
12007         objects for byref valuetypes if needed. Fixes #59300.
12008         
12009         * object.c (mono_method_return_message_restore): Handle 
12010         MONO_TYPE_OBJECT as well.
12011
12012 2004-05-28  Jackson Harper  <jackson@ximian.com>
12013
12014         * reflection.c: The modified type encoding was causing build
12015         problems. Reverted for now.
12016         
12017 2004-05-28  Jackson Harper  <jackson@ximian.com>
12018
12019         * reflection.c/h: Take an assembly ref so that we dont create
12020         fully qualified names when encoding types in the same assembly as
12021         the custom attribute being emitted.
12022         * appdomain.c: Increment version number.
12023         
12024 2004-05-26  Duncan Mak  <duncan@ximian.com>
12025
12026         * icall.c
12027         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
12028         Set the full version number (major, minor, build, revision).
12029
12030 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
12031
12032         * marshal.c (emit_struct_conv): increment src/dst after blit
12033         (mono_marshal_get_managed_wrapper,
12034         mono_marshal_get_native_wrapper): make sure we have marshalling
12035         info before marshalling params (info computation affects
12036         blittable)
12037
12038         * class.c (class_compute_field_layout): correctly deal with
12039         blittable
12040         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
12041         value types (as per what windows dows by default)
12042         (mono_class_setup_mono_type): System.ValueType is blittable
12043         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
12044         blittable
12045
12046         * marshal.c (mono_marshal_load_type_info): flag types  as
12047         non-blittable if the native layout doesn't match the managed
12048         layout
12049
12050 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12051
12052         * appdomain.c: don't add stuff in the private search path that is
12053         above the application base. If application base is not set, there's
12054         no private search path.
12055
12056 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
12057
12058         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
12059         byref struct arguments in native->managed marshalling.
12060
12061 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
12062
12063         * marshal.c (mono_marshal_get_runtime_invoke): correctly
12064         cache methods using signature (special case for methods
12065         that are value type or string class)
12066         
12067         * image.c (mono_image_close): clean up allocated GSList's
12068         in runtime_invoke_cache.
12069
12070 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12071
12072         * mono-config.c: set the correct path for mono_cfg_dir on windows when
12073         there's no MONO_CFG_DIR environment variable defined.
12074
12075 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12076
12077         * threads.c: windows version must be >= 0x0500 to include OpenThread.
12078
12079 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
12080
12081         * threadpool.c: Really wait for 500ms after the async call, even if the wait
12082           is interrumped.
12083         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
12084           before waiting for it, and call CloseHandle after the wait to unref it.
12085           This will make sure that handles are not disposed too early.
12086
12087 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12088
12089         * appdomain.c:
12090         * appdomain.h:
12091         * icall.c: removed
12092         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
12093         needed now.
12094
12095         * object.c: se the application_base only for the domain that runs
12096         Main. Fixes bug #59216,
12097
12098 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12099
12100         * appdomain.c:
12101         * object.c: only the domain in which Main is run have
12102         SetupInformation.ConfigurationFile set, so moved a few lines from
12103         appdomain.c to object.c.
12104
12105 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12106
12107         * appdomain.c: we tried to load [name].(dll|exe), but according
12108         to bug #57710, we must also try [culture]/[name].(dll|exe) and
12109         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
12110         There's a test case attached to bug #58922.
12111
12112 2004-05-27  Dick Porter  <dick@ximian.com>
12113
12114         * icall.c:
12115         * file-io.c: Implemented icalls for locking and unlocking regions
12116         in a file.
12117         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
12118         FALSE on error (fixes both compiler warning and real bug.)
12119
12120 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
12121
12122         * culture-info-tables.h: reflecting locale-builder updates.
12123
12124           (Added missing ChangeLog entry for 05/26)
12125
12126 2004-05-27  Jackson Harper  <jackson@ximian.com>
12127
12128         * locales.c: Fix some cut and paste errors.
12129         
12130 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12131
12132         * mono-config.c: set the correct path for config. directory on windows.
12133
12134 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12135
12136         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
12137           on win32.
12138
12139 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12140
12141         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
12142         from pinvoke functions.
12143         
12144         * marshal.c (mono_ftnptr_to_delegate): Implement this.
12145
12146 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12147
12148         * culture-info-tables.h: reflecting locale-builder updates.
12149
12150 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12151
12152         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
12153         #59086.
12154
12155 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
12156
12157         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
12158         * icall.c: Modified icalls for RNG.
12159         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
12160         Windows (CryptoAPI).
12161
12162 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12163
12164         * locales.c: Fix build.
12165
12166 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12167
12168         * culture-info-tables.h: reflecting locale-builder updates.
12169
12170 2004-05-25  Jackson Harper  <jackson@ximian.com>
12171
12172         * locales.c: When creating the current culture use the $LANGs
12173         specific culture. So DateTimeFormat and NumberFormat entries are created.
12174         
12175 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12176
12177         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
12178         a char array as parameter.
12179
12180 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
12181
12182         * image.c: In mono_image_open(), always use an absolute path name to
12183           look for already loaded images.
12184
12185 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
12186
12187         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
12188         missing in the windows build (like older cygwin include files).
12189
12190 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
12191
12192         * icall.c: Fixed check for possible integer overflow in Buffer_
12193         BlockCopy icall. Replaced comments style // by /* */.
12194
12195 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
12196
12197         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
12198         
12199         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
12200         check after MONO_VTADDR. Fixes pinvoke2.exe.
12201
12202         * marshal.h marshal.c metadata.h: Add beginnings of support for
12203         ftnptr -> delegate marshalling.
12204
12205 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12206
12207         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12208         * threads.c: Fix warnings.
12209
12210 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12211
12212         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12213         * icall.c: Registered icalls for Suspend and Resume.
12214         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12215           Thread.Abort.
12216         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12217         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12218         * process.c: Use WaitForSingleObjectEx.
12219         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12220           checkpoints.
12221         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12222           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12223           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12224           background threads. Added basic support for Abort in Windows.
12225           Start new threads using a managed delegate invoke wrapper. This wrapper
12226           has an interruption checkpoint that is needed since an interruption
12227           can be requested before the thread leaves the unmanaged code that starts 
12228           the thread.
12229         * marshal.c: Added interruption checkpoint after every native call, and
12230           also before managed calls for wrappers called from unmanaged code to
12231           go into managed code.
12232         * object.h: Added new field in MonoThread to keep track of interruption
12233           requests.
12234
12235 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12236
12237         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12238         calls.
12239
12240 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12241
12242         * appdomain.c:
12243         * assembly.c:
12244         * gc.c:
12245         * locales.c:
12246         * mono-config.c:
12247         * rand.c: getenv -> g_getenv (windows!)
12248
12249         * process.c: complete_path is also used on non-windows platforms.
12250
12251 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12252
12253         * icall.c: new signature for Process_Start.
12254
12255         * process.[ch]: new signature for Process_Start. If we're on windows
12256         and UseShellExecute is false, we have to search for the program by
12257         ourselves if we don't get a full path.
12258
12259 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12260
12261         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12262         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12263
12264 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12265
12266         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12267         Fixes bug #58373.
12268
12269 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12270
12271         * process.c: use double quotes to quote program name and arguments on
12272         windows. Fixes bug #58575.
12273
12274 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12275
12276         * file-io.c: don't return "." and ".." when using windows Find*File.
12277
12278 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12279
12280         * marshal.c: Don't pass wrappers to message init because method 
12281         addressed used to lookup metadata. part of remoting[2|3] fix.
12282
12283 2004-05-15  Jackson Harper  <jackson@ximian.com>
12284
12285         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12286         path is essentially the same as MONO_PATH except that it points to
12287         GACs instead of lib directories.
12288         * loader.h: The user gac is gone so we dont need function to
12289         enable/disable it.
12290         * mono-config.c: user gac option is now gone.
12291         
12292 2004-05-15  Jackson Harper  <jackson@ximian.com>
12293
12294         * culture-info.h: Make defines more consistent, add calendar data
12295         to the culture info table.
12296         * culture-info-tables.h: Add basic calendar data. Basically
12297         everyone gets default gregorian until all the data is
12298         updated.
12299         * locales.c: Use the new consistent defines. Set calendar data for
12300         culture info objects.
12301         * object.h: add a field for calendar data to CultureInfo
12302         
12303 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12304
12305         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12306         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12307         a signature.
12308         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12309         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12310         an extra param that is the pointer of the method to invoke. The IL for
12311         the invoke method is no longer specific to the method, but to the
12312         signature of the method. Thus, we can share the same code for multiple
12313         methods. This reduces the number of methods that have to be compiled.
12314
12315 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12316
12317         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12318
12319         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12320
12321         * icall.c: Optimize Buffer.BlockCopy.
12322
12323 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12324
12325         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12326         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12327         quote). Changed them to "MMMM yyyy".
12328
12329 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12330
12331         * rand.c
12332         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12333
12334 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12335
12336         * reflection.h: Updated after changes to managed structures.
12337
12338         * appdomain.c: Bump corlib version.
12339
12340 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12341
12342         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
12343         windows.
12344
12345 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12346
12347         * Makefile.am: link to ../os/libmonoos.la on windows.
12348
12349         * assembly.c:
12350                 -If MONO_DEBUG, warn about non-existing directories in
12351                 MONO_PATH.
12352                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12353                 compile time variable.
12354                 -Removed init_default_path and call mono_set_rootdir from
12355                 libmonoos.a instead (windows only).
12356
12357         * assembly.h: declare mono_assembly_getrootdir().
12358
12359         * domain.c:
12360         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12361
12362         * loader.c: s/getenv/g_getenv/
12363
12364 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12365
12366         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12367
12368         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12369
12370         * metadata.h: Add new marshalling conversions.
12371
12372         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12373         function.
12374
12375         * reflection.c (mono_reflection_get_type): Lookup the type in all
12376         modules of a multi-module assembly. Fixes #58291.
12377
12378 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12379
12380         * threads.c: Before aborting a background, set the StopRequested
12381         state.  This avoids throwing the Abort exception.
12382         In mono_thread_manage, don't continue with the shutdown until all
12383         aborted threads have actually stopped.
12384
12385 2004-05-10  Jackson Harper  <jackson@ximian.com>
12386
12387         * locales.c: Remove the modifier from culture names.
12388         
12389 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12390
12391         * Makefile.am: monosn is not installed any more. It has been deprecated
12392         in favor of sn.
12393
12394 2004-05-07  Jackson Harper  <jackson@ximian.com>
12395
12396         * locales.c
12397         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12398         Fix array construction, add bailout if the length is 0.
12399
12400 2004-05-07  Dick Porter  <dick@ximian.com>
12401
12402         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12403         machine doesn't have a DNS entry.  Patch by Urs Muff
12404         (umuff@quark.com), fixes bug 57928.
12405
12406 2004-05-06  Jackson Harper  <jackson@ximian.com>
12407
12408         * reflection.c: Handle null PublicTokens properly. alloc mem for
12409         assembly names culture so we dont crash when freeing it.
12410         
12411 2004-05-06  Jackson Harper  <jackson@ximian.com>
12412
12413         * assembly.c: Check the usergac when loading with partial names.
12414         
12415 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12416
12417         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12418         does nothing for now (not required for Linux/Windows) but the class
12419         library can call it (and a newer or modified runtime could need it).
12420         * icall.c: Registred icall.
12421
12422 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12423
12424         * loader.c: prints a message on module loading error we set MONO_DEBUG
12425         environment variable.
12426
12427 2004-05-05  Jackson Harper  <jackson@ximian.com>
12428
12429         * appdomain.c: Handle PublicKeyToken=null properly.
12430         
12431 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12432
12433         * environment.c|h: Added icall ves_icall_System_Environment_
12434         GetOSVersionString to get the current OS version as a string.
12435         * icall.c: Registred icall.
12436
12437 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12438
12439         * object.c: in mono_object_get_virtual_method(), take into account that
12440         non-virtual methods don't have a slot in the vtable. Check needed when
12441         the object is a proxy.
12442
12443 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12444
12445         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
12446         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
12447
12448         * object.c (mono_class_compute_gc_descriptor): Fix warning.
12449
12450         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
12451         passed when a valuetype is expected.
12452
12453         * object.c (mono_unhandled_exception): Only set the exit code if the
12454         exception happens in the main thread. Fixes thread5.exe.
12455
12456         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
12457         invalid names. Fixes #58047.
12458
12459 2004-05-03  Jackson Harper  <jackson@ximian.com>
12460
12461         * assembly.c: This line was committed accidently and is unneeded.
12462         
12463 2004-05-03  Jackson Harper  <jackson@ximian.com>
12464
12465         * icall.c: Add new icall for Assembly::LoadWithPartialName
12466         * assembly.c/.h: new function that probes the GAC to load partial
12467         assembly names by Paolo Molaro.
12468         
12469 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12470
12471         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
12472         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
12473         (type_get_fully_qualified_name): Added PublicKeyToken when building a
12474         full type name.
12475
12476 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12477
12478         * appdomain.c: fixed check for 'neutral' culture and removed warning.
12479         * reflection.c: fix bug when parsing a full type name and Version is not
12480         the last thing in the string.
12481
12482 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
12483
12484         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
12485         crashes when it is freed.
12486
12487 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12488
12489         * assembly.c: print the compat warning to stderr.
12490
12491 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
12492
12493         * assembly.c (mono_assembly_load_references): Add a compatibility
12494         hack to run old applications that might be still referencing the
12495         3300-based assemblies, only do this for System.xxx.
12496
12497 2004-05-01  Jackson Harper  <jackson@ximian.com>
12498
12499         * appdomain.c: If the culture is neutral we set it to "".
12500         
12501 2004-04-29  Jackson Harper  <jackson@ximian.com>
12502
12503         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
12504
12505 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
12506  
12507         * string-icalls.c: added low overhead function for copying chars
12508         * icall.c: added needed icall for the above function
12509  
12510 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12511
12512         * icall.c: fix return value of get_global_assembly_cache.  Implemented
12513         Environment.GetLogicalDrives.
12514
12515 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
12516
12517         * rand.c: try and talk to egd or prngd
12518         for random bytes if opening devices fail.
12519
12520 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
12521
12522         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
12523         alignment for the type using the native alignment of its members 
12524         instead of using klass->min_align.
12525
12526         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
12527
12528 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12529
12530         * file-io.c:
12531         * socket-io.c: added check for sys/aio.h.
12532
12533 2004-04-28  Dick Porter  <dick@ximian.com>
12534
12535         * threads.c: Don't abort a thread thats already aborting, when
12536         terminating everything.
12537
12538 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12539
12540         * icall.c: added 2 new async calls for Socket.
12541
12542         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
12543         IO on *nix systems.
12544
12545         * threadpool.c: removed unused variable.
12546
12547 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
12548
12549         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
12550
12551 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12552
12553         * locales.c: put back string_invariant_tolower () and
12554         string_invariant_toupper ().
12555
12556 2004-04-26 David Waite <mass@akuma.org>
12557
12558         * file-io.h:
12559         * socket-io.h:
12560         * threads.h:
12561         * unicode.h: remove comma from end of enumeration declarations
12562
12563 2004-04-26 David Waite <mass@akuma.org>
12564
12565         * debug-mono-symfile.h:
12566         * decimal.c:
12567         * mono_debug.h:
12568         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
12569
12570
12571 2004-04-26  Jackson Harper  <jackson@ximian.com>
12572
12573         * appdomain.c: Increment version number.
12574         
12575 2004-04-26  Jackson Harper  <jackson@ximian.com>
12576
12577         * appdomain.c: Set assembly references public token value when
12578         PublicKeyToken is specified, not the hash_value. Free public token
12579         values when free assembly name data. Previously the public key
12580         token was hex decoded, however we are using hex encoded public key
12581         tokens, so this is not neccasary.
12582         * assembly.c: Lookup assemblies in the gac if their public token
12583         value is set. Add function to allow enabling user gac
12584         lookups. Specify whether or not the assembly was loaded from the
12585         GAC. Compare full assembly names when checking the cache for
12586         assemblies (Temporarily disabled see comment in code). Remove
12587         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
12588         specifies trace-loader they get extra info to stdout on the
12589         loading of assemblies.
12590         * image.h: Add a field for an assembly references public token
12591         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
12592         whether an assembly has been loaded from the GAC.
12593         * image.c: Remove a corlib -> mscorlib name mapping.
12594         * loader.h: Add function to enable/disable the user gac.
12595         * mono-config.c: Check if the usergac is enabled in the config
12596         file.
12597         * icall.c: New icall to determine whether or not an assembly has
12598         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
12599         * tabldefs.h: Add constant for assemblyref flag that specifies a
12600         full public key is used instead of a public token.
12601         * reflection.c: Remove mscorlib -> corlib mappings. Set
12602         PublicTokenValue instead of hash value. This value is a hex
12603         string so it does not need to be expanded.
12604
12605 2004-04-26  Martin Baulig  <martin@ximian.com>
12606
12607         * mono-debug-debugger.c (mono_debugger_initialize): Set
12608         `mono_debugger_initialized' before calling mono_debug_lock().
12609
12610 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
12611
12612         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
12613           InternalToUpper/InternalToLower.
12614         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
12615           removed invariant culture shortcut.  This is now done in managed code.
12616         * locales.c: (string_invariant_toupper/tolower) removed.
12617
12618 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12619
12620         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
12621         Added Poll internal call.
12622
12623         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
12624         call for Poll. Select was too heavy for polling a single socket.
12625
12626         * threadpool.[ch]: added mono_threadpool_cleanup.
12627         * threads.c: use it. Don't use Thread_Abort on windows.
12628
12629 2004-04-23  Martin Baulig  <martin@ximian.com>
12630
12631         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
12632
12633 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
12634
12635         * icall.c: Registred new icalls for key pair protection and added an
12636         icall for Environment.GetFolderPath on Windows.
12637         * security.c|h: Added new icalls for key pair protection.
12638
12639 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12640
12641         * socket-io.c: don't display the non-supported family warning for known
12642         families. Now this is not displayed on windows when checking support
12643         for IPv4/IPv6.
12644
12645 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12646
12647         * class.c: don't display the layout warning for static fields.
12648
12649 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
12650
12651         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
12652         * locales.c, locales.h: Added new icalls for culture-specific
12653         Char.ToLower and Char.ToUpper.
12654
12655 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12656
12657         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
12658         by David Waite.
12659
12660 2004-04-20  Martin Baulig  <martin@ximian.com>
12661
12662         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
12663         of the type name before passing it to mono_reflection_type_from_name().
12664
12665 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
12666
12667         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
12668         encodings here. Fixes #56965.
12669
12670 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
12671
12672         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12673         fix test on strstr result not that I can see anything that
12674         relies on the result.
12675
12676 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
12677
12678         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
12679         Fixes #57081.
12680
12681         * marshal.c (mono_marshal_get_string_encoding): New helper function.
12682
12683         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
12684         function to determine which marshalling to use for strings. Fixes
12685         #56965.
12686
12687         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
12688
12689         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
12690
12691 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
12692
12693         * icall.c: #include mono-config.h
12694
12695 2004-04-15  Jackson Harper  <jackson@ximian.com>
12696
12697         * culture-info-tables.h: Fix date formats for en-US culture.
12698         
12699 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
12700
12701         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
12702         ThreadPool.SetMinThreads.
12703         * threadpool.c: Implemented ThreadPool.GetMinThreads and
12704         ThreadPool.SetMinThreads.
12705
12706 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12707
12708         * mono-config.c: also load the .config file in the directory
12709         where the assembly was found.
12710
12711 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
12712
12713         * assembly.c: load per-assembly config files.
12714         * icall.c: decrapified code to get the config dir and moved to
12715         mono-config.c.
12716         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
12717         per-assembly config files. When doing a dll map lookup give precedence
12718         to the per-assembly data.
12719
12720 2004-04-14  Martin Baulig  <martin@ximian.com>
12721
12722         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
12723         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
12724         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
12725
12726         * mono-debugger-debugger.c: While the debugger is locked, remember
12727         whether the symbol tables have changes and send one single
12728         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
12729
12730 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
12731
12732         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
12733
12734         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
12735         function.
12736
12737         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
12738         account when marshalling string arrays. Fixes #56965.
12739
12740 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
12741
12742         * icall.c: Add new icalls mapping for security.
12743         * security.c|h: Add internal calls for WindowsIdentity,
12744         WindowsImpersonationContext and WindowsPrincipal.
12745
12746 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
12747
12748         * class.c: Added comment to ensure the System.MonoDummy class
12749         is removed when no longer necessary
12750
12751 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
12752
12753         * appdomain.c: Pass arguments to the bootstraping exceptions to
12754         minimize JITed methods at boot
12755
12756         * metadata.c (mono_exception_from_name_two_strings): Allow for the
12757         second string to be null.
12758
12759         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12760         Change the protocol to minimize the JIT methods at startup.  Now
12761         it Returns the internal codepage, if the value of "int_code_page"
12762         is 1 at entry, and we can not compute a suitable code page
12763         number, returns the code page as a string.
12764
12765 2004-04-13  Jackson Harper  <jackson@ximian.com>
12766
12767         * culture-info-tables.h: Fix number of decimal digits for all
12768         english locales.
12769
12770 2004-04-13  Jackson Harper  <jackson@ximian.com>
12771
12772         * icall.c: Clairfy out of sync error message. It is not always
12773         your corlib that is out of sync.
12774
12775 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
12776
12777         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
12778         properties when only the set accessor is overriden. Fixes #55874.
12779
12780 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
12781
12782         * assembly.c (mono_assembly_load_references): Make this thread safe.
12783         Fixes #56327.
12784
12785 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
12786
12787         * monosn.c: Add missing initialization calls.
12788
12789 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
12790
12791         * locales.c:
12792         ves_icall_System_Globalization_CultureInfo_construct_number_format
12793         Fix g_assert so it compiles on fussier compilers re int/ptr
12794         mismatch
12795
12796 2004-04-08  Dick Porter  <dick@ximian.com>
12797
12798         * socket-io.h:
12799         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
12800         53992.  Also rearrange the code so that the internal calls return
12801         an error value and exceptions are thrown from managed code.
12802
12803         * icall.c: Add type info to the socket icalls.
12804
12805 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12806
12807         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
12808         owes me a beer.
12809
12810 2004-04-07  Martin Baulig  <martin@ximian.com>
12811
12812         * class.c (mono_class_from_generic_parameter): Don't default
12813         `klass->parent' to `mono_defaults.object_type'.
12814
12815 2004-04-07  Martin Baulig  <martin@ximian.com>
12816
12817         * reflection.c (mono_reflection_initialize_generic_parameter): Set
12818         `param->pklass->reflection_info'.       
12819
12820 2004-04-07  Jackson Harper  <jackson@ximian.com>
12821
12822         * culture-info-tables.h: Fix date separator symbol.
12823         
12824 2004-04-07  Martin Baulig  <martin@ximian.com>
12825
12826         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
12827         from System.Type to System.MonoType.
12828
12829 2004-04-07  Martin Baulig  <martin@ximian.com>
12830
12831         * reflection.h
12832         (MonoReflectionGenericParam): Added `has_reference_type' and
12833         `has_value_type' fields.
12834
12835         * reflection.c (mono_image_get_generic_param_info): Encode the
12836         correct flags if we have the `class' or `struct' constraint.
12837
12838 2004-04-07  Martin Baulig  <martin@ximian.com>
12839
12840         * reflection.h
12841         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
12842
12843 2004-04-07  Jackson Harper  <jackson@ximian.com>
12844
12845         * appdomain.c: Revert extra patches, just wanted to bump the
12846         version number.
12847         
12848 2004-04-07  Jackson Harper  <jackson@ximian.com>
12849
12850         * Makefile.am: Add culture-info private headers.
12851         * icall.c: Add new icalls for contructing locales.
12852         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
12853         * locales.h: Declare new culture info construction methods.
12854         * object.h: Add new fields used to avoid the CultureMap to
12855         MonoCultureInfo.
12856         * culture-info.h: Definition of structs used in the culture info
12857         tables.
12858         * culture-info-tables.h: Autogenerated tables that contain culture
12859         info data. This file was generated with the locale-builder tool.
12860         * appdomain.c: Incement corlib version number.
12861         
12862 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
12863
12864         * appdomain.c: (mono_runtime_init) move mono_thread_init
12865         to before mono_object_new calls so critical sections
12866         are initialized before use.
12867
12868 2004-04-07  Martin Baulig  <martin@ximian.com>
12869
12870         * icall.c
12871         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
12872         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
12873         (ves_icall_MonoGenericParam_initialize): Removed.
12874         (monogenericparam_icalls): Removed.
12875         (generictypeparambuilder_icalls): Added new table for
12876         System.Reflection.Emit.GenericTypeParameterBuilder.
12877
12878         * reflection.c
12879         (mono_reflection_define_generic_parameter): Removed.
12880         (mono_reflection_initialize_generic_parameter): This is now called
12881         from GenericTypeParameterBuilder's .ctor.
12882
12883 2004-04-06  Martin Baulig  <martin@ximian.com>
12884
12885         * class.c (mono_class_init): Don't inflate nested classes in a
12886         generic instance.
12887         (mono_type_get_name_recurse): Include the generic arguments for
12888         generic instances and generic type declarations.
12889         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
12890         (_mono_class_get_instantiation_name): Removed.
12891         (mono_class_create_generic): Always use `gklass->name' as our name.
12892
12893         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
12894
12895         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
12896         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
12897         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
12898         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
12899         closed generic methods here.
12900
12901         * reflection.c
12902         (mono_reflection_generic_inst_get_nested_types): Removed.
12903         (inflate_mono_method): Copy the generic parameters from the
12904         MonoMethodHeader into out MonoGenericMethod.
12905
12906 2004-04-06  Martin Baulig  <martin@ximian.com>
12907
12908         * row-indexes.h
12909         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
12910
12911         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
12912
12913         * reflection.c (build_compressed_metadata): If we have any entries
12914         in the GenericParam, MethodSpec or GenericParamConstraint tables,
12915         set the header version to 1.1.
12916
12917 2004-04-06  Martin Baulig  <martin@ximian.com>
12918
12919         * class.c (mono_class_init): If we're a generic instance,
12920         initialize our nested classes, too.
12921         (_mono_class_get_instantiation_name): Deal with the new `!%d'
12922         suffix. 
12923
12924 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12925
12926         * process.c: quote the argument passed to the shell on windows.
12927
12928 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
12929
12930         * threads.c (mono_alloc_special_static_data): Allow this to be
12931         called during startup.
12932
12933 2004-04-02  Martin Baulig  <martin@ximian.com>
12934
12935         * icall.c
12936         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
12937
12938 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
12939
12940         * icall.c: Fix build.
12941
12942 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
12943
12944         * Makefile.am: Added security.c|h.
12945         * icall.c: Added icall for get_UserName;
12946         * security.c: New file for security related icalls. Added function
12947         get_UserName for System.Environment (fix #56144).
12948         * security.h: New. Header file for security.c
12949
12950 2004-04-02  Dick Porter  <dick@ximian.com>
12951
12952         * icall.c: Deleted the icalls that were obsoleted some time ago
12953         by the ICU string code, and which were mixed into the icall
12954         rearranging.  Fixes bug 55969.
12955
12956         * string-icalls.h: 
12957         * string-icalls.c: Deleted the code that those icalls reference.
12958
12959 2004-04-01  Martin Baulig  <martin@ximian.com>
12960
12961         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
12962
12963         * class.c (mono_class_from_generic_parameter): Don't set 
12964         TYPE_ATTRIBUTE_INTERFACE.
12965         (my_mono_class_from_generic_parameter): Likewise.
12966
12967 2004-04-01  Martin Baulig  <martin@ximian.com>
12968
12969         * loader.c (find_method): Added an optional `MonoClass *ic'
12970         argument to search in a specific interface.
12971         (mono_get_method_constrained): New public function.
12972
12973 2004-04-01  Martin Baulig  <martin@ximian.com>
12974
12975         * reflection.c (mono_image_get_generic_field_token): Use the
12976         `handleref' cache here.
12977
12978 2004-04-01  Martin Baulig  <martin@ximian.com>
12979
12980         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
12981
12982         * reflection.c (create_generic_typespec): Use the `typespec' hash
12983         here, not the `typeref' one.    
12984
12985 2004-04-01  Martin Baulig  <martin@ximian.com>
12986
12987         * class.c (mono_class_inflate_generic_type): Moved the
12988         functionality into a new static inflate_generic_type() which
12989         returns NULL if it didn't do anything.  Only increment the
12990         `mono_stats.inflated_type_count' if we actually inflated
12991         something.
12992         (mono_class_get_full): Check the classes type to see whether we
12993         need to inflate it; also inflate MONO_TYPE_(M)VAR.
12994
12995 2004-04-01  Jackson Harper  <jackson@ximian.com>
12996
12997         * reflection.c: Set culture for assembly references.
12998         
12999 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
13000
13001         * reflection.[ch], icall.[ch], Fix support for pinning variables.
13002
13003 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13004
13005         * assembly.c:
13006         (do_mono_assembly_open): the critical section also covers
13007         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
13008
13009 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13010
13011         * threads.c:
13012         (mono_manage_threads): abort the background threads when finishing.
13013         Fixes bug #47232.
13014
13015 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13016
13017         * gc.c: only close the done_event handle if there was no timeout.
13018         C-ified comments.
13019
13020 2004-03-30  Martin Baulig  <martin@ximian.com>
13021
13022         * icall.c (icall_entries): It's called "System.Activator", not
13023         "System.Activation".    
13024
13025 2004-03-30  Martin Baulig  <martin@ximian.com>
13026
13027         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
13028         (mono_class_create_from_typespec): Likewise.
13029
13030 2004-03-30  Martin Baulig  <martin@ximian.com>
13031
13032         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
13033         `has_ctor_constraint' and `initialized'.
13034
13035 2004-03-30  Martin Baulig  <martin@ximian.com>
13036
13037         * reflection.c (encode_new_constraint): New static function to add
13038         the constructor constraint attribute to a type parameter.
13039         (encode_constraints): Call encode_new_constraint() if necessary.
13040
13041         * reflection.h
13042         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
13043
13044         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
13045         
13046 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
13047
13048         * reflection.c, icall.c: add support for pinning variables. 
13049
13050 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
13051
13052         * marshal.c (mono_marshal_get_managed_wrapper):
13053         init bool local with zero rather than null.
13054
13055 2004-03-29  Martin Baulig  <martin@ximian.com>
13056
13057         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
13058         the "official" behavior here.
13059         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
13060
13061 2004-03-29  Martin Baulig  <martin@ximian.com>
13062
13063         * icall.c: Reflect latest API changes.
13064
13065 2004-03-29  Martin Baulig  <martin@ximian.com>
13066
13067         * loader.c (mono_get_method_from_token): Also call
13068         mono_metadata_load_generic_params () for abstract and interface
13069         methods; replace the type arguments in the method signature with
13070         the ones which are loaded from the metadata.
13071
13072 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
13073
13074         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
13075         of the lock is not the current thread. MS.NET don't do it, in spite of
13076         what the documentation says. See bug #56157.
13077
13078 2004-03-28  Martin Baulig  <martin@ximian.com>
13079
13080         * class.c (mono_class_init): Don't call init_properties() and
13081         init_events() for generic instances; set `prop->parent' when
13082         inflating properties.
13083
13084         * reflection.c (mono_generic_inst_get_object): Call
13085         `mono_class_init (ginst->klass)'.
13086         (mono_type_get_object): Only create a MonoGenericInst if your
13087         generic type is a TypeBuilder.
13088         (do_mono_reflection_bind_generic_parameters): Only set
13089         `ginst->is_dynamic' if our generic type is a TypeBuilder.
13090
13091 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
13092
13093         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
13094         Fixes #56091.
13095
13096 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13097
13098         * icall.c: added Kill_internal icall.
13099         * process.[ch]: added Kill_internal icall.
13100
13101 2004-03-25  Martin Baulig  <martin@ximian.com>
13102
13103         * class.h (MonoStats): Added `generic_instance_count',
13104         `inflated_method_count', `inflated_type_count' and
13105         `generics_metadata_size'.       
13106
13107 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13108
13109         * reflection.c: no warnings now.
13110
13111 2004-03-25  Martin Baulig  <martin@ximian.com>
13112
13113         * class.c (mono_class_get_full): New public function; does a
13114         mono_class_get(), but also takes a `MonoGenericContext *'.
13115
13116         * loader.c (mono_field_from_memberref): Renamed to
13117         `field_from_memberref', made static and added `MonoGenericContext *'
13118         argument.
13119         (mono_field_from_token): Added `MonoGenericInst *' argument.
13120         (method_from_memberef): Likewise.
13121         (mono_get_method_from_token): Likewise.
13122         (mono_get_method_full): New public function; does a
13123         mono_get_method(), but also takes a `MonoGenericContext *'.
13124
13125         * verify.c (mono_method_verify): Get the method's generic context
13126         and pass it to mono_field_from_token(), mono_get_method_full() and
13127         mono_class_get_full().
13128
13129 2004-03-25  Martin Baulig  <martin@ximian.com>
13130
13131         * class.c (mono_class_inflate_generic_type): Take a
13132         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
13133         `MonoGenericMethod *'.
13134
13135 2004-03-25  Martin Baulig  <martin@ximian.com>
13136
13137         * loader.h (MonoMethodInflated): Store the MonoGenericContext
13138         instead of the MonoGenericMethod here.
13139
13140 2004-03-25  Martin Baulig  <martin@ximian.com>
13141
13142         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
13143         each time we create a new MonoGenericInst, we also create a new
13144         context which points back to us.
13145
13146         * class.c (inflate_method): Use `ginst->context' instead of
13147         creating a new context.
13148
13149         * loader.c (method_from_memberref): Use
13150         `klass->generic_inst->context' instead of creating a new context.
13151
13152 2004-03-25  Martin Baulig  <martin@ximian.com>
13153
13154         * class.h (MonoGenericContext): New struct.
13155         (MonoGenericMethod): Removed `generic_inst'.
13156
13157         * class.c (mono_class_inflate_generic_method): Take a
13158         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
13159
13160 2004-03-25  Martin Baulig  <martin@ximian.com>
13161
13162         * loader.h (MonoMethodInflated): New typedef.
13163
13164         * metadata.h (MonoMethodSignature): Removed `gen_method', make
13165         `generic_param_count' consume just 30 bits, added `is_inflated'
13166         and `has_type_parameters' flags (one bit each).
13167
13168         * class.c (mono_class_inflate_generic_method): Create a
13169         MonoMethodInflated instead of a MonoMethodNormal and set
13170         `is_inflated' in the method signature.
13171
13172         * class.h (MonoGenericMethod): Removed `generic_method'.
13173
13174 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
13175
13176         * image.c: Make sure the name of a MonoImage is always an absolute path.
13177           This fixes bug #54415.
13178
13179 2004-03-24  Martin Baulig  <martin@ximian.com>
13180
13181         * class.c (mono_class_setup_vtable): If we're a generic instance,
13182         use our generic type's vtable size.
13183
13184 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
13185
13186         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
13187         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
13188         problems.
13189
13190 2004-03-23  Martin Baulig  <martin@ximian.com>
13191
13192         * class.h (MonoDynamicGenericInst): Added `int count_events' and
13193         `MonoEvent *events'.
13194
13195         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
13196         (typebuilder_icalls): Added "get_event_info"; calls
13197         mono_reflection_event_builder_get_event_info(). 
13198
13199         * reflection.c (mono_reflection_generic_inst_initialize): Added
13200         `MonoArray *events'.
13201         (mono_reflection_event_builder_get_event_info): New function.
13202
13203 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
13204
13205         * object.h: add mono_type_initialization_init
13206
13207         * object.c (mono_runtime_class_init): 
13208         implement class constructor synchronization rules
13209         to cope with threading issues.  
13210         add mono_type_initialization_init
13211
13212         * appdomain.c (mono_runtime_init): call 
13213         mono_type_initialization_init
13214
13215         * class.h: removing initializing field from MonoVTable
13216
13217 2004-03-23  Martin Baulig  <martin@ximian.com>
13218
13219         * class.c (my_mono_class_from_generic_parameter): Use
13220         `param->name' if it's not NULL. 
13221
13222 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13223
13224         * class.c: do not insert non-virtual methods in the vtable.
13225         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13226         that means the method is non-virtual. This never would have
13227         happened before.
13228
13229 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13230
13231         * profiler.c: Added lock for accessing coverage_hash.
13232
13233 2004-03-22  Martin Baulig  <martin@ximian.com>
13234
13235         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13236         `method->method->signature->generic_param_count != 0' to make it
13237         work for interface methods.
13238
13239 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13240
13241         * process.c: quote the string passed to the shell using g_shell_quote.
13242
13243 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13244
13245         * threads.c:
13246         (mono_threads_manage): don't remove the finalizer thread and self
13247         from the threads hash table so that mono_thread_manage can be called
13248         more than once.
13249
13250 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13251
13252         * process.c: quote the arguments when UseShellExecute is true. Fixes
13253         bug #55790.
13254
13255 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13256
13257         * threads.c: set mono_thread_detach as a cleanup routine for every
13258         thread. This way it's always executed upon thread termination, either
13259         aborted or finished normally. No more xsp hangs!
13260
13261 2004-03-17  Martin Baulig  <martin@ximian.com>
13262
13263         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13264         `int count_nested' and a `MonoType **nested'.
13265
13266         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13267         most of the functionality into a new static
13268         do_mono_reflection_bind_generic_parameters() and don't take a
13269         `MonoType *nested_in' argument any more.  Don't compute nested
13270         types here.
13271         (mono_reflection_generic_inst_get_nested_types): New public method
13272         to get nested types.
13273
13274         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13275         we're a nested class.
13276
13277         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13278         mono_reflection_generic_inst_get_nested_types() to compute the
13279         nested types.
13280
13281 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13282
13283         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13284         descriptive error message under windows.
13285         
13286 2004-03-17  Martin Baulig  <martin@ximian.com>
13287
13288         * class.c (dup_type): Added `const MonoType *original' argument;
13289         copy the attrs from the original type.
13290
13291 2004-03-17  Martin Baulig  <martin@ximian.com>
13292
13293         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13294         `m->generic_inst_cache' here.
13295
13296 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13297
13298         * exception.h exception.c: Add stack_overflow_exception.
13299
13300 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13301
13302         * threadpool.c:
13303         (overlapped_callback): call SetEvent *after* invoking the callback.
13304         No need to call CloseHandle.
13305
13306 2004-03-16  Martin Baulig  <martin@ximian.com>
13307
13308         * reflection.c (mono_image_get_fieldref_token): Take a
13309         `MonoReflectionField *' instead of a `MonoClassField *' and a
13310         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13311
13312 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13313
13314         * appdomain.c: don't add the culture to the filename we're looking for
13315         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13316
13317 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13318
13319         * locales.c: don't ignore symbols when doing case insensitive compares.
13320         Thanks Dick! Fixes bug #54046.
13321
13322         * threads.c: surround 'threads' usage with enter/leave in
13323         mono_thread_manage.
13324
13325 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13326
13327         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13328         implicitly marshalled as [Out]. Fixes #55450.
13329
13330         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13331         an exception.
13332
13333 2004-03-16  Martin Baulig  <martin@ximian.com>
13334
13335         * class.c (mono_class_from_generic_parameter): Use the actual
13336         parameter name. 
13337
13338 2004-03-16  Martin Baulig  <martin@ximian.com>
13339
13340         * reflection.c (type_get_signature_size): New static function.
13341         Compues the size of the type in a method signature.
13342         (method_get_signature_size): New static function; calls
13343         type_get_signature_size() to compute the actual size of the
13344         method's signature.
13345         (method_encode_signature): Use method_get_signature_size() to get
13346         the signature's size rather than using `nparams * 10'.
13347
13348 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13349
13350         * file-io.h: define here WapiOverlapped on windows. I don't want the
13351         regular OVERLAPPED one.
13352
13353         * file-io.c:
13354         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13355         Disabling AIO on windows.
13356
13357 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13358
13359         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13360         bug #55385.
13361
13362 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13363
13364         * appdomain.c: upgraded corlib version.
13365
13366         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13367         and BeginWrite. Allow opening files for asynchrnous operations.
13368
13369         * file-io.h: new struct that maps FileStreamAsyncResult.
13370         * icall.c: added new icalls.
13371         * process.[ch]: support setting child process environment variables
13372         and use the SHELL or COMSPEC when UseShellExecute is true.
13373
13374         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13375         callback for async. IO is here and also BindHandle.
13376
13377         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13378         from here.
13379
13380 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13381
13382         * reflection.c (create_custom_attr): Allow len == 0.
13383
13384         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13385         computation on big-endian machines.
13386
13387 2004-03-13  Martin Baulig  <martin@ximian.com>
13388
13389         * class.h (MonoGenericInst): Added `int count_ifaces'.
13390
13391         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13392         `ginst->count_ifaces' instead `klass->interface_count' since we
13393         may get called before the vtable is created.
13394
13395         * loader.c (mono_method_get_param_names): If we're a generic
13396         instance, return and don't initialize the class.
13397
13398         * reflection.c (mono_reflection_setup_generic_class): Don't call
13399         ensure_runtime_vtable().
13400         (mono_reflection_bind_generic_parameters): Set
13401         `ginst->count_ifaces'.
13402
13403 2004-03-11  Jackson Harper <jackson@ximian.com>
13404
13405         * icall.c:
13406         * unicode.c:
13407         * unicode.h: Remove unused System.Char icalls.
13408         
13409 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13410
13411         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13412         code when we P/Invoke the first library in Windows.Forms, instead
13413         of when we first open the assembly.
13414
13415         * assembly.c: Drop the lookup from here.
13416
13417 2004-03-10  Martin Baulig  <martin@ximian.com>
13418
13419         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13420         class for properties, fields and events.  Finally fixes #54945.
13421
13422 2004-03-10  Martin Baulig  <martin@ximian.com>
13423
13424         * metadata.c (mono_metadata_class_equal): New static function;
13425         checks whether two generic instances or two generic parameters are
13426         equal.
13427         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13428         compare classes.        
13429
13430 2004-03-10  Martin Baulig  <martin@ximian.com>
13431
13432         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13433
13434         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13435         argument and write it into the `reflection_info' field.
13436
13437         * icall.c
13438         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13439         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13440
13441 2004-03-09  Jackson Harper  <jackson@ximian.com>
13442
13443         * char-conversions.h: use 8 bits for numeric data its all we need
13444         * icall.c: numeric data is only 8 bits now.
13445
13446 2004-03-09  Martin Baulig  <martin@ximian.com>
13447
13448         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
13449
13450         * class.c (init_properties, init_events): Initialize the new
13451         `parent' field.
13452
13453         * reflection.c (typebuilder_setup_properties): Likewise.
13454         (typebuilder_setup_events): Likewise.
13455
13456         * reflection.h (MonoEventInfo): Replaced `parent with
13457         `declaring_type' and `reflected_type'.
13458
13459         * icall.c (ves_icall_get_property_info): Distinguish between
13460         declaring and reflected type.
13461         (ves_icall_get_event_info): Likewise.
13462
13463 2004-03-09  Martin Baulig  <martin@ximian.com>
13464
13465         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
13466         (ves_icall_Type_GetField): Correctly set field->klass.
13467
13468 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
13469
13470         * loader.h: Fix warning.
13471
13472 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
13473
13474         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
13475         library routine if present.  Notice that it will still continue
13476         executing even if its missing, for those working on the Gtk#
13477         edition of Windows.Forms.
13478
13479         * assembly.c (do_mono_assembly_open): If loading the
13480         System.Windows.Forms call mono_loader_wini_init.
13481
13482 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
13483
13484         * class.h: Added MonoRemoteClass struct.
13485         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
13486         function for MonoStrings.
13487         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
13488         Added internal call for getting the proxy type.
13489         * marshal.c: Get the type of transparent proxies from its remote_class.
13490         Added methods that generate the IL for type checks and casts:
13491         mono_marshal_get_isinst, mono_marshal_get_castclass, 
13492         mono_marshal_get_proxy_cancast.
13493         * marshal.h: Declaration of the previous new methods.
13494         * object.c: Added new moethods for creating and updating MonoRemoteClass
13495         instances: mono_remote_class, mono_upgrade_remote_class, 
13496         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
13497         * verify.c: FIx transparent_proxy_fields layout.
13498         * appdomain.c: Bump corlib version.
13499
13500 2004-03-04  Jackson Harper  <jackson@ximian.com>
13501
13502         * icall.c: Add icall to access char conversion tables.
13503         * char-conversions.h: Character conversion tables.
13504         * Makefile.am: Add char-conversions.h private header file.
13505         
13506 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
13507
13508         * appdomain.c (unload_thread_main): Increase unloading timeout to
13509         10 sec as a temporary workaround for Nant problems.
13510
13511 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
13512
13513         * gc.c: Add checks for GC_enable and GC_disable.
13514
13515         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
13516         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
13517         (bug #54988).
13518         
13519 2004-02-27  Martin Baulig  <martin@ximian.com>
13520
13521         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13522         `MonoReflectionType *' instead of a `MonoType *'.
13523
13524 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
13525
13526         * gc.c (run_finalize): Avoid finalizing the object representing the
13527         finalizer thread.
13528         (finalizer_thread): Fix warning.
13529
13530 2004-02-25  Martin Baulig  <martin@ximian.com>
13531
13532         * class.c (_mono_class_get_instantiation_name): Added `int offset'
13533         argument for nested types.
13534         (mono_class_create_generic): Added support for nested generictypes.
13535
13536         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
13537         `GList *nested'.
13538
13539         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
13540
13541         * reflection.c (method_encode_signature): Increase the minimum
13542         value of `size' from 10 to 11.
13543         (mono_reflection_bind_generic_parameters): Take `int type_argc'
13544         and `MonoType **types' arguments instead of the `MonoArray
13545         *types'; added `MonoType *nested_in'.  Recursively instantiate
13546         nested classes. 
13547
13548 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
13549
13550         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
13551         stack_overflow_ex members which are used by exception handling.
13552
13553         * appdomain.c (mono_runtime_init): Initialize the new members.
13554
13555         * gc.c (mono_gc_enable): New helper function.
13556         * gc.c (mono_gc_disable): New helper function.
13557
13558 2004-02-23  Martin Baulig  <martin@ximian.com>
13559
13560         * icall.c: I must have been really stupid - make it actually work
13561         this time ;-)
13562
13563 2004-02-23  Martin Baulig  <martin@ximian.com>
13564
13565         * loader.c (method_from_memberref): Only inflate the method if
13566         it's in another klass.
13567
13568 2004-02-23  Martin Baulig  <martin@ximian.com>
13569
13570         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
13571         (mono_class_init): If we're a generic instance and an interface,
13572         compute `class->interface_id'; also create `class->interfaces'
13573         here and inflate them.
13574
13575         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
13576         `ginst->is_open'.
13577         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
13578
13579         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
13580
13581 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
13582
13583         * reflection.c (method_encode_code): Improved the error message
13584         generated by the exception.
13585
13586 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13587
13588         * icall.c: Martin did not do what he said in the ChangeLog for
13589         2004-02-18, but put back the changes for properties and events.
13590         Commenting those changes out again and adding comment to bug #54518.
13591         
13592         * process.c: removed warning.
13593
13594 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
13595
13596         * marshal.c (emit_struct_conv): Print an error message instead of
13597         asserting when a type does not have the StructLayout attribute.
13598
13599 2004-02-20  Martin Baulig  <martin@ximian.com>
13600
13601         * reflection.c (mono_type_get_object): Also use the cache for
13602         generic instances.
13603         (mono_reflection_bind_generic_parameters): Always compute
13604         `ginst->ifaces'.        
13605
13606 2004-02-20  Martin Baulig  <martin@ximian.com>
13607
13608         * class.h (MonoGenericMethod): Removed `klass'.
13609
13610         * class.c (mono_class_inflate_generic_method): Added `MonoClass
13611         *klass' argument.
13612
13613 2004-02-20  Martin Baulig  <martin@ximian.com>
13614
13615         * reflection.c (method_encode_methodspec): Actually use the
13616         uninflated signature for the memberref.
13617
13618 2004-02-20  Martin Baulig  <martin@ximian.com>
13619
13620         * class.h (MonoGenericMethod): Removed `declaring'.
13621
13622         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
13623         is NULL, compute it here.
13624
13625 2004-02-20  Martin Baulig  <martin@ximian.com>
13626
13627         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
13628
13629         * metadata.c (mono_metadata_generic_inst_hash): New method.
13630         (mono_metadata_generic_inst_equal): New method.
13631
13632         * reflection.c (mono_reflection_bind_generic_parameters): Use the
13633         `klass->image->generic_inst_cache' cache to avoid creating
13634         duplicate MonoGenericInst's.
13635
13636         * class.c (mono_class_inflate_generic_type): Use the cache.
13637
13638 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
13639
13640         * object.c: fixed gc descriptor calculation for embedded valuetypes.
13641
13642 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13643
13644         * icall.c: added Socket.WSAIoctl icall.
13645
13646         * socket-io.[ch]: implemented
13647         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
13648
13649 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
13650
13651         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
13652
13653 2004-02-18  Urs C Muff  <umuff@quark.com>
13654
13655         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
13656         this work on PPC and other big-endian architectures.
13657
13658         * debug-mono-symfile.h: Prepended the names of all the `guint32'
13659         fields with an underscore to make sure they're only accessed by
13660         the read32() macro.
13661
13662 2004-02-18  Martin Baulig  <martin@ximian.com>
13663
13664         * icall.c: Put the klass->refclass changes back for methods and
13665         fields, but not for properties and events.  We're currently not
13666         distinguishing between DeclaringType and ReflectedType for
13667         properties and events, that's what caused the regressions.
13668
13669 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13670
13671         * object.c:
13672         (mono_async_result_new): the handle can be NULL.
13673
13674         * threadpool.c: Use an event instead of a semaphore, don't initialize
13675         it until needed. This saves quite a few semaphores from being created
13676         when using the threadpool.
13677
13678 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
13679
13680         * object.c (mono_string_is_interned_lookup): Fix interning of long
13681         strings. Fixes #54473.
13682
13683         * domain.c (ldstr_equal): Optimize if the two strings are equal.
13684
13685         * icall.c: Revert the klass->refclass changes since they introduce
13686         regressions (bug #54518).
13687
13688 2004-02-18  Martin Baulig  <martin@ximian.com>
13689
13690         * class.c (mono_class_init): If we're a generic instance and don't
13691         come from a TypeBuilder, inflate our members here.
13692         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
13693         (mono_class_create_generic): New public method.
13694         (mono_class_initialize_generic): Removed.
13695         (get_instantiation_name): Renamed to
13696         _mono_class_get_instantiation_name() and made it public.
13697
13698 2004-02-18  Martin Baulig  <martin@ximian.com>
13699
13700         * class.c (mono_class_inflate_generic_type): Clear the new
13701         instance's `nginst->klass' when inflating a generic instance.
13702         (mono_class_is_subclass_of): Added (basic) support for generic
13703         instances.
13704
13705 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
13706
13707         * appdomain.h, domain.c: use a MonoCodeManager instead of a
13708         MonoMempool to hold compiled native code.
13709
13710 2004-02-17  Martin Baulig  <martin@ximian.com>
13711
13712         * class.h (MonoDynamicGenericInst): Added `count_properties' and
13713         `properties'.
13714
13715         * reflection.c (mono_reflection_generic_inst_initialize): Added
13716         `MonoArray *properties' argument.
13717
13718         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
13719
13720 2004-02-17  Martin Baulig  <martin@ximian.com>
13721
13722         * icall.c (ves_icall_Type_GetFields): Renamed to
13723         ves_icall_Type_GetFields_internal() and added a
13724         `MonoReflectionType *rtype' argument; pass it to
13725         mono_field_get_object() to set the field's "reflected" type.
13726         (ves_icall_Type_GetConstructors): Likewise.
13727         (ves_icall_Type_GetEvents): Likewise.
13728         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
13729         argument; pass it to mono_method_get_object() to set the method's
13730         "reflected" type.       
13731
13732 2004-02-17  Martin Baulig  <martin@ximian.com>
13733
13734         * class.h (MonoDynamicGenericInst): New type.
13735         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
13736
13737         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
13738         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
13739         (ves_icall_MonoGenericInst_GetFields): New interncall.
13740
13741         * class.c (mono_class_from_generic): Don't call
13742         mono_class_initialize_generic() if this is a dynamic instance;
13743         ie. it's being created from a TypeBuilder.
13744         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
13745         `class->byval_arg.type'.
13746
13747         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
13748         to `inflate_method' and made static.
13749         (mono_reflection_inflate_field): Removed.
13750         (mono_reflection_generic_inst_initialize): New public method.
13751
13752         * reflection.h (MonoReflectionGenericInst): Removed `methods',
13753         `ctors' and `fields'; added `initialized'.
13754
13755 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
13756
13757         * debug-helpers.c (mono_method_full_name): Fix output for empty
13758         namespaces.
13759
13760 2004-02-12  Martin Baulig  <martin@ximian.com>
13761
13762         * class.h (MonoClassField): Added `MonoType *generic_type'.
13763
13764         * reflection.c (mono_image_get_fieldref_token): Added support for
13765         instantiated generic types.
13766         (field_encode_inflated_field): Removed.
13767         (mono_image_get_inflated_field_token): Removed.
13768         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
13769
13770         * reflection.h (MonoReflectionInflatedField): Removed.
13771
13772 2004-02-12  Martin Baulig  <martin@ximian.com>
13773
13774         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
13775         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
13776
13777         * reflection.c (mono_image_get_methodspec_token): Take a
13778         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
13779         (mono_image_create_token): Check whether we have a
13780         `method->signature->gen_method' and call
13781         mono_image_get_methodspec_token() if appropriate.
13782         (inflated_method_get_object): Removed.
13783         (mono_reflection_bind_generic_method_parameters): Return a
13784         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
13785         (mono_reflection_inflate_method_or_ctor): Likewise.
13786
13787         * reflection.h (MonoReflectionInflatedMethod): Removed.
13788
13789 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
13790
13791         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
13792         for custom valuetype marshalling.
13793
13794         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
13795
13796 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13797
13798         * icall.c: fixed WSAGetLastError_internal name.
13799
13800 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
13801
13802         * threads.c (mono_thread_attach): Allow this to be called multiple
13803         times for a thread.
13804         
13805         * threads.c (build_wait_tids): Do not wait for ourselves.
13806
13807         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
13808         appdomain list is empty.
13809
13810         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
13811         memory returned by mono_string_builder_to_utf16, since it points into
13812         managed memory. Thanks to Bernie Solomon for noticing this.
13813
13814         * icall.c: Add AppDomainSetup icalls.
13815
13816         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
13817
13818         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
13819         types.
13820
13821         * reflection.c (reflection_methodbuilder_to_mono_method): Save
13822         custom attributes to the method_aux struct. Also fix array indexes etc.
13823
13824         * loader.c (mono_method_get_param_names): Make dynamic case work again.
13825         
13826 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
13827
13828         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
13829         (both static and runtime) and reduce startup time.
13830
13831 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
13832
13833         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
13834         AsAny marshalling conversion instead of crashing.
13835
13836         * marshal.c: Fix warnings.
13837
13838 2004-02-09  Martin Baulig  <martin@ximian.com>
13839
13840         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
13841
13842         * reflection.h (MonoReflectionInflatedMethod): Removed the
13843         `declaring' field, it's now in the unmanaged MonoGenericMethod.
13844
13845         * reflection.c (method_encode_methodspec): Removed the `method'
13846         argument; we get it from `gmethod->declaring'.
13847         (inflated_method_get_object): Removed the `declaring' argument.
13848
13849 2004-02-09  Martin Baulig  <martin@ximian.com>
13850
13851         * class.h (MonoGenericMethod): New type.
13852         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
13853         `generic_method'.
13854
13855         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
13856         a `MonoGenericMethod *gen_method' one.
13857
13858         * class.c (mono_class_inflate_generic_type): Take an additional
13859         `MonoGenericMethod * argument.  This is only non-NULL if we're
13860         inflating types for a generic method.   
13861         (mono_class_inflate_generic_signature): Renamed to
13862         inflate_generic_signature() and made static; take a
13863         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
13864         (inflate_generic_header): Take a `MonoGenericMethod *' argument
13865         instead of a `MonoGenericInst *' one.
13866         (mono_class_inflate_generic_method): Likewise.
13867
13868         * reflection.c (encode_generic_method_sig): Take a
13869         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
13870         (method_encode_methodspec): Likewise.
13871         (inflated_method_get_object): Likewise. 
13872
13873         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
13874         field with a `MonoGenericMethod *gmethod' one.  
13875
13876 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
13877
13878         * class.h (mono_class_has_parent): add parens to expansion
13879         so you can ! this.
13880
13881 2004-02-08  Martin Baulig  <martin@ximian.com>
13882
13883         * image.h (MonoImage): Removed `generics_cache'.
13884
13885         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
13886         instead of a `MonoType *' argument; removed the `inflate_methods'
13887         argument.  Don't inflate methods here.
13888
13889         * loader.c (find_method): If it's a generic instance, call
13890         mono_class_init() on the `sclass->generic_inst->generic_type'.
13891
13892         * metadata.c (mono_type_size): Make this work on uninitialized
13893         generic instances; call it on the `ginst->generic_type's class.
13894
13895         * reflection.c (mono_reflection_bind_generic_parameters): Call
13896         mono_class_from_generic() to create the `ginst->klass'.
13897
13898 2004-02-08  Martin Baulig  <martin@ximian.com>
13899
13900         * class.h (MonoClass): Changed type of `generic_inst' from
13901         `MonoType *' to `MonoGenericInst *'.
13902
13903 2004-02-08  Martin Baulig  <martin@ximian.com>
13904
13905         * icall.c (ves_icall_Type_BindGenericParameters): Just call
13906         mono_type_get_object(), this is now creating a `MonoGenericInst'
13907         for MONO_TYPE_GENERICINST.
13908         (ves_icall_MonoGenericInst_GetParentType): Likewise.
13909         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
13910
13911         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
13912         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
13913         (inflated_method_get_object): Added `MonoClass *refclass' argument.
13914         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
13915         and reflected type.
13916
13917         * reflection.h (MonoReflectionInflatedMethod): Removed
13918         `declaring_type' and `reflected_type'.
13919
13920 2004-02-08  Martin Baulig  <martin@ximian.com>
13921
13922         * class.h (MonoGenericInst): Added `MonoType *parent' and
13923         `MonoType **ifaces'.
13924
13925         * reflection.h (MonoReflectionGenericInst): Removed `klass',
13926         `parent' and `interfaces'.
13927
13928         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13929         `MonoType *' argument and return a `MonoType *'.
13930
13931         * icall.c
13932         (ves_icall_MonoGenericInst_GetParentType): New interncall.
13933         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
13934
13935 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
13936
13937         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
13938         valuetype marshalling.
13939
13940 2004-02-06  Martin Baulig  <martin@ximian.com>
13941
13942         * class.c
13943         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
13944         (my_mono_class_from_generic_parameter): Likewise.
13945
13946 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
13947
13948         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
13949         contents of the symbol files lazily.
13950
13951         * object.h (MonoThread): Add 'name' and 'name_len' fields.
13952
13953         * threads.h threads.c icall.c: New icalls for getting and setting the
13954         threads name.
13955
13956 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
13957
13958         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
13959         Raise an exception when the domain is not found.
13960
13961 2004-02-03  Martin Baulig  <martin@ximian.com>
13962
13963         * reflection.c (mono_image_get_methodspec_token): Use the
13964         uninflated signature; fixes gen-33.
13965
13966 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
13967
13968         * gc.c threads.c: Make the finalizer thread a normal managed thread so
13969         the finalizer code can use thread functionality.
13970
13971         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
13972         the finalizer thread.
13973
13974         * threads.c: Make some functions more robust.
13975
13976         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
13977
13978         * metadata.h: Add new marshalling conventions.
13979
13980         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
13981         stringbuilder marshalling. Fixes #53700.
13982
13983         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
13984
13985         * reflection.c (mono_image_get_type_info): Save declarative security
13986         info.
13987
13988         * reflection.c (mono_image_get_field_info): Handle uninitialized 
13989         unmanaged fields as well.
13990
13991         * appdomain.c: Bump corlib version.
13992
13993 2004-02-01  Martin Baulig  <martin@ximian.com>
13994
13995         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
13996         method type arguments.  
13997
13998 2004-01-30  Duncan Mak  <duncan@ximian.com>
13999
14000         * marshal.h: Add prototype for
14001         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
14002         and
14003         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
14004         fix the build.
14005
14006 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
14007
14008         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
14009         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
14010
14011 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14012
14013         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14014         custom marshalling of valuetypes.
14015
14016         * marshal.c: Fix some warnings.
14017
14018 2004-01-29  Martin Baulig  <martin@ximian.com>
14019
14020         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
14021         for generic method parameters.
14022
14023         * reflection.c (method_encode_methodspec): Write the uninflated
14024         signature into the methodspec table.
14025         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
14026         is always the uninflated method.
14027         (reflection_methodbuilder_to_mono_method): Copy the generic
14028         parameters from the MethodBuilder into `header->gen_params'.
14029
14030 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14031
14032         * class.c (mono_class_from_generic_parameter): Fix warning.
14033
14034 2004-01-27  Martin Baulig  <martin@ximian.com>
14035
14036         * class.c (mono_class_from_generic_parameter): Don't create
14037         `klass->methods' here.  
14038
14039 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
14040
14041         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
14042         extension since it does not work with libraries named lib<FOO>.dll.so.
14043
14044 2004-01-25  Martin Baulig  <martin@ximian.com>
14045
14046         * class.c (mono_class_inflate_generic_type): Added support for
14047         MONO_TYPE_GENERICINST.
14048
14049         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
14050         inflate methods on open constructed types.      
14051
14052 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14053
14054         * object.c: fire ProcessExit event in the root AppDomain after running
14055         Main. Fixes bug #53299.
14056
14057 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
14058
14059         * socket-io.c: include the new socket-wrappers.h header.
14060         Use the wrappers instead of the unix socket functions to make the code
14061         more clear.
14062
14063 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
14064
14065         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
14066
14067         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14068         Fixes #22532.
14069
14070 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
14071
14072         * reflection.c (mono_image_create_pefile): Handle the case when the
14073         entry point is not a MethodBuilder.
14074
14075         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14076         field to ReflectionMethod since it is not allways a builder.
14077
14078         * reflection.c (type_get_fully_qualified_name): New helper function to
14079         return the fully qualified name of a type.
14080
14081         * reflection.c (encode_marshal_blob): Always emit the fully qualified
14082         type name for custom marshallers.
14083
14084         * reflection.c (mono_marshal_spec_from_builder): Ditto.
14085
14086         * class.c (mono_class_setup_vtable): If a parent class already 
14087         implements an interface, use the implementing methods from that class.
14088         Fixes #53148.
14089
14090 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14091
14092         * threadpool.c: just return instead of ExitThread to allow for thread
14093         clean up earlier.
14094
14095 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
14096
14097         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
14098         when closing resource modules.
14099
14100         * reflection.c (mono_image_create_pefile): Handle the case when the
14101         entry point is not a MethodBuilder.
14102
14103         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14104         field to ReflectionMethod since it is not allways a builder.
14105
14106 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14107
14108         * marshal.c (mono_marshal_get_managed_wrapper): 
14109         mono_marshal_alloc takes native int so CONV_I
14110         the arg for 64bits.
14111
14112 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
14113
14114         * reflection.c (fixup_cattrs): New function to fixup the methoddef
14115         tokens in the cattr table. Fixes #53108.
14116
14117 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14118
14119         * loader.c: don't trim ".dll" before looking up in the config file.
14120         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
14121
14122 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
14123
14124         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
14125         Return the module which contains the resource as well.
14126         (ves_icall_System_Reflection_Module_Close): New icall.
14127
14128         * appdomain.c: Bump corlib version number.
14129
14130         * image.c (mono_image_addref): New public function.
14131
14132         * assembly.c: Call mono_image_addref.
14133
14134         * reflection.c (mono_module_get_object): Increase reference count of 
14135         the image.
14136
14137         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14138         Fixes #22532.
14139
14140         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
14141         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
14142         proper exceptions on DllImport problems.
14143
14144 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
14145
14146         * class.c, metadata.c: eliminate CSIZE macro.
14147
14148 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
14149
14150         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
14151         * object.h: Added async_callback field in MonoAsyncResult.
14152         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
14153         * verify.c: Added async_callback in MonoAsyncResult layout.
14154
14155 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
14156
14157         * reflection.c (mono_reflection_get_custom_attrs): Add support
14158         for Modules.
14159
14160 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14161
14162         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
14163         marshalling.
14164         (mono_marshal_method_from_wrapper): Add null pointer check.
14165
14166 2004-01-16  Martin Baulig  <martin@ximian.com>
14167
14168         * debug-mono-symfile.h: Set version number to 36 and reflect
14169         latest symbol writer changes.
14170
14171 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14172
14173         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
14174         multi-dimensional arrays.
14175         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
14176         (mono_class_from_mono_type): Use bounded_array_class_get.
14177         
14178         * class.c (mono_bounded_array_class_get): New function which takes
14179         a 'bounded' bool argument to distinguish vectors from one dimensional
14180         arrays.
14181
14182         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
14183         bounded_array_class_get if the array has bounds.
14184
14185         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14186         Search modules loaded using AssemblyBuilder:AddModule as well.
14187
14188 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14189
14190         * appdomain.c: increased corlib version.
14191         * filewatcher.c: removed g_print.
14192         * icall.c:
14193         (get_property_info): only allocate what is actually requested.
14194         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
14195
14196 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14197
14198         * Makefile.am: added filewatcher.[ch]
14199         * filewatcher.[ch]: FileSystemWatcher runtime support.
14200         * icall.c: added new FSW icalls.
14201
14202 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
14203
14204         * string-icalls.c: fix stringbuilder regression as suggested by
14205         Iain McCoy <iain@mccoy.id.au>.
14206
14207 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14208
14209         * process.c (process_read_stringtable_block): Recognize '007f' as
14210         a language neutral stringtable block.
14211
14212 2004-01-12  Patrik Torstensson
14213
14214         * object.h (MonoStringBuilder) : Changed layout to support our
14215         new stringbuilder class.
14216         * marshal.c: Change marshalling to support the new layout of 
14217         string builder.
14218         * appdomain.c: increased version number because new layout of
14219         string builder.
14220
14221 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14222
14223         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14224         assembly name as an string instead of an AssemblyName, since it is
14225         easier to extract info from it.
14226
14227         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14228         the culture subdirectories too. Fixes #52231.
14229
14230 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14231
14232         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14233         It takes 2 new parameters with an optional name for the method to look
14234         for and case ignoring info.
14235
14236         * threadpool.c: removed unused variable.
14237
14238 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14239
14240         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14241         It takes 2 new parameters with an optional name for the property to look
14242         for and case ignoring info.
14243         Fixes bug #52753.
14244
14245 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14246
14247         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14248         Fix #52451.
14249
14250 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14251
14252         * appdomain.c:
14253         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14254         Fixes bug #52630.
14255
14256 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14257
14258         * reflection.c: Add support for more than one unmanaged resource.
14259
14260         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14261         in field->def_value, as done in all other cases.
14262
14263         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14264         TypeBuilders.
14265
14266         * reflection.c (mono_reflection_create_runtime_class): Remove 
14267         errorneous assignment to klass->element_class, since it is already
14268         done in mono_reflection_setup_internal_class.
14269
14270 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14271
14272         * gc.c: added missing LeaveCriticalSection.
14273         * icall.c: indented a couple of lines.
14274         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14275         if we call EndInvoke inside a callback. Fixes bug #52601.
14276
14277 2004-01-07  Martin Baulig  <martin@ximian.com>
14278
14279         * mono-debug-debugger.h
14280         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14281
14282 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14283
14284         * appdomain.c: Use messages in NotImplementedException.
14285
14286         * exception.c (mono_get_exception_not_implemented): Now this takes
14287         a message argument.
14288
14289         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14290         exception instead of g_asserting an aborting when something is not
14291         implemented.
14292
14293         Add some inline docs.
14294
14295 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14296
14297         * reflection.h: Update after changes to object layout.
14298
14299         * reflection.c: Implement saving of unmanaged aka win32 resources.
14300
14301         * appdomain.c: Bump version number.
14302
14303         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14304         Handle missing domains gracefully.
14305
14306 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14307
14308         * file-io.c : On Windows, there are much more invalid_path_chars.
14309
14310 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14311
14312         * class.h, object.c: prepare for GetType () speedup.
14313
14314 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14315
14316         * profiler.c: workaround for --profile null reference exception on
14317           cygwin. Patch by Patrik Torstensson.
14318
14319 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14320
14321         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14322         make work for unaligned access.
14323
14324 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14325
14326         * class.c: small cleanup (class->fields [i] -> field).
14327         * image.c: check address of metadata is valid.
14328
14329 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14330
14331         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14332         search the list of loaded assemblies.
14333
14334         * reflection.c (mono_reflection_type_from_name): Use 
14335         mono_assembly_loaded instead of mono_image_loaded.
14336
14337         * reflection.c: Fix warnings.
14338
14339 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
14340
14341         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
14342         is dynamic. This is needed since an assembly can contain both dynamic and
14343         non-dynamic images.
14344
14345         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
14346         assembly->dynamic.
14347
14348         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14349
14350         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14351         to store modules loaded using AddModule.
14352
14353         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14354         on Modules.
14355
14356         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14357
14358         * reflection.c (mono_image_fill_export_table_from_module): New function to
14359         fill out the EXPORTEDTYPES table from a module.
14360
14361         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14362         into a separate function. Also handle loaded non-dynamic modules.
14363
14364         * reflection.c (mono_image_basic_init): Fix memory allocation.
14365
14366         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14367
14368         * assembly.c (mono_assembly_load_references): Make this public.
14369
14370 2003-12-19  Martin Baulig  <martin@ximian.com>
14371
14372         * class.c (mono_class_initialize_generic): Made this static, take
14373         a `MonoGenericInst *' instead of a `MonoClass *'.
14374         (mono_class_from_generic): Call mono_class_initialize_generic()
14375         unless we're already initialized or being called from
14376         do_mono_metadata_parse_generic_inst().
14377
14378         * class.h (MonoGenericInst): Added `initialized' and
14379         `init_pending' flags.
14380
14381         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14382         `mono_class_init (gklass)' or mono_class_initialize_generic()
14383         here; set `generic_inst->init_pending' while parsing the
14384         `type_argv'.
14385
14386 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14387
14388         * locales.c: include string.h for memxxx prototypes
14389
14390 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14391
14392         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14393         constructor when accessing literal fields.
14394
14395 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14396
14397         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14398
14399         * reflection.c (assembly_add_resource_manifest): New function to fill
14400         the MANIFESTRESOURCE table.
14401
14402         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14403
14404         * reflection.h: Update to changes in class layout.
14405
14406         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14407         Reenable call to mono_runtime_is_shutting_down ().
14408
14409         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14410         determine if the runtime is shutting down.
14411
14412 2003-12-16  Jackson Harper <jackson@ximian.com>
14413
14414         * icall.c: comment out call to mono_runtime_is_shutting_down to
14415         fix build.
14416         
14417 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14418
14419         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14420         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14421
14422 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14423
14424         * reflection.c: move definition of swap_with_size
14425         to before its first call
14426
14427 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14428
14429         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14430
14431         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14432         icall.
14433
14434         * object.c: Fix warnings.
14435
14436         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14437         members if FlattenHierarchy is set.
14438
14439         * reflection.c (mono_image_add_decl_security): New function to emit
14440         declarative security.
14441
14442         * reflection.h reflection.c: Add support for declarative security.
14443
14444         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14445         
14446 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
14447
14448         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14449         
14450         * appdomain.c verify.c: Moved corlib version checking into its own
14451         function in appdomain.c since it needs to create vtables etc.
14452
14453 2003-12-13  Patrik Torstensson <p@rxc.se>
14454
14455         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
14456         instead of unwrapped server.
14457
14458 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
14459
14460         * verify.c (check_corlib): Fix field index.
14461
14462 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
14463
14464         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
14465         GetGacPath icall.
14466
14467 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
14468
14469         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
14470         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
14471         cope with sizeof(size_t) != sizeof(guint32).
14472
14473 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14474
14475         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
14476         in case of failure.
14477
14478 2003-12-10  Mark Crichton <crichton@gimp.org>
14479
14480         * icall.c: removed the GetNonZeroBytes.  We now handle this case
14481         in managed code.
14482
14483         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
14484
14485 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
14486
14487         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
14488         marked as deleted.
14489
14490 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
14491
14492         * verify.c (check_corlib): Handle the case when the version field is 
14493         initialized by a static constructor.
14494
14495 2003-12-08  Patrik Torstensson  <p@rxc.se>
14496
14497     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
14498
14499 2003-12-08  Martin Baulig  <martin@ximian.com>
14500
14501         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
14502         a MonoReflectionGenericParameter, also take the parameter index
14503         and name as arguments.
14504         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14505         (ves_icall_MonoGenericParam_initialize): New interncall.
14506         (ves_icall_Type_make_byref_type): New interncall.
14507
14508         * reflection.h (MonoReflectionGenericParam): Derive from
14509         MonoReflectionType, not just from MonoObject.  Added `refobj' and
14510         `index' fields.
14511
14512         * reflection.c (mono_reflection_define_generic_parameter): Create
14513         and return a new MonoReflectionGenericParam; don't initialize the
14514         constraints here.
14515         (mono_reflection_initialize_generic_parameter): New public method;
14516         initializes the constraints and creates the `param->pklass'.
14517
14518 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
14519
14520         * reflection.h reflection.c: Use the new fields 'num_types', 
14521         'num_fields' and 'num_methods' to track the number of types etc.
14522
14523         * verify.c (check_corlib): Check corlib version number.
14524
14525 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
14526
14527         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
14528         function works on all methods.
14529
14530 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
14531
14532         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
14533         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
14534         the custom_type_info flag of the transparent proxy.
14535         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
14536         objects that supports IRemotingTypeInfo.
14537         * object.h: Added custom_type_info field in transparent proxy.
14538
14539 2003-12-06  Martin Baulig  <martin@ximian.com>
14540
14541         * class.c (mono_class_create_from_generic): Removed.
14542         (mono_class_from_generic): Check `ginst->klass' before doing
14543         anything else.  This is important to fully support "recursive"
14544         generic types.
14545
14546         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
14547         empty `generic_inst->klass' before doing anything else.
14548
14549 2003-12-06  Dick Porter  <dick@ximian.com>
14550
14551         * verify.c: 
14552         * object.h:
14553         * icall.c:
14554         * locales.c: Use C structs to access class fields.  Don't do a
14555         conversion between MonoString and UChar because both are
14556         platform-endian UTF-16.  Compare now takes startindex and count
14557         parameters.  Add a char overload for IndexOf.  Speed up the
14558         invariant string IndexOf.
14559
14560 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
14561
14562         * Makefile.am (monosn_LDADD): Fix parallel build.
14563
14564 2003-12-04  Martin Baulig  <martin@ximian.com>
14565
14566         * icall.c
14567         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14568         (ves_icall_Type_make_array_type): New interncall.       
14569
14570 2003-12-04  Martin Baulig  <martin@ximian.com>
14571
14572         * locales.c: also change it in the !HAVE_ICU case.
14573
14574 2003-12-04  Dick Porter  <dick@ximian.com>
14575
14576         * icall.c:
14577         * locales.c: construct_compareinfo is now in CompareInfo, not
14578         CultureInfo.
14579
14580 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
14581
14582         * image.c (mono_image_load_file_for_image): Cache loaded images in the
14583         image->files array.
14584
14585         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
14586         table as well.
14587
14588         * assembly.c (mono_assembly_load_references): Only load references
14589         once.
14590
14591         * class.c (mono_class_from_name): Avoid linear search of the 
14592         EXPORTEDTYPE table.
14593
14594         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
14595
14596 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
14597
14598         * image.h (MonoImage): Add 'field_cache' field.
14599
14600         * loader.c (mono_field_from_token): Cache field lookups.
14601         
14602         * reflection.c (mono_module_get_object): Fix name property.
14603
14604         * icall.c (ves_icall_get_enum_info): Update after changes to 
14605         mono_metadata_get_constant_index ().
14606
14607         * icall.c: Get rid of get_type_info icall, use a separate icall for
14608         each type property to avoid needless memory allocations. Fixes #51514.
14609
14610         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
14611         to avoid needless binary searches.
14612
14613         * class.c (class_compute_field_layout): Move the initialization of
14614         field->def_value to mono_class_vtable ().
14615
14616         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
14617         non-corlib types.
14618
14619         * object.c (mono_object_allocate): Make it inline.
14620
14621         * object.c (mono_object_allocate_spec): Make it inline.
14622         
14623 2003-12-02  Dick Porter  <dick@ximian.com>
14624
14625         * locales.c (create_NumberFormat): NumberFormatInfo construction.
14626         Patch by Mohammad DAMT (mdamt@cdl2000.com).
14627
14628 2003-12-01  Dick Porter  <dick@ximian.com>
14629
14630         * threads.c: Fix signature and call in CreateMutex and
14631         CreateEvent.
14632
14633 2003-12-01  Dick Porter  <dick@ximian.com>
14634
14635         * icall.c: 
14636         * locales.c: Implement string compares and searching
14637
14638         * object.h: Add extra Thread field
14639
14640 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
14641
14642         * reflection.c (fixup_method): Add support for MonoCMethod.
14643
14644 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
14645
14646         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
14647
14648         * reflection.c (assembly_name_to_aname): Allow extra characters in
14649         assembly names. Fixes #51468.
14650
14651 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
14652
14653         * exception.c (mono_exception_from_name_domain): New helper function.
14654
14655         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
14656         exception object in the correct domain.
14657
14658         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
14659         formatting + make a copy a the input data.
14660
14661         * loader.c (mono_get_method_from_token): Methods which contain
14662         native code do not have entries in the ImplMap.
14663
14664         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
14665         Thanks to Gonzalo for spotting this.
14666         
14667         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
14668         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
14669
14670         * assembly.h (mono_assembly_load_from): Split the second part of 
14671         assembly loading into a new public function.
14672
14673         * exception.h (mono_get_exception_bad_image_format): New function.
14674
14675 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
14676
14677         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14678         Enumerate all modules inside a dynamic assembly. Fixes #51293.
14679         
14680         * icall.c: Add new icall for creating dynamic methods.
14681
14682         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
14683
14684         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
14685
14686         * reflection.c (mono_reflection_create_dynamic_method): New icall to
14687         create a dynamic method.
14688
14689         * reflection.c (resolve_object): New helper function.
14690
14691         * reflection.c: Generalize ReflectionMethodBuilder and the functions
14692         which manipulate it so they can also work on dynamic methods.
14693
14694         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
14695         creating the MonoReflectionMethodAux structure if it is not needed.
14696         
14697         * reflection.h verify.c: Update after changes to object layout.
14698
14699         * reflection.c (method_builder_encode_signature): Fix compilation on
14700         gcc 2.95.x.
14701
14702 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
14703
14704         * appdomain.h: Added support for context static fields. Added static_data
14705           field to MonoAppContext and renamed thread_static_fields to a more
14706           generic special_static_fields in MonoAppDomain, since it can now contain
14707           context static fields.
14708         * domain.c: Updated hashtable name.
14709         * object.c: Replaced field_is_thread_static() for a more generic
14710           field_is_special_static() which also checks for context static attribute.
14711           In mono_class_vtable(), added support for static context fields.
14712         * threads.c: Changed methods that manage thread static fields to more
14713           generic methods so they can be reused both for thread and context static
14714           data.
14715         * threads.h: Declared some new methods.
14716
14717 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
14718
14719         * reflection.h: Update after changes to the managed types.
14720
14721         * reflection.c (encode_custom_modifiers): New helper function.
14722
14723         * reflection.c (method_encode_signature): Emit custom modifiers.
14724
14725         * reflection.c (field_encode_signature): Emit custom modifiers.
14726
14727 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
14728
14729         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
14730
14731         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
14732         implementation.
14733
14734         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
14735         icall.
14736
14737         * object.c (mono_field_get_value_object): New function.
14738
14739         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
14740         specific.
14741
14742 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
14743
14744         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
14745         return a preallocated out-of-memory exception instance.
14746
14747         * object.c (out_of_memory): Use the new function.
14748
14749         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
14750         flag is before the custom modifiers. Fixes #49802.
14751
14752 2003-11-16  Martin Baulig  <martin@ximian.com>
14753
14754         * class.c (mono_class_is_open_constructed_type): Implemented the
14755         MONO_TYPE_GENERICINST case.
14756
14757 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
14758
14759         * assembly.c (mono_assembly_fill_assembly_name): New function to
14760         fill out the MonoAssemblyName structure.
14761         (mono_assembly_open): Use the new function.
14762
14763         * icall.c (fill_reflection_assembly_name): New helper function.
14764
14765         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
14766         new function.
14767
14768         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
14769
14770 2003-11-15  Martin Baulig  <martin@ximian.com>
14771
14772         * class.c (mono_class_is_open_constructed_type): New public
14773         function; checks whether a type is an open constructed type,
14774         ie. whether it still contains type parameters.
14775         (mono_class_inflate_generic_type): If we're a type parameter and
14776         the inflated type is also a MONO_TYPE_(M)VAR, return the original
14777         type.
14778
14779         * class.h (MonoGenericInst): Added `guint32 is_open'.
14780
14781         * loader.c (method_from_methodspec): Check whether we're an open
14782         or closed constructed type and set `ginst->is_open'.
14783
14784         * reflection.c (mono_reflection_bind_generic_parameters): Check
14785         whether we're an open or closed constructed type and set
14786         `ginst->is_open'.
14787         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
14788         from open constructed types.
14789
14790 2003-11-15  Martin Baulig  <martin@ximian.com>
14791
14792         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14793         a generic instance (instead of a generic type declaration) with
14794         unbound generic parameters, bind them to our actual types.
14795
14796 2003-11-14  Martin Baulig  <martin@ximian.com>
14797
14798         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
14799
14800         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14801         an interface type, populate `res->interfaces' with instantiated
14802         versions of all the interfaces we inherit.
14803
14804 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
14805
14806         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
14807         when MONO_PATH is set but doesn't contain the install dir.
14808
14809 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14810
14811         * icall.c:
14812         (ves_icall_Type_GetInterfaces): don't return an interface twice when
14813         it's also implemented in base classes. Fixes bug #50927.
14814
14815 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
14816
14817         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
14818         if this method is called from a finalizer. Fixes #50913.
14819
14820 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
14821
14822         * threads.c: Implement VolatileRead/VolatileWrite
14823
14824         * icall.c: Add new icalls for VolatileRead/VolatileWrite
14825
14826 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14827
14828         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
14829         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
14830         2.95.3.
14831
14832         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
14833         from Peter Ross (pro@missioncriticalit.com).
14834         
14835 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
14836
14837         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
14838
14839 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14840
14841         * assembly.c (mono_assembly_load_references): Disable check because it
14842         triggers on older corlibs which lots of people have.
14843
14844 2003-11-12  Jackson Harper  <jackson@ximian.com>
14845
14846         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
14847         load corlib.dll if mscorlib.dll is not found.
14848         * assembly.h: Remove corlib name define.
14849         * class.c:
14850         * domain.c:
14851         * image.c: Change corlib name to mscorlib.
14852         
14853 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14854
14855         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
14856
14857 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
14858
14859         * appdomain.h: Added loader_optimization here to sync with the C#
14860         code, and add disallow_binding_redirects field.
14861
14862 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
14863
14864         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
14865
14866         * reflection.c (mono_image_build_metadata): Fix crash on modules
14867         with no types.
14868
14869         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
14870
14871         * icall.c (ves_icall_get_method_info): Return callingConvention as
14872         well.
14873
14874         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
14875         namespaces from the EXPORTEDTYPE table as well.
14876
14877         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
14878         from all modules inside the assembly.
14879         
14880 2003-11-11  Martin Baulig  <martin@ximian.com>
14881
14882         * reflection.c (mono_reflection_bind_generic_parameters): Make
14883         this work for interfaces.
14884
14885 2003-11-11  Martin Baulig  <martin@ximian.com>
14886
14887         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
14888
14889 2003-11-11  Martin Baulig  <martin@ximian.com>
14890
14891         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
14892         "MonoInflatedMethod" and "MonoInflatedCtor".
14893
14894 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
14895
14896         * reflection.c (resolution_scope_from_image): Use the assembly table
14897         from the manifest module, since other modules don't have it.
14898
14899         * debug-helpers.c (mono_type_full_name): New helper function.
14900
14901         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
14902
14903         * image.c (mono_image_load_file_for_image): New public function which
14904         is a replacement for the load_file_for_image in class.c.
14905
14906         * assembly.c (mono_assembly_load_module): A wrapper for the function
14907         above which does assembly association and reference loading too.
14908
14909         * class.c (mono_class_from_name): Call mono_assembly_load_module.
14910
14911 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14912
14913         * appdomain.c: not all of the attributes for the full assembly name
14914         are required and the order doesn't matter. Fixes bug #50787.
14915
14916 2003-11-10  Dick Porter  <dick@ximian.com>
14917
14918         * locales.c: Use platform-endian UTF16
14919
14920 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
14921
14922         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
14923         
14924 2003-11-10  Martin Baulig  <martin@ximian.com>
14925
14926         * metadata.c
14927         (mono_metadata_load_generic_params): Make this actually work.
14928
14929         * reflection.c (mono_reflection_bind_generic_parameters): If our
14930         parent is a generic instance, pass all the `types' to it, no
14931         matter whether it has the same number of type parameters or not.
14932
14933 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
14934
14935         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
14936
14937         * assembly.c (mono_assembly_load_references): Move the image<->assembly
14938         assignment code to this function so it gets called recursively for all
14939         modules.
14940
14941         * image.c (load_modules): Remove the assembly assignment since it is
14942         now done by mono_assembly_load_references.
14943         
14944         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14945         Add 'module' argument.
14946         (mono_module_get_types): New helper function.
14947         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
14948
14949 2003-11-08  Martin Baulig  <martin@ximian.com>
14950
14951         * class.c (mono_class_inflate_generic_method): Interface method
14952         don't have a header.
14953
14954         * reflection.c (mono_image_get_methodspec_token): Take an
14955         additional `MonoGenericInst *' argument instead of reading it from
14956         the header; this is necessary to support interfaces.
14957         (mono_image_create_token): Pass the `MonoGenericInst *' from the
14958         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
14959         (inflated_method_get_object): Take an additional `MonoGenericInst *'
14960         argument.
14961
14962         * reflection.h (MonoReflectionInflatedMethod): Added
14963         `MonoGenericInst *ginst'.
14964
14965 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
14966
14967         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
14968
14969 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
14970
14971         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
14972
14973 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
14974
14975         * reflection.c 
14976         (reflection_methodbuilder_from_method_builder):
14977         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
14978         initialize a ReflectionMethodBuilder structure.
14979         (mono_image_get_methodbuilder_token):
14980         (mono_image_get_ctorbuilder_token): New functions to emit memberref
14981         tokens which point to types in another module inside the same assembly.
14982
14983         * reflection.c: Use the new helper functions.
14984         
14985         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
14986
14987         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
14988         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
14989
14990         * reflection.c (resolution_scope_from_image): Emit a moduleref if
14991         neccesary.
14992
14993         * reflection.c (mono_image_build_metadata): Emit metadata only for the
14994         current module. Emit the manifest only for the main module.
14995
14996         * reflection.c (mono_image_create_token): Add assertion when a 
14997         memberref needs to be created.
14998
14999         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
15000
15001         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
15002         larger buffer for the custom attribute blob. Fixes #50637.
15003         
15004 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15005
15006         * threadpool.c: notify listener on async processing handles after
15007         invoking the async callback. Thanks to Zoltan.
15008
15009 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15010
15011         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
15012         avoid code duplication.
15013
15014         * reflection.h (MonoDynamicImage): New type which is currently unused,
15015         but will be used through the ref.emit code in place of 
15016         MonoDynamicAssembly.
15017
15018         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15019         object layout.
15020
15021         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
15022         a MonoDynamicImage instead of just a MonoImage.
15023         
15024         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
15025         icalls to ModuleBuilder but keep their semantics, so they will work
15026         with moduleb->assemblyb. This will change later.
15027         
15028 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15029
15030         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15031         object layout.
15032
15033         * reflection.c (mono_image_build_metadata): Avoid creation of a default
15034         main module, since it is now done by the managed code.
15035
15036 2003-11-03  Martin Baulig  <martin@ximian.com>
15037
15038         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
15039         `ginst->klass' here.
15040         (method_encode_methodspec): Don't use the `ginst->generic_method's
15041         klass if it's a generic instance, use `ginst->klass' in this case.
15042
15043 2003-11-03  Martin Baulig  <martin@ximian.com>
15044
15045         * reflection.c (mono_image_get_generic_method_param_info):
15046         Removed, use mono_image_get_generic_param_info() instead.
15047         (mono_image_get_type_info): Write the GenericParam table before
15048         the Method table.  This is neccessary because in the GenericParam
15049         table, type parameters of the class (ie. '!0' etc.) must come
15050         before the ones from its generic methods (ie. '!!0' etc).
15051
15052 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15053
15054         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
15055
15056 2003-11-02  Martin Baulig  <martin@ximian.com>
15057
15058         * reflection.c (create_generic_typespec): Take a
15059         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
15060         the generic parameters from it.
15061
15062 2003-11-02  Martin Baulig  <martin@ximian.com>
15063
15064         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
15065         instead of a `MonoClassField *' since we just need the type.
15066         (create_generic_typespec): New static function.  Creates a
15067         TypeSpec token for a generic type declaration.
15068         (mono_image_get_generic_field_token): New static function.
15069         (mono_image_create_token): If we're a FieldBuilder in a generic
15070         type declaration, call mono_image_get_generic_field_token() to get
15071         the token.
15072
15073 2003-11-02  Martin Baulig  <martin@ximian.com>
15074
15075         * reflection.h
15076         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
15077         `MonoReflectionGenericInst *declaring_type' and
15078         `MonoReflectionGenericInst *reflected_type' fields.
15079
15080         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
15081         `MonoReflectionGenericInst *declaring_type' and a
15082         `MonoReflectionGenericInst *reflected_type' argument instead of a
15083         single `MonoReflectionGenericInst *type' one.  Set
15084         `res->declaring_type' and `res->reflected_type' from them.
15085         (mono_reflection_inflate_field): Likewise.      
15086
15087 2003-11-02  Martin Baulig  <martin@ximian.com>
15088
15089         * class.c (mono_class_setup_vtable): Don't store generic methods
15090         in the vtable.  
15091
15092 2003-11-02  Martin Baulig  <martin@ximian.com>
15093
15094         * reflection.h (MonoReflectionGenericInst): Added
15095         `MonoReflectionType *declaring_type'.
15096
15097         * reflection.c (mono_reflection_bind_generic_parameters): Use
15098         `if (tb->parent)' instead of `klass->parent'.
15099
15100 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
15101
15102         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
15103         with an empty ASSEMBLY table.
15104
15105         * reflection.c (mono_image_build_metadata): Avoid using the same loop
15106         variable in the inner and outer loops.
15107
15108 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15109
15110         * metadata.h (mono_metadata_make_token): Put parentheses around macro
15111         argument.
15112
15113         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
15114         
15115         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
15116         icalls. Instead, do everything in managed code. This is needed since
15117         it is hard to restore the original domain etc. in unmanaged code in the
15118         presence of undeniable exceptions.
15119
15120         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
15121         New icalls to push and pop appdomain refs.
15122
15123 2003-10-31  Martin Baulig  <martin@ximian.com>
15124
15125         * class.c (inflate_generic_type): Renamed to
15126         mono_class_inflate_generic_type() and made it public.
15127
15128         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
15129         New interncall.
15130
15131         * loader.c (mono_field_from_memberref): Also set the retklass for
15132         typespecs.
15133
15134         * fielder.c (mono_image_get_inflated_field_token): New static
15135         method; creates a metadata token for an inflated field.
15136         (mono_image_create_token, fixup_method): Added support for
15137         "MonoInflatedField".
15138         (fieldbuilder_to_mono_class_field): New static function.
15139         (mono_reflection_inflate_field): New public function.
15140
15141         * reflection.h
15142         (MonoReflectionGenericInst): Added `MonoArray *fields'.
15143         (MonoReflectionInflatedField): New typedef.     
15144
15145 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
15146
15147         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
15148         for Solaris and other platforms without s6_addr16
15149
15150 2003-10-30  Martin Baulig  <martin@ximian.com>
15151
15152         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
15153         argument instead of two.
15154         (mono_class_inflate_generic_signature): Likewise.
15155         (inflate_generic_header): Likewise.
15156         (mono_class_inflate_generic_method): Likewise.  In addition, if
15157         `ginst->klass' is set, it becomes the new `method->klass'.
15158
15159         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
15160         field.
15161
15162         * reflection.c (encode_generic_method_sig): Write a 0xa as the
15163         first byte. [FIXME]
15164         (method_encode_methodspec): If we have generic parameters, create
15165         a MethodSpec instead of a MethodRef.
15166         (fixup_method): Added support for "MonoInflatedMethod" and
15167         "MonoInflatedCtor".
15168         (mono_image_create_token): Added support for "MonoInflatedMethod"
15169         and "MonoInflatedCtor".
15170         (inflated_method_get_object): New static function; returns a
15171         managed "System.Reflection.MonoInflatedMethod" object.
15172         (mono_reflection_bind_generic_method_parameters): Return a
15173         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
15174         (mono_reflection_inflate_method_or_ctor): Likewise.
15175         (mono_image_get_generic_method_param_info): Initialize unused
15176         fields to zero.
15177         (mono_image_get_generic_param_info): Likewise.
15178
15179         * reflection.h (MonoReflectionInflatedMethod): New public
15180         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
15181         "S.R.MonoInflatedCtor" classes.
15182
15183         * loader.c (method_from_memberref): If we're a TypeSpec and it
15184         resolves to a generic instance, inflate the method.
15185
15186 2003-10-28  Dick Porter  <dick@ximian.com>
15187
15188         * object.c (mono_runtime_run_main): Convert command-line arguments
15189         into utf8, falling back to the user's locale encoding to do so.
15190
15191 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
15192
15193         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
15194         at this time.
15195
15196         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
15197
15198         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
15199         up icalls at method definition time. Partially fixes #33569.
15200
15201 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
15202
15203         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
15204         marshalling of arrays. Fixes #50116.
15205
15206         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15207
15208         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15209         points to a vtable in the dying appdomain.
15210
15211         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15212         listeners into unmanaged code inside the lock.
15213
15214         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15215         domains and add some comments.
15216
15217 2003-10-25  Martin Baulig  <martin@ximian.com>
15218
15219         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15220
15221         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15222
15223         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15224         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15225         currently parsing.  Create the generic class and store it in
15226         `generic_inst->klass' before parsing the type arguments.  This is
15227         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15228         for an example.
15229         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15230         to support recursive typespec entries.
15231
15232         * class.c (mono_class_setup_parent): If our parent is a generic
15233         instance, we may get called before it has its name set.
15234         (mono_class_from_generic): Splitted into
15235         mono_class_create_from_generic() and mono_class_initialize_generic().
15236
15237 2003-10-25  Martin Baulig  <martin@ximian.com>
15238
15239         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15240         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15241         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15242         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15243
15244         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15245         (create_typespec): Likewise.
15246         (mono_reflection_bind_generic_parameters): Return a
15247         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15248         (mono_reflection_inflate_method_or_ctor): New public function.
15249
15250         * reflection.h (MonoReflectionGenericInst): New typedef.        
15251
15252 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15253
15254         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15255         inside the domain lock. Fixes #49993.
15256         
15257         * object.c (mono_class_vtable): When typed allocation is used, 
15258         allocate vtables in the GC heap instead of in the mempool, since the
15259         vtables contain GC descriptors which are used by the collector even
15260         after the domain owning the mempool is unloaded.
15261
15262         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15263
15264         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15265         reflect what it does. Also invalidate mempools instead of freeing
15266         them if a define is set.
15267
15268         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15269         of the appdomain.
15270         
15271         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15272         hold the finalizable objects in this domain.
15273
15274         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15275         appdomain.
15276
15277         * appdomain.c (mono_domain_set): New function to set the current
15278         appdomain, but only if it is not being unloaded.
15279
15280         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15281         appdomain which is being unloaded.
15282         
15283         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15284         unloading of the root appdomain.
15285
15286         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15287         icall to execute a method in another appdomain. Intended as a 
15288         replacement for InternalSetDomain, which can confuse the code 
15289         generation in the JIT.
15290
15291         * appdomain.c (mono_domain_is_unloading): New function to determine
15292         whenever an appdomain is unloading.
15293
15294         * appdomain.c (mono_domain_unload): New function to correctly unload
15295         an appdomain.
15296
15297         * assembly.c (mono_assembly_load_references): Check that an assembly
15298         does not references itself.
15299
15300         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15301         domain manually, it asks the finalizer thread to do it, then waits for
15302         the result. Also added a timeout.
15303
15304         * icall.c: Register the new icalls.
15305
15306         * threads.h threads.c: Export the mono_gc_stop_world and 
15307         mono_gc_start_world functions.
15308         
15309         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15310         function to fill out the mempool with 0x2a.
15311
15312 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15313
15314         * reflection.h (MonoReflectionMethodAux): New structure to store
15315         information which is rarely used, thus is not in the MonoMethod
15316         structure.
15317
15318         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15319         store the aux info.
15320
15321         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15322         and marshalling info into the aux structure.
15323
15324         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15325         from the aux structure.
15326
15327         * loader.c (mono_method_get_param_names): Retrieve the param names from
15328         the aux structure.
15329         
15330 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15331
15332         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15333         warning.
15334
15335 2003-10-21  Dick Porter  <dick@ximian.com>
15336
15337         * socket-io.c
15338         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
15339         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
15340
15341 2003-10-21  Martin Baulig  <martin@ximian.com>
15342
15343         * reflection.c (mono_reflection_bind_generic_parameters):
15344         `klass->parent' is NULL for interfaces.
15345
15346 2003-10-21  Martin Baulig  <martin@ximian.com>
15347
15348         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15349
15350 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15351
15352         * exception.c (mono_exception_from_name_msg): New helper function for
15353         creating exceptions and initializing their message field.
15354
15355         * exception.c: Simplify functions using the new helper.
15356
15357         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15358         New function.
15359
15360         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15361         mono_raise_exception, since otherwise gcc doesn't generate the function
15362         epilog for raise_exception, confusing the stack unwinding in the JIT.
15363         Fixes #45043.
15364
15365         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15366         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15367         Fixes #49499.
15368
15369 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15370
15371         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15372         utf8.
15373
15374 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15375
15376         * icall.c: Removed GetUninitializedObject method because
15377           AllocateUninitializedClassInstance does the same.
15378
15379 2003-10-18  Martin Baulig  <martin@ximian.com>
15380
15381         * class.c (inflate_generic_signature): Renamed to
15382         mono_class_inflate_generic_signature() and made it public.
15383         (my_mono_class_from_generic_parameter): New static function; if we
15384         don't already have the generic parameter's MonoClass, create a
15385         very simple one which is just used internally in the runtime and
15386         not passed back to managed code.
15387
15388         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15389
15390         * metadata.h (MonoMethodSignature): Moved the
15391         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15392         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15393
15394         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15395         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15396         interncall on the MonoMethod class, not on MethodInfo.
15397         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15398         calling mono_reflection_bind_generic_method_parameters() directly.
15399
15400         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15401         return the already computed `method->signature'.
15402         (method_from_methodspec): New static function to load a method
15403         from a MethodSpec entry.
15404         (mono_get_method_from_token): Call the new method_from_methodspec()
15405         for MethodSpec tokens.  
15406         (mono_get_method_from_token): If we're a generic method, load the
15407         type parameters.
15408
15409         * reflection.c (mono_image_get_memberref_token): Allow
15410         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15411         table.
15412         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15413         (mono_image_create_token): First check whether it's a generic
15414         method (so we'd need to create a MethodSpec), then do the other
15415         two alternatives.
15416         (mono_reflection_bind_generic_method_parameters): Return a
15417         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15418         called directly from the interncall.
15419
15420 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15421
15422         * reflection.c (load_public_key): Move loading of the public key
15423         into managed code.
15424
15425         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15426
15427         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15428         fields.
15429
15430         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15431         culture, hash_alg and public_key. Fixes #49555.
15432
15433 2003-10-17  Martin Baulig  <martin@ximian.com>
15434
15435         * class.h (MonoGenericInst): Moved this declaration here and added
15436         `MonoMethod *generic_method'.
15437
15438         * icall.c
15439         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15440         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15441
15442         * metadata.c (mono_metadata_type_equal): Two types of
15443         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15444         index; ie. don't compare the address of the `MonoGenericParam'
15445         structure.
15446         (mono_metadata_load_generic_params): Removed the `MonoMethod
15447         *method' argument.
15448
15449         * metadata.h (MonoGenericInst): Moved declaration to class.h.
15450         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
15451
15452         * reflection.c (method_encode_signature): Encode the number of
15453         generic parameters.
15454         (encode_generic_method_sig): New static function.
15455         (method_encode_methodspec): New static function; creates an entry
15456         in the MethodSpec table for a generic method.
15457         (mono_image_get_methodspec_token): New static function.
15458         (mono_image_create_token): Call mono_image_get_methodspec_token()
15459         for generic methods.
15460         (mono_reflection_bind_generic_method_parameters): New public
15461         function.  Instantiates a generic method.
15462
15463 2003-10-16  Martin Baulig  <martin@ximian.com>
15464
15465         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
15466         *gen_params' here from MonoMethodHeader.
15467
15468         * metadata.c (mono_metadata_parse_method_signature): If we have
15469         generic parameters, initialize `method->gen_params' and then set
15470         the correct `type->data.generic_param' in all the parameters.
15471
15472 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
15473
15474         * threads.c (mono_threads_get_default_stacksize): New function to 
15475         return the default stacksize.
15476
15477         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
15478         termination of the finalizer thread, since the previous method had
15479         race conditions. Fixes #49628.
15480
15481         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
15482         as for the other managed threads.
15483
15484 2003-10-16  Martin Baulig  <martin@ximian.com>
15485
15486         * class.c (inflate_generic_signature): Copy `generic_param_count'
15487         and `gen_params'.
15488
15489         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
15490         New interncall.
15491
15492         * metadata.c (mono_metadata_parse_method_signature): Actually set
15493         the `method->generic_param_count' here.
15494         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
15495
15496 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
15497
15498         * object.h: Add a new field to TypedRef to simplify the implementation
15499         of the REFANY opcodes in the JIT.
15500
15501         * icall.c: Make use of the new field.
15502
15503         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
15504         dynamically.
15505
15506 2003-10-15  Martin Baulig  <martin@ximian.com>
15507
15508         * class.c (mono_class_from_gen_param): Renamed to
15509         mono_class_from_generic_parameter() and moved most of the
15510         functionality from mono_reflection_define_generic_parameter()
15511         here; ie. we create a "real" class here.
15512         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
15513         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
15514         previously been called.
15515
15516         * class.h (MonoGenericParam): Moved the declaration of this struct
15517         here from metadata.h and added `MonoMethod *method'.
15518
15519         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
15520         interncall.
15521
15522         * loader.c (mono_get_method_from_token): If we have any generic
15523         parameters, call mono_metadata_load_generic_params() to read them
15524         from the MONO_TABLE_GENERICPAR.
15525
15526         * metadata.c (mono_metadata_load_generic_params): Added
15527         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
15528
15529         * metadata.h (MonoMethodSignature): Replaced
15530         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
15531         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
15532
15533         * reflection.c (mono_reflection_define_generic_parameter): Moved
15534         most of the functionality into the new
15535         mono_class_from_generic_parameter(); set the `method' field if
15536         we're a method parameter.       
15537
15538 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
15539
15540         * marshal.c (emit_struct_conv): if native size is 0
15541         emit no code.
15542
15543 2003-10-14  Martin Baulig  <martin@ximian.com>
15544
15545         * icall.c: The generics API has changed in the spec since it was
15546         added to System.Type; these modifications make it match the spec
15547         again.
15548         (ves_icall_Type_GetGenericParameters): Renamed to
15549         `ves_icall_Type_GetGenericArguments'.
15550         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
15551         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
15552         `ves_icall_MonoType_get_HasGenericArguments'.
15553         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
15554         `ves_icall_MonoType_get_IsGenericParameter'.
15555         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
15556         this is no interncall anymore.
15557         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
15558         `ves_icall_TypeBuilder_get_IsGenericParameter'.
15559
15560 2003-10-14  Martin Baulig  <martin@ximian.com>
15561
15562         * reflection.c (mono_reflection_bind_generic_parameters): Also
15563         inflate generic methods if we're reading the class from IL.
15564
15565 2003-10-13  Martin Baulig  <martin@ximian.com>
15566
15567         * reflection.c (mono_reflection_define_generic_parameter): This
15568         method isn't called directly from the icall anymore; take a
15569         `MonoReflectionAssemblyBuilder *' so we can use this for type and
15570         method generic parameters.
15571         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
15572         (method_builder_encode_signature): Encode generic parameters.
15573         (mono_image_get_method_info): Write generic params to the
15574         MONO_TABLE_GENERICPARAM table.
15575
15576         * reflection.h (MonoReflectionMethodBuilder): Added
15577         `MonoArray *generic_params'.
15578
15579         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
15580
15581         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
15582         wrapper for mono_reflection_define_generic_parameter().
15583         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
15584
15585 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
15586
15587         * marshal.h: Add missing function to fix build.
15588
15589         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
15590         the SetLastError pinvoke attribute.
15591
15592         * marshal.c (mono_marshal_set_last_error): New helper function called
15593         by the generated code.
15594         
15595         * marshal.c (mono_mb_emit_branch): New helper function.
15596
15597         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
15598
15599         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15600         classes as parameters and return values of delegates. Fixes #29256. 
15601
15602 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
15603
15604         * locales.c: use gint32 in non HAVE_ICU case
15605
15606 2003-10-11  Martin Baulig  <martin@ximian.com>
15607
15608         * mono-debug.c (mono_debug_add_method): Added a workaround for
15609         bug #48591.
15610
15611 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
15612
15613         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
15614         delegates passed to native code must use the STDCALL calling 
15615         convention. Fixes #35987.
15616
15617 2003-10-10  Martin Baulig  <martin@ximian.com>
15618
15619         * class.c (inflate_generic_type): If we're inflating for a generic
15620         type instance (and not for a generic method), return
15621         MONO_TYPE_MVAR unchanged.
15622
15623 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15624
15625         * string-icalls.c: Join ignores null strings in the source array.
15626         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
15627         * threads.c: GetAvailableTheads is slightly more accurate.
15628
15629 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
15630
15631         * threads.h threads.c : add mono_threads_set_default_stacksize
15632         and pass default to CreateThread calls.
15633
15634 2003-10-09  Dick Porter  <dick@ximian.com>
15635
15636         * icall.c:
15637         * locales.h:
15638         * locales.c: Internal calls for constructing CultureInfo and
15639         related objects from libicu (if its available.)
15640
15641 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
15642
15643         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
15644
15645 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15646
15647         * threadpool.c: added an argument to async_invoke_thread that is the
15648         item to process, pass the MonoAsyncResult to the thread start function
15649         when creating a new thread. This way we don't need to acquire any lock
15650         when we're creating a new thread. Readded a semaphore for faster
15651         response times (instead of that Sleep i added).
15652
15653 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
15654
15655         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
15656         get daylight change dates better on Windows, fix handling
15657         of platforms without tm_gmtoff.
15658
15659 2003-10-06  Martin Baulig  <martin@ximian.com>
15660
15661         * class.c (inflate_generic_method): Renamed to
15662         mono_class_inflate_generic_method() and made public.
15663         (mono_class_init): Don't inflate the generic methods here.
15664         (mono_class_from_generic): Added `gboolean inflate_methods'
15665         argument.  Inflate the methods here.
15666
15667         * loader.c (mono_method_get_param_names): Ignore instances of
15668         generic types for the moment.
15669
15670         * reflection.c (fixup_method): Added support for inflated methods.
15671         (mono_image_create_token): Use mono_image_get_methodref_token()
15672         for inflated methods.
15673         (mono_custom_attrs_from_param): Ignore instances of generic types
15674         for the moment.
15675         (mono_reflection_bind_generic_parameters): New public function.
15676         Moved all the functionality from
15677         ves_icall_Type_BindGenericParameters() here and added support for
15678         dynamic types.
15679         (mono_reflection_define_generic_parameter): Initialize
15680         `klass->methods' here.
15681
15682         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
15683         functionality into mono_reflection_define_generic_parameter().
15684         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
15685         TypeBuilder, return that TypeBuilder.
15686
15687 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15688
15689         * appdomain.c: removed mono_delegate_semaphore.
15690
15691         * threadpool.c:
15692         (mono_thread_pool_add): moved hash table creation inside and the thread 
15693         creation outside of the critical region.
15694         (mono_thread_pool_finish): removed obsolete code.
15695         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
15696         continue or exit the thread depending on the queue.
15697
15698 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
15699
15700         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
15701         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
15702         handle more bool marshalling options
15703
15704 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
15705
15706         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
15707         arrays of structs. Also add a more descriptive error message when
15708         a structure member is marshalled as LPArray.
15709
15710 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
15711
15712         * marshal.c (mono_marshal_get_native_wrapper): Add support for
15713         marshalling arrays of complex types. Fixes #29098. Also remove an
15714         usused and incomplete function.
15715
15716 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
15717
15718         * gc.c: report heap_size - free_bytes as total memory allocated
15719         (bug#49362).
15720
15721 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
15722
15723         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
15724         fix timezone handling problems on Windows.
15725         
15726         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
15727         asserts when the year is outside the range handled by ms the functions.
15728
15729         * class.c (setup_interface_offsets): If the class is an interface,
15730         fill out its interface_offsets slot.
15731
15732 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15733
15734         * threadpool.c: mark threadpool threads as background.
15735
15736 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
15737
15738         * decimal.c - define DECINLINE to nothing if not using GCC
15739
15740 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
15741
15742         * assembly.c: More refcount fixes.
15743
15744 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15745
15746         * string-icalls.c: if we're not trimming, return the same string.
15747         When not splitting, don't create a new string.
15748
15749 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15750
15751         * image.c:
15752         (mono_image_open): increment the ref_count inside the critical section.
15753
15754 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
15755
15756         * image.c (mono_image_open): Fix reference counting bug.
15757
15758 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
15759
15760         * marshal.c (mono_marshal_type_size) struct alignment changed for 
15761         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
15762         64bits. Avoid leak in mono_marshal_get_native_wrapper when
15763         mono_lookup_pinvoke_call throws.        
15764
15765 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
15766
15767         * reflection.c (mono_reflection_parse_type): Fix #49114.
15768
15769         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
15770         temporary workaround for cygwin header problem.
15771
15772         * object.c (mono_object_isinst): Synchronize this with the code
15773         generated by the JIT for casts.
15774
15775 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
15776
15777         * reflection.c (encode_type): Fix #38332.
15778
15779 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
15780
15781         * marshal.c (mono_marshal_method_from_wrapper): New function to return
15782         the original method from the wrapper method.
15783
15784 2003-09-25  Martin Baulig  <martin@ximian.com>
15785
15786         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
15787         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
15788         (ves_icall_Type_get_IsGenericInstance): New interncall.
15789
15790 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
15791
15792         * object.c: fix cast warning in big endian code.
15793
15794 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
15795
15796         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
15797         
15798 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15799
15800         * assembly.c: don't call check_env from mono_assembly_load. It's
15801         already done once in mono_assemblies_init and may cause headaches when
15802         multiple threads are loading assemblies.
15803
15804 2003-09-19  Martin Baulig  <martin@ximian.com>
15805
15806         * reflection.c (mono_reflection_define_generic_parameter): Don't
15807         allocate `klass->methods', set `klass->flags' to
15808         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
15809
15810 2003-09-18  Martin Baulig  <martin@ximian.com>
15811
15812         * class.c (mono_class_init): Don't create `class->methods' if it's
15813         already initialized.
15814
15815         * metadata.c (mono_metadata_load_generic_params): Make this
15816         actually work.
15817
15818         * reflection.c (mono_reflection_define_generic_parameter): Set
15819         parent class and interfaces from the constraints.
15820
15821         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
15822         to keep this struct in sync with the declaration in TypeBuilder.cs.
15823
15824 2003-09-17  Martin Baulig  <martin@ximian.com>
15825
15826         * metadata.h (MonoType): Replaced the data's `int type_param'
15827         field with `MonoGenericParam *generic_param'.
15828         (MonoGenericParam): Added `MonoClass *klass'.
15829
15830         * class.c (mono_class_from_gen_param): Removed the
15831         `MonoImage *image' and `int type_num' arguments.
15832
15833         * metadata.c (mono_metadata_parse_generic_param): New static
15834         method; creates a MonoGenericParam which just contains the index.
15835         (do_mono_metadata_parse_type): Call
15836         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
15837         MONO_TYPE_MVAR.
15838
15839         * reflection.c (mono_image_typedef_or_ref): Generic type
15840         parameters may be in the same assembly, but never use a typedef
15841         for them.
15842         (mono_reflection_define_generic_parameter): We're now creating a
15843         "real" class for the type parameter; it's now safe to call
15844         mono_class_from_mono_type() on the class'es type, it'll do the
15845         right thing.
15846
15847 2003-09-16  Martin Baulig  <martin@ximian.com>
15848
15849         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
15850         `symfile->range_entry_size' and `symfile->class_entry_size' here;
15851         the `symfile' data structure must be fully initialized before it
15852         gets added to the table.
15853
15854 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
15855
15856         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
15857
15858         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
15859         class init trampolines.
15860
15861 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
15862
15863         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
15864         to the built-in profiler to turn off time and allocation profiling
15865         respectively.
15866
15867 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
15868
15869         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
15870         g_direct_equal.
15871
15872         * debug-helpers.c (mono_method_full_name): Print the wrapper type
15873         in human readable form.
15874
15875 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
15876
15877         * reflection.c icall.c: Fixed warnings.
15878
15879         * image.c (load_class_names): Use a temporary hash table to hold the
15880         namespaces in order to avoid doing many string comparisons.
15881
15882         * image.h: Fix typo.
15883
15884         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
15885         Pass NULL instead of g_direct_equal to the GHashTable constructor 
15886         since the NULL case is short-circuited inside g_hash_table_lookup, 
15887         leading to better performance.  
15888
15889         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
15890         obtain the first custom attribute for a given index. Depends on the
15891         CustomAttribute table being sorted by the parent field.
15892
15893         * reflection.c (mono_custom_attrs_from_index): Use the new function 
15894         for better performance.
15895
15896 2003-09-07  Martin Baulig  <martin@ximian.com>
15897
15898         * class.c (mono_class_init): If we're a generic instance, inflate
15899         all our methods instead of loading them from the image.
15900         (mono_class_from_generic): Set `class->methods = gklass->methods'.
15901
15902 2003-09-07  Martin Baulig  <martin@ximian.com>
15903
15904         * mono-debug-debugger.c: Added support for constructors.
15905
15906 2003-09-06  Martin Baulig  <martin@ximian.com>
15907
15908         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
15909         New interncall.
15910
15911         * reflection.c (mono_reflection_setup_generic_class): Call
15912         ensure_runtime_vtable() to create the vtable.
15913
15914 2003-09-05  Martin Baulig  <martin@ximian.com>
15915
15916         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
15917         MONO_TYPE_MVAR.
15918
15919 2003-09-04  Martin Baulig  <martin@ximian.com>
15920
15921         * reflection.c (mono_reflection_define_generic_parameter): Generic
15922         parameters start with zero.
15923
15924 2003-09-04  Martin Baulig  <martin@ximian.com>
15925
15926         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15927
15928         * reflection.h (MonoReflectionGenericParam): New typedef.
15929         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
15930         the generic parameters from the managed TypeBuilder.
15931
15932         * reflection.c (mono_reflection_define_generic_parameter): New function.
15933         (mono_reflection_create_runtime_class): Encode generic parameters.
15934         (mono_reflection_setup_generic_class): New function; this is
15935         called after adding adding all generic params to the TypeBuilder.
15936         (encode_type): Added MONO_TYPE_VAR.
15937
15938 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
15939
15940         * class.h class.c (mono_class_needs_cctor_run): Moved this method
15941         here from the JIT.
15942
15943         * assembly.h assembly.c: Moved the AOT loading code into an assembly
15944         load hook.
15945
15946 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
15947
15948         * reflection.h reflection.c class.h class.c: Delete duplicate 
15949         definition of mono_type_get_name () from reflection.c and export the
15950         one in class.c.
15951
15952         * class.c: Class loading fixes from Bernie Solomon 
15953         (bernard@ugsolutions.com).
15954
15955         * reflection.c: Endianness fixes from Bernie Solomon 
15956         (bernard@ugsolutions.com).
15957         
15958 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
15959
15960         * assembly.h assembly.c: Define a file format version for AOT
15961         libraries.
15962         
15963         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
15964
15965         * appdomain.h (MonoJitInfo): New field to determine whenever the
15966         code is domain neutral.
15967         
15968 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
15969
15970         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
15971
15972 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
15973
15974         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
15975         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
15976         Avoid caching the result since strings must be domain specific. Fixes
15977         #48050.
15978
15979 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
15980
15981         * marshal.c (mono_marshal_init): Make this callable multiple times
15982         since it is hard to find a correct place to call it.
15983
15984         * object.c (mono_runtime_class_init): Execute static constructors in
15985         the correct appdomain.
15986
15987         * image.c (build_guid_table): Handle the case when multiple images have
15988         the same GUID.
15989
15990 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15991
15992         * icall.c: added a couple of icalls for System.Web.
15993
15994 2003-08-28  Martin Baulig  <martin@ximian.com>
15995
15996         * icall.c (ves_icall_Type_BindGenericParameters): Use
15997         `klass->generic_inst' instead of `&klass->byval_arg' in the
15998         mono_type_get_object() call.  The returned type must be
15999         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
16000
16001 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
16002
16003         * NOTES: New file.
16004
16005         * object.c (mono_class_proxy_vtable): Make it thread safe.
16006
16007         * pedump.c: Fix warning.
16008
16009         * object.c appdomain.h: Get rid of metadata_section. 
16010         It is no longer needed and it was causing deadlocks with domain->lock.
16011
16012         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
16013
16014 2003-08-26  Martin Baulig  <martin@ximian.com>
16015
16016         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
16017
16018 2003-08-26  Martin Baulig  <martin@ximian.com>
16019
16020         * pedump.c (main): Call mono_metadata_init(),
16021         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
16022         and mono_loader_init().
16023
16024 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
16025
16026         * loader.h: Add missing include to fix build.
16027
16028         * image.h: mono_image_load_references is no more.
16029
16030         * assembly.c: Reworked assembly loading to make it really thread safe.
16031         After these changes, the assembly returned by mono_assembly_open is
16032         fully initialized, i.e. all its references assemblies are loaded.
16033
16034         * assembly.c (mono_image_load_references): Renamed to 
16035         mono_assembly_load_references, and made private, since clients no
16036         longer need to call it.
16037
16038         * class.c: Removed calls to mono_assembly_load_references, since it was
16039         a source of deadlocks.
16040
16041         * loader.h loader.c class.h class.c: Protect data structures using a 
16042         new lock, the loader lock.
16043
16044         * class.c (mono_class_setup_vtable): Create temporary hash tables and
16045         GPtrArrays only when needed.
16046
16047         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
16048         into empty structures by mcs. Fixes pinvoke7.cs.
16049         
16050         * domain.c (mono_init): Call a new initialization function.
16051
16052         * appdomain.c (mono_runtime_init): Call the new initializer function
16053         of the marshal module.
16054
16055         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
16056         inserted into empty structures by mcs. Fixes pinvoke7.cs.
16057
16058         * marshal.h marshal.c: Added locks around the wrapper caches to make
16059         this module thread safe.
16060
16061         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
16062         this argument. Fixes pinvoke1.exe.
16063
16064 2003-08-25  Lluis Sanchez <lluis@ximian.com>
16065
16066         * object.h: Added call_type field to MonoMethodMessage and the corresponding
16067         enumeration of values. Removed fields to store remote call output values in
16068         MonoAsyncResult. Not needed any more.
16069         * object.c: Initialize call_type and async_result fields in mono_message_init.
16070         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
16071         dispatching the message.
16072         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
16073         async call to finish. To do it use a message with EndInvoke call type.
16074
16075 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
16076
16077         * loader.h loader.c (mono_method_hash_marhal_info): New function which
16078         determines whenever a method has marshalling info.
16079
16080 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16081
16082         * assembly.c: fix the build on windows.
16083
16084 2003-08-22 Lluis Sanchez <lluis@ximian.com>
16085
16086         * object.cs: Fixed bug #47785.
16087
16088 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
16089
16090         * string-icalls.c (StringReplace): If their are no occurances of
16091         the old string found return a reference to the supplied
16092         string. This saves some memory and matches MS behavoir.
16093         
16094 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16095
16096         * socket-io.c: fixed compilation for systems that define AF_INET6
16097         and don't define SOL_IP/SOL_IPV6.
16098
16099 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
16100
16101         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
16102         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
16103
16104         * rawbuffer.c rawbuffer.h: Make this module thread safe.
16105
16106         * domain.c: Make this module thread safe.
16107
16108         * domain.c (mono_init): Call new initialization function.
16109
16110         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
16111         reference types too. Fixes #38812.
16112
16113         * image.c (mono_image_init): Fixed warnings.
16114
16115         * class.c (mono_class_from_typeref): Handle assembly load failure
16116         correctly.
16117
16118         * appdomain.c (add_assemblies_to_domain): Handle the case when
16119         the references of an assembly are not yet loaded.
16120
16121         * metadata.c image.c assembly.c: Moved initialization of global
16122         variables to a separate function called at startup since lazy 
16123         initialization of these variables is not thread safe.
16124         
16125         * image.c assembly.c: Made this module thread safe by adding locks in 
16126         the appropriate places.
16127
16128         * domain.c (mono_init): Call the new initialization functions of the
16129         three modules.
16130
16131 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
16132
16133         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
16134           make a direct call. It is proxy's work to make the call asynchronous.
16135           mono_delegate_end_invoke(): If the targe is a proxy, just collect
16136           the return values.
16137         * object.cs: mono_method_call_message_new(): read AsyncResult and
16138           state object from parameters list, if this info is requested.
16139         * object.h: Added fields to store remote call output values in
16140           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
16141
16142 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16143
16144         * object.h: add needed fields to MonoThread.
16145         * threads.c, threads.h: allow registering a function to cleanup data
16146         allocated per thread by the JIT.
16147
16148 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16149
16150         * loader.h: portability fix by Bernie Solomon
16151         * <bernard@ugsolutions.com>.
16152
16153 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
16154
16155         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
16156         return a MonoArray. This simplifies the code and also ensures that
16157         the cache allways contains an object reference as a value.
16158
16159         * icall.c (ves_icall_get_parameter_info): Simplified using the new
16160         function.
16161
16162 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16163
16164         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
16165         fixes a problem with byte ordering when getting the address family for
16166         a socket.
16167
16168 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
16169
16170         * .cvsignore: Added monosn.
16171
16172         * reflection.h reflection.c loader.c: Added support for parameter
16173         marshalling to dynamically created types. Fixes #47295.
16174
16175 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
16176
16177         * rand.c: remove useless warnings.
16178
16179 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16180
16181         * class.c: implemented ldtoken for methods and fieldrefs.
16182
16183 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16184
16185         * threadpool.c: when mono_async_invoke was called, no one took care of
16186         monitoring the queue. So if the method invoked took some time and we
16187         got new async invoke requests after 500 ms (the thread created waited
16188         that long in WaitForSingleObject), the new async invoke was not called
16189         until the previous one finished.
16190
16191         This is fixed now. Thanks to Totte for helping with it.
16192
16193 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16194
16195         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
16196
16197 2003-08-11  Martin Baulig  <martin@ximian.com>
16198
16199         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
16200
16201 2003-08-06  Martin Baulig  <martin@ximian.com>
16202
16203         * mono-debug-debugger.c: Added support for static fields,
16204         properties and methods.
16205
16206 2003-08-06  Martin Baulig  <martin@ximian.com>
16207
16208         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16209         make this work for applications with multiple application domains.
16210
16211 2003-08-04  Martin Baulig  <martin@ximian.com>
16212
16213         * mono-debug-debugger.c: Completely reworked the type support; the
16214         most important thing is that we're now just using one single
16215         `MonoType' instance per type.
16216
16217 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16218
16219         * mono-endian.h, mono-endian.c, icall.c: Added icall
16220         ves_icall_System_Double_AssertEndianity to assert double word endianity
16221         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16222
16223 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16224
16225         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16226         support, icalls and fixes.
16227
16228 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16229
16230         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16231         classes that are a punctuation character in .NET is not the same a
16232         g_unichar_ispunct.
16233
16234 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16235
16236         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16237
16238 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16239
16240         * icall.c: Add new MemCopy internalcall.
16241         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16242         Simplified code; It is not necessary to handle all the cases here,
16243         as the C# code takes care of it.  Only handle the case of the name
16244         resource embedded into the assembly.
16245
16246         Changed signature to return the data pointer and the size of the
16247         data. 
16248
16249 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16250
16251         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16252         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16253
16254 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16255
16256         * socket-io.c: ignore EINTR error in select.
16257
16258 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16259
16260         * class.h, class.c: removed unused subclasses field in MonoClass.
16261
16262 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16263
16264         * icall.c: improve fix of get_base_definition(). If the parent class
16265           doesn't have the mehod, look at the parent of the parent.
16266         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16267           to check if a parameter is an in or out parameter
16268           (PARAM_ATTRIBUTE_IN is not set by default).
16269           mono_method_return_message_restore(): Use mono_class_value_size to
16270           get the size of a value type. mono_type_stack_size (parameterType)
16271           does not return the correct value if parameterType is byRef.
16272           mono_load_remote_field(), mono_load_remote_field_new(),
16273           mono_store_remote_field(), mono_store_remote_field_new():
16274           raise exception if the remote call returns an exception.
16275
16276 2003-07-28  Martin Baulig  <martin@ximian.com>
16277
16278         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16279         method.  This is a wrapper around mono_runtime_invoke() which
16280         boxes the instance object if neccessary.
16281
16282 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16283
16284         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16285         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16286
16287 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16288
16289         * icall.c: disable mcs bug workaround.
16290
16291 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16292
16293         * object.c (mono_runtime_class_init): Take the metadata_section
16294         mutex before obtaining the domain mutex.
16295
16296         * appdomain.h: Added definition of metadata_section mutex here. 
16297
16298         * object.c: define metadata_mutex here.
16299
16300 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16301
16302         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16303         fixed.
16304
16305 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16306
16307         * reflection.c: Fix bug #46669
16308
16309 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16310
16311         * exception.c:
16312         * exception.h:
16313         * icall.c:
16314         * object.h: fill in the type name for TypeLoadException.
16315
16316 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16317
16318         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16319         relationship between TypeBuilders while compiling corlib) and bug
16320         45993 (Array types returned from the runtime while compiling
16321         corlib were from the loaded corlib).
16322
16323 2003-07-22  Martin Baulig  <martin@ximian.com>
16324
16325         * mono-debug-debugger.c: Reworked the type support a bit more;
16326         distinguish between types and classes.
16327
16328 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16329
16330         * icall.c: add IsArrayImpl icall.
16331
16332 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16333
16334         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16335         initializing real_size only once. Also fix bug #46602.
16336
16337 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
16338
16339         * object.c: Renamed mono_metadata_section to metadata_section.
16340
16341 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
16342
16343         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
16344           empty array if the type is an array. Fixed.
16345           ves_icall_MonoMethod_get_base_definition: if the base method
16346           is abstract, get the MethodInfo from the list of methods of
16347           the class.
16348         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16349           and it was 1-based. Fixed in mono_param_get_objects.
16350
16351 2003-07-20  Martin Baulig  <martin@ximian.com>
16352
16353         * mono-debug.h: Set version number to 31.
16354         (mono_debug_init): Added `MonoDomain *' argument.
16355
16356         * mono-debug-debugger.c: Reworked the type support; explicitly
16357         tell the debugger about builtin types; pass the `klass' address to
16358         the debugger.
16359
16360 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16361
16362         * image.c: Allow new metadata tables to be loaded without a
16363         warning. Also update the warning message to give the new constant value.
16364                 
16365 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16366
16367         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16368         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16369         array type representation changes.
16370
16371 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16372
16373         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16374         on Environment.Exit () call.
16375
16376 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16377
16378         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16379         requires a matching corlib.
16380
16381 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16382
16383         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16384           Committed again without the CRs.
16385         
16386 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16387
16388         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16389           getting it from the "this" socket instance. Did not work
16390           if the socket is a subclass of Socket.
16391           Also fixed bug #35371.
16392
16393 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16394
16395         * metadata.c: fixed size for TypedByRef.
16396         * loader.c: when searching for a method, consider the vararg amrker.
16397         * unicode.c, decimal.c: constify some arrays.
16398
16399 2003-07-15  Dick Porter  <dick@ximian.com>
16400
16401         * socket-io.c: Fixed compilation for gcc < 3.2.
16402
16403         Fixed compilation for machines that don't have AF_INET6 (thanks to
16404         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16405
16406         Fixed compile warnings.
16407         
16408         Fixed formatting and line endings.
16409
16410 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16411
16412         * socket-io.h:
16413         * socket-io.c: Added IPv6 support.
16414
16415 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16416
16417         * class.c (mono_class_is_assignable_from): New function to implement
16418         the is_assignable_from logic. Used by mono_object_isinst, 
16419         Type::IsAssignableFrom () and the interpreter.
16420
16421         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16422         Object, even interfaces.
16423         
16424         * object.c (mono_object_isinst): Implement in terms of 
16425         is_assignable_from.
16426
16427         * icall.c (ves_icall_type_is_assignable_from): New icall.
16428
16429 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16430
16431         * domain.c (foreach_domain): fix compiler warning.
16432
16433 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16434
16435         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16436         not available on all plattforms
16437
16438 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16439
16440         * image.h image.c: Store the metadata version string in MonoImage.
16441         * icall.c: New icall to retrieve the image version.
16442         * reflection.c (create_dynamic_image): Fill in the image version field
16443         * reflection.c (build_compressed_metadata): Use the image version
16444         from the image structure.
16445
16446 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16447
16448         * appdomain.c: modified comment.
16449         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
16450         That will be its last iteration when mono_gc_cleanup is called from
16451         mono_runtime_cleanup and before the domain is unloaded.
16452
16453         Fixes bug #45962.
16454
16455 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
16456
16457         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
16458         attributes.
16459
16460 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16461
16462         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
16463         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
16464         Bernie Solomon <bernard@ugsolutions.com>.
16465
16466 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16467
16468         * object.c, object.h: provide mono_object_new_fast() for faster
16469         allocation in some special cases.
16470
16471 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
16472
16473         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
16474         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
16475
16476 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
16477
16478         * threadpool.c: fix leaks.
16479
16480 2003-07-01  Dick Porter  <dick@ximian.com>
16481
16482         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
16483         using MonoGHashTables.  Fixes threadpool bug posted to list.
16484
16485 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16486
16487         * image.h, image.c: added support to load an assembly from a byte array.
16488         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
16489         assembly bundle support.
16490
16491 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
16492
16493         * threadpool.c (mono_thread_pool_add): keep a reference to the
16494         AsyncResult to prevent GC
16495
16496 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16497
16498         * class.c: leak fix.
16499
16500 2003-06-25  Dick Porter  <dick@ximian.com>
16501
16502         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
16503         for the async object, the WaitHandle object will close the handle.
16504         Fixes bug 45321.
16505
16506 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16507
16508         * class.c: in mono_array_class_get (), lookup from the hash with the
16509         same type we insert: this works around a bug in
16510         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
16511         lluis. The real fix will have to wait for after the release.
16512
16513 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16514
16515         * icall.c: fix memory leak when getting type members.
16516
16517 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16518
16519         * reflection.c: added more pubtoken special cases.
16520
16521 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
16522
16523         * class.c: handle field offset correctly when class size
16524         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
16525
16526 2003-06-20  Martin Baulig  <martin@ximian.com>
16527
16528         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
16529         *image' field.
16530
16531 2003-06-20  Martin Baulig  <martin@ximian.com>
16532
16533         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
16534
16535 2003-06-20  Martin Baulig  <martin@ximian.com>
16536
16537         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
16538         just distinguish between variables in registers and variables at
16539         an offset relative to a register.
16540
16541 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16542
16543         * icall.c: #ifdef out latest changes until mcs is fixed.
16544
16545 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16546
16547         * icall.c: return members in metadata order.
16548
16549 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16550
16551         * icall.c: avoid infinite loop in GetTimeZoneData.
16552
16553 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
16554
16555         * icall.c: added Marshal.Prelink/All icalls.
16556
16557 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16558
16559         * object.c, object.h: fix warnings and do some overflow checking
16560         when creating arrays.
16561
16562 2003-06-17  Dick Porter  <dick@ximian.com>
16563
16564         * file-io.h:
16565         * file-io.c: File attributes need to be tweaked slightly when
16566         passed from the managed to the w32 world.
16567
16568 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16569         * profiler.h profiler-private.h profiler.c: Rework last patch
16570         based on suggestion by Paolo.
16571         
16572 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16573
16574         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
16575         instruction level coverage data collection.
16576         * profiler.h profiler.c (: Added new callback function which can be
16577         used by the profiler to limit which functions should have coverage
16578         instrumentation.
16579         * profiler.c (mono_profiler_load): Call g_module_build_path to
16580         generate the file name of the profiler library.
16581
16582 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16583
16584         * profiler.c, profiler.h, profiler-private.h: added basic block 
16585         coverage profiling API.
16586
16587 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
16588
16589         * reflection.c (mono_reflection_create_runtime_class): Add support
16590         for events in dynamically generated code.
16591
16592         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
16593         not allocated.
16594
16595 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16596
16597         * icall.c: when getting timezone info, return reasonable values if we
16598         can't get the actual data.
16599
16600 2003-06-14  Dick Porter  <dick@ximian.com>
16601
16602         * threads.c (start_wrapper): Remove the reference to the thread
16603         object in the TLS data, so the thread object can be finalized.
16604         This won't be reached if the thread threw an uncaught exception,
16605         so those thread handles will stay referenced :-( (This is due to
16606         missing support for scanning thread-specific data in the Boehm GC
16607         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
16608
16609 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
16610
16611         * reflection.c: ensure streams and tables are first allocated with
16612         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
16613
16614 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16615
16616         * icall.c: fixed GetElementType for byrefs (bug# 44792).
16617
16618 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
16619
16620         * reflection.c (mono_reflection_create_runtime_class): Add support for
16621         properties to dynamically created classes.
16622         * reflection.c: Fix a few places where non-MonoObjects were inserted
16623         into the tokens hashtable.
16624
16625 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16626
16627         * object.c: some support to handle out of memory exceptions.
16628
16629 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
16630
16631         * marshal.c (mono_marshal_get_native_wrapper): support reference
16632         return types
16633
16634 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16635
16636         * object.h, object.c: more portability stuff from Bernie Solomon.
16637         Unexport mono_object_allocate(). Added mono_object_unbox ().
16638         Set exitcode when an unhandled exception is thrown.
16639
16640 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
16641
16642         * marshal.c (mono_marshal_get_native_wrapper): use custom
16643         marshaler for return types.
16644
16645 2003-06-10  Dick Porter  <dick@ximian.com>
16646
16647         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
16648         ip_mreq is available
16649
16650 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
16651
16652         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
16653         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
16654         by Bernie Solomon <bernard@ugsolutions.com>.
16655
16656 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
16657
16658         * gc.c (mono_gc_init): Avoid error message on shutdown when
16659         GC_DONT_GC=1 is used.
16660
16661         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
16662         New icall to return the GUID of a module.
16663
16664 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16665
16666         * class.c: ensure instance size always includes the parent's size
16667         even whem class size is set explicitly (fixes bug#44294).
16668
16669 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16670
16671         * profiler.h, profiler.c: made the simple profiler thread-safe,
16672         get more accurate timing info. Allow the loading of an
16673         externally-developed profiler module.
16674
16675 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
16676
16677         * marshal.c (mono_marshal_get_native_wrapper): improved
16678         class/byref arguments.
16679         (mono_marshal_get_native_wrapper): better string marshaling support.
16680
16681 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
16682
16683         * class.c: ensure .pack and .size are handled correctly and
16684         simplified layout of static fields.
16685
16686 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
16687
16688         * appdomain.c
16689         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
16690
16691         * loader.c (mono_lookup_pinvoke_call): look for modules in the
16692         current directory (fix bug 44008)
16693
16694 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
16695
16696         * marshal.c (mono_marshal_get_native_wrapper): started support for
16697         custom marshalers.
16698         (mono_delegate_to_ftnptr): consider marshalling specifications
16699
16700 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
16701
16702         * reflection.c, reflection.h: emit custom marshal info.
16703
16704 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16705
16706         * object.c: free the GError.
16707         * icall.c: added CloseEvent_internal.
16708         * threads.[ch]:
16709         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
16710         call.
16711
16712 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
16713
16714         * loader.c (mono_method_get_signature): Add support for dynamic
16715         assemblies.
16716
16717 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
16718
16719         * reflection.c: fixed bug #43905.
16720
16721 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16722
16723         * class.c, domain.c, icall.c, metadata.h, object.h: support for
16724         handling TypedReference and ArgIterator.
16725         * loader.c, loader.h: added function to get signature at call site.
16726
16727 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16728
16729         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
16730         data readonly. Buglets and warning fixes. Some MethodSpec support.
16731
16732 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16733
16734         * class.h, class.c, object.c: remove relative numbering support.
16735
16736 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
16737
16738         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
16739         free the string, until we get a chance to fix Gtk#
16740
16741 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16742
16743         * marshal.c: revert last patch.
16744
16745 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
16746
16747         * icall.c: updates for new mono_class_vtable() not calling
16748         the type constructor anymore.
16749
16750 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
16751
16752         * object.h, object.c: separate vtable creation from type
16753         initialization. Make running the .cctor thread safe.
16754
16755 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
16756
16757         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
16758
16759 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
16760
16761         * loader.c (mono_get_method): consider calling convention
16762
16763 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
16764
16765         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
16766         to return the invisible global type for a module.
16767
16768         * reflection.c (mono_image_build_metadata): Emit global fields too.
16769
16770 2003-05-20  Peter Williams  <peterw@ximian.com>
16771
16772         * loader.c (mono_lookup_internal_call): Add a few newlines.
16773
16774 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
16775
16776         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
16777         literal strings.
16778
16779         * appdomain.c (set_domain_search_path): Recalculate search path when
16780         AppDomainSetup.PrivateBinPath changes.
16781
16782         * object.c (mono_class_compute_gc_descriptor): It turns out some
16783         parts of the class libs (like System.Thread) holds pointers to
16784         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
16785         to treat native int a pointer type here.
16786         
16787 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
16788
16789         * appdomain.h, domain.c: add hashtable for jump target resolution.
16790
16791 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
16792
16793         * reflection.h reflection.c icall.c: Added new icalls 
16794         GetManifestResourceInfoInternal, GetModulesInternal and support
16795         infrastructure.
16796
16797 2003-05-16  Dick Porter  <dick@ximian.com>
16798
16799         * icall.c:
16800         * file-io.h:
16801         * file-io.c: Implement System.IO.MonoIO::GetTempPath
16802
16803 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
16804
16805         * object.c: mono_store_remote_field: little fix to previous patch.
16806
16807 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16808
16809         * class.c: add constructors to array classes.
16810         * icall.c: special case array construction for InternalInvoke (),
16811
16812 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
16813
16814         * class.h class.c reflection.c object.c: Added support for field
16815         defaults in dynamically generated classes.
16816
16817 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
16818
16819         * reflection.c: properly encode charset for ddlimport.
16820
16821 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
16822
16823         * threads.c: allow compiling without GC.
16824
16825 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16826
16827         * appdomain.h, object.c, object.h, threads.c, threads.h: added
16828         handling of thread static data.
16829
16830 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16831
16832         * reflection.h, reflection.c: added mono_custom_attrs_free ().
16833
16834 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
16835
16836         * class.c (mono_array_class_get): always set the serializable flags
16837         (mono_array_class_get): always set the SEALED attribute for array types
16838
16839 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
16840
16841         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
16842         attributes (fix for bug 42021).
16843
16844 2003-05-12  Dick Porter  <dick@ximian.com>
16845
16846         * gc.c: Don't run finalizers when the finalizer thread is
16847         finishing up, because the default domain has already been
16848         destroyed.
16849
16850 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
16851
16852         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
16853         value is null, we should throw an exception.   This is slightly
16854         different than the other conventions used for the constructor.
16855
16856 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16857
16858         * socket-io.c: fixed windows build.
16859
16860 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16861
16862         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
16863
16864 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
16865
16866         * object.c (mono_string_new_wrapper): Compatibility fix for MS
16867         compilers.
16868
16869 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
16870
16871         * class.c (mono_class_layout_fields): Add experimental GC aware
16872         auto layout facility. Requires class library changes to work correctly.
16873
16874         (mono_class_setup_vtable): Avoid overriding explicit interface
16875         method implementations. Fixes iface3.exe test.
16876
16877         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
16878         object reference.
16879         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
16880         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
16881
16882         * metadata.h: Add new type classification macro which determines
16883         whenever the type holds an object reference.
16884
16885 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
16886
16887         * marshal.c (mono_marshal_get_native_wrapper): cleanups
16888
16889 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
16890
16891         * gc.c (finalizer_thread): Work around a GC bug.
16892
16893 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
16894
16895         * marshal.c (emit_struct_conv): allow unions
16896
16897         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
16898
16899 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
16900
16901         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
16902
16903 2003-05-06  Martin Baulig  <martin@ximian.com>
16904
16905         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
16906
16907 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16908
16909         * socket-io.c:
16910         (Select_internal): allow NULLs, don't create arrays if not needed.
16911         Coupled with Socket.cs changes.
16912
16913         * threadpool.c:
16914         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
16915         register a finalizer for it that will close the semaphore handle. This
16916         fixes the leak and make Lupus' test run with > 4080 loops.
16917
16918 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
16919
16920         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
16921         Jerome Laban (bug #42287)
16922
16923 2003-05-02  Martin Baulig  <martin@ximian.com>
16924
16925         * debug-mono-symfile.h
16926         (MonoSymbolFile): Moved declaration into mono-debug.h.
16927         (MonoDebugMethodJitInfo): Likewise.
16928         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
16929         argument.
16930         (_mono_debug_address_from_il_offset): Take a
16931         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
16932
16933         * mono-debug.h
16934         (MonoDebugDomainData): New struct.
16935         (mono_debug_get_domain_data): New function.
16936         (mono_debug_add_method): Take an additional `MonoDomain *'
16937         argument.
16938         (mono_debug_source_location_from_address): Likewise.
16939         (mono_debug_il_offset_from_address): Likewise.
16940         (mono_debug_address_from_il_offset): Likewise.
16941
16942 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
16943
16944         * reflection.c: one more check for null type in custom attrs.
16945
16946 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16947
16948         * reflection.c: avoid warning (comparison is always false due to limited
16949         range of data type).
16950
16951 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16952
16953         * icall.c: throw an exception in Type.GetField if the argument 'name'
16954         is NULL.
16955
16956 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
16957
16958         * reflection.c: fixed handling of enums in named arguments to custom
16959         attributes (bug #42123).
16960
16961 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
16962
16963         * reflection.c: use the right array element type and handle
16964         a null for a Type argument, too.
16965
16966 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
16967
16968         * reflection.c: handle arrays as arguments to custom attributes.
16969
16970 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16971
16972         * reflection.c: handle a string value in a custom attr
16973         ctor that takes an object.
16974
16975 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
16976
16977         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
16978         (fix bug #42063)
16979
16980 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
16981
16982         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
16983
16984 2003-04-27  Martin Baulig  <martin@ximian.com>
16985
16986         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
16987         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
16988         MONO_DEBUGGER_EVENT_BREAKPOINT.
16989         (mono_breakpoint_trampoline_code): Removed.
16990         (mono_debugger_event_handler): The last argument is now a
16991         `guint32'.
16992         (mono_debugger_insert_breakpoint_full): Removed the
16993         `use_trampoline' argument.
16994         (mono_debugger_method_has_breakpoint): Likewise.
16995         (mono_debugger_trampoline_breakpoint_callback): Renamed to
16996         mono_debugger_breakpoint_callback(); take the method and
16997         breakpoint number as arguments.
16998
16999 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
17000
17001         * metadata.c: fix off by one when loading parameters attributes.
17002
17003 2003-04-24  Martin Baulig  <martin@ximian.com>
17004
17005         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
17006
17007 2003-04-24  Martin Baulig  <martin@ximian.com>
17008
17009         * mono-debug-debugger.c: Moved all code which interacts with the
17010         Mono Debugger here.
17011
17012         * debug-mono-symfile.c: This code now just deals with the symbol
17013         file itself, the debugger code is now in mono-debug-debugger.c.
17014
17015 2003-04-23  Martin Baulig  <martin@ximian.com>
17016
17017         * mono-debug.c (mono_debug_source_location_from_il_offset):
17018         New method; like mono_debug_source_location_from_address(), but
17019         takes an IL offset instead of a machine address.
17020
17021 2003-04-23  Martin Baulig  <martin@ximian.com>
17022
17023         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
17024         `line' field; this is now computed by the debugger.
17025
17026 2003-04-23  Martin Baulig  <martin@ximian.com>
17027
17028         * mono-debug.[ch]: New files.  This is the new debugging interface.
17029
17030         * mono-debug-debugger.[ch]: New files.  Moved all code which
17031         interacts with the Mono Debugger here.
17032
17033 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
17034
17035         * domain.c (mono_init): initialize mono_defaults.monitor_class
17036
17037 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
17038
17039         * reflection.c (method_encode_code): Add a spicy exception to help
17040         future compiler authors.
17041
17042 2003-04-21  Martin Baulig  <martin@ximian.com>
17043
17044         * icall.c
17045         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17046         Make this work with relative pathnames; g_filename_to_uri() needs
17047         an absolute filename.
17048
17049 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
17050
17051         * icall.c: Track name changes in Object and ValueType.
17052
17053 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
17054
17055         * metadata.c (mono_type_stack_size): size should be a multiple of
17056         sizeof (gpointer)
17057
17058 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17059
17060         * gc.c:
17061         (internal_domain_finalize): moved into mono_domain_finalize. No need
17062         to create another thread because the finalizers will be run in the
17063         finalizer thread.
17064         
17065         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
17066         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
17067         to be run (MS does this too).
17068
17069 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
17070
17071         * object.c (mono_class_compute_gc_descriptor): Update comment.
17072
17073         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
17074
17075         * image.h: Add synchronized wrapper cache.
17076
17077         * image.c (do_mono_image_open): Initialize cache.
17078
17079         * reflection.c (create_dynamic_mono_image): Initialize cache.
17080
17081 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17082
17083         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
17084         ves_icall_System_Buffer_ByteLengthInternal.
17085
17086 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17087
17088         * reflection.c: setup klass->nested_in earlier. Allow
17089         a dash in the assembly name.
17090
17091 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
17092
17093         * metadata.c (mono_type_to_unmanaged): dont access
17094         type->data.klass for MONO_TYPE_OBJECT
17095         (mono_type_to_unmanaged): consider System.Delegate class
17096
17097 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
17098
17099         * class.c: just setup supertypes in the proper place instead of
17100         initializing the full element class for arrays.
17101
17102 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17103
17104         * class.c: ensure the element class of arrays is initialized.
17105         Setup the supertype info for array classes, too.
17106
17107 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
17108
17109         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
17110
17111 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17112
17113         * Makefile.am: re-added -m option when running cygpath. This way,
17114         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
17115         separator.
17116         * mono-config.c: same codepath for locating mono config file for WIN32
17117         and the rest.
17118         * assembly.c: if mono_assembly_setrootdir is called, don't override
17119         the value set.
17120
17121 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17122
17123         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
17124         MONO_ASSEMBLIES variable.
17125
17126 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
17127
17128         * icall.c: added Assembly::GetNamespaces() icall.
17129
17130 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17131
17132         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
17133
17134 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
17135
17136         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
17137         * object.c: fixed bug in the construction of vtable for proxies
17138
17139 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
17140
17141         * object.c (mono_array_new): Mark mono_array_new as an icall.
17142
17143 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17144
17145         * class.c: fixed test for public method when overriding interfaces.
17146         Closes bug #40970.
17147
17148 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17149
17150         * appdomain.h, domain.c: added mono_domain_foreach() to
17151         be able to access the currently loaded appdomains.
17152         * object.c: make string interning work across sppdomains.
17153         Mark some functions for use as icalls.
17154
17155 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
17156
17157         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
17158
17159         * reflection.h reflection.c: Allocate long living data using 
17160         GC_MALLOC_ATOMIC so the collector does not need to scan it.
17161
17162         * reflection.c: Double the allocation size in streams instead of
17163         increasing it, to prevent unneccesary copying on large assemblies.
17164         
17165         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
17166         creation if the assembly does not have the Run flag set.
17167
17168 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
17169
17170         * class.h: avoid the C++ keywords in header files (Jerome Laban
17171         spotted and fixed this).
17172
17173 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17174
17175         * object.c:
17176         (mono_unhandled_exception): fill in the arguments for the
17177         UnhandledException event. Only trigger that event for the default
17178         domain (as MS does).
17179
17180 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
17181
17182         * object.c: Improve typed allocation stuff based on suggestions from
17183         Paolo. Also turn it on if the GC library supports it.
17184
17185 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17186
17187         * object.c object.h class.h: Added experimental typed allocation
17188         facility using the interfaces in gc_gcj.h.
17189
17190         * os/gc_wrapper.h: Added new include files.
17191         
17192 2003-04-03  Martin Baulig  <martin@ximian.com>
17193
17194         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
17195         which is not yet enabled by default.
17196
17197         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
17198         functions.
17199         (mono_gc_lock, mono_gc_unlock): New static functions.
17200
17201         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
17202         functions; stop/start the world for the garbage collector.  This
17203         is using the windows API; we need to complete the SuspendThread()/
17204         ResumeThread() implementation in the io-layer to make this work on Unix.
17205         (mono_gc_push_all_stacks): New public function; tells the garbage
17206         collector about the stack pointers from all managed threads.
17207
17208 2003-04-03  Martin Baulig  <martin@ximian.com>
17209
17210         * object.h (MonoThread): Added `gpointer stack_ptr'.
17211
17212         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17213
17214 2003-04-03  Martin Baulig  <martin@ximian.com>
17215
17216         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17217
17218 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17219
17220         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17221         field.last.
17222
17223 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17224
17225         * loader.c (mono_lookup_internal_call): Report the corlib that is
17226         out of sync.
17227
17228 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17229
17230         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17231         System.DBNull (it's class not valuetype).
17232
17233 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17234
17235         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17236         if the array method was already assigned a token (fixes bug#40646).
17237
17238 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17239
17240         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17241         if no assembly is given.
17242
17243 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17244
17245         * metadata.h: Added the new tables.
17246
17247         * row-indexes.h: Added definitions for new tables.
17248
17249         * metadata.c: Add schemas for new tables, and add support for
17250         computing the sizes of them.
17251
17252         * class.c: Update for handling the new type cases.
17253
17254 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17255
17256         * metadata.h (MONO_TYPE_IS_VOID): new macro
17257
17258 2003-03-31  Martin Baulig  <martin@ximian.com>
17259
17260         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17261
17262         * threads.c (mono_thread_new_init): Call `thread_created' in the
17263         mono_thread_callbacks.
17264
17265 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17266
17267         * loader.h: added marshalbyrefobject_class to mono_defaults
17268         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17269         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17270           generation of output parameters.
17271           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17272         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17273           contextbound and the target object belongs to the context of the caller.
17274         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17275         * object.c: Implemented support for interfaces and abstract classes
17276           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17277           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17278
17279 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17280
17281         * class.h class.c (mono_class_is_subclass_of): New function.
17282         
17283         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17284         routines for most common case (calls from ArrayList::ToArray).
17285
17286         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17287         routine so programs which call Environment::Exit() can be profiled.
17288
17289         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17290         Added MONO_ARCH_SAVE_REGS.
17291
17292         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17293
17294 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17295
17296         * blob.h: Add a couple of new MonoType types definitions.
17297
17298         * tabledefs.h: Add a couple of new call convs.
17299
17300 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17301
17302         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17303         the layout of the class.
17304
17305         * reflection.c (alloc_table): double the size on overflow to avoid
17306         unnecessary copying.
17307
17308         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17309         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17310         null so it can be garbage collected.
17311         
17312 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17313
17314         * reflection.c (mono_reflection_get_type): Return the resolved type
17315         only if it is in the assembly we searched.
17316
17317         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17318
17319         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17320         method.
17321
17322 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17323
17324         * appdomain.c:
17325         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17326         the right one is 'file:///blah', but MS allows it.
17327         * assembly.c:
17328         (mono_assembly_open): allow 'file://blah'
17329
17330         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17331
17332 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17333
17334         * socket-io.c: fixes bug #40310.
17335
17336 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
17337
17338         * reflection.c (mono_reflection_parse_type): handle deeply nested
17339         types correctly.
17340
17341         * reflection.c (mono_image_create_token): Use unique token values
17342         since they will be put into a hash table.
17343
17344         * class.c (mono_class_setup_vtable): If a method occurs in more than
17345         one place in the vtable, and it gets overriden, then change the
17346         other occurances too.
17347
17348         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17349         object as return type.
17350
17351 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17352
17353         * icall.c: Deleted "ToString" implementation for double and float
17354         because they are full implemented in managed code.
17355
17356 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17357
17358         * reflection.c, reflection.h: implemented and exported functions
17359         to retrieve info about custom attributes.
17360
17361 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17362
17363         * appdomain.c: moved Uri handling to assembly.c
17364         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17365         work when using a file Uri in *nix and windows.
17366
17367         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17368         GetReferencedAssemblies.
17369
17370 2003-03-18  Dick Porter  <dick@ximian.com>
17371
17372         * icall.c: Rename a couple of internal calls
17373
17374         * threads.c: Set the thread state to Stopped when a thread exits.
17375         Fixes bug 39377.
17376
17377 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17378
17379         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17380         New icall.
17381
17382         * object.c (mono_class_vtable): fix warning.
17383
17384 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17385
17386         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17387
17388         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17389         memory.
17390         (method_encode_clauses): Create exception info structures in the right
17391         order.
17392         (mono_reflection_setup_internal_class): Initialize supertypes field.
17393
17394         * class.c object.c: Handle interfaces which implement other interfaces 
17395         correctly.
17396
17397         * class.h class.c: Move the supertypes array initialization code into 
17398         a separate function so it can be used for dynamic types too. Also call
17399         it earlier, in mono_class_init(), since it can be used before the
17400         type is initialized.
17401
17402 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17403
17404         * Makefile.am:
17405         * assembly.c:
17406         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17407
17408         * appdomain.c:
17409         * appdomain.h:
17410         * marshal.c:
17411         * object.c: remove warnings.
17412
17413 2003-03-13  Martin Baulig  <martin@ximian.com>
17414
17415         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17416         (MonoDebugLexicalBlockEntry): New types.
17417
17418         * debug-mono-symfile.c
17419         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17420
17421 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17422
17423         * process.c: ret can be any non-zero value accroding to MS doc.
17424
17425 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17426
17427         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17428         fixing a warning for a miss-used prototype, would have cause
17429         random memory corruption.
17430
17431 2003-03-07  Martin Baulig  <martin@ximian.com>
17432
17433         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17434         getting really annoying ....
17435
17436 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17437
17438         * reflection.c (fixup_method): added support for array methods.
17439
17440 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17441
17442         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17443         (pointed out by Michael Adams).
17444
17445 2003-03-04  Dick Porter  <dick@ximian.com>
17446
17447         * icall.c: Temporarily reverted the Double and Single ToString()
17448         change, because it broke nunit.
17449
17450 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
17451
17452         * object.h, threads.h: make include files compatible with C++
17453         (patch by Jerome Laban <jlaban@wanadoo.fr>).
17454
17455 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17456
17457         * icall.c: Erased ToString helper functions for Double and Single.
17458         Now, that implementations ar all in managed code (Double and Single
17459         Formatters).
17460
17461 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
17462
17463         * appdomain.c: Added method for initializing the default context of
17464         a domain. Added internal call for getting the default context.
17465         * appdomain.h: Added context variable in MonoDomain struct.
17466         * domain.c: mono_domain_set also sets the default context of the domain
17467         * icall.c: Mapped internal method InternalGetDefaultContext.
17468         * object.c: mono_object_get_virtual_method returns always a remoting
17469         wrapper if the object is a transparent proxy.
17470         mono_runtime_invoke_array: when creating an object by calling the
17471         constructor, if the created object is a proxy, then the constructor should
17472         be called using the a remoting wrapper.
17473
17474 2003-03-03  Dick Porter  <dick@ximian.com>
17475
17476         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
17477         variable so it compiles on solaris.  Problem spotted by
17478         Christopher Taylor <ct@cs.clemson.edu>
17479
17480 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17481
17482         * appdomain.c:
17483         (get_info_from_assembly_name): don't leak value.
17484
17485         * icall.c:
17486         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
17487         result.
17488
17489 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
17490
17491         * assembly.c: export mono_image_load_references ().
17492         * class.c: handle function pointers. mono_class_from_name() now
17493         supports nested type names directly.
17494
17495 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
17496
17497         * reflection.h reflection.c: Encode already created dynamic methods 
17498         and fields correctly as a DEF instead of a REF.
17499
17500         * reflection.c: Get rid of the force_ref argument to 
17501         mono_image_typedef_or_ref since it was wrong in the first place.
17502
17503         * string-icalls.c: add error checking to string constructors according
17504         to the MSDN docs.
17505
17506         * reflection.c: Emit types in the order their TypeBuilders were 
17507         created. Previously, a new table index was assigned to each type before
17508         the tables were emitted. This was wrong because the signature blob
17509         might already refer to a type by its original table index.
17510
17511 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
17512
17513         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
17514         change.
17515         
17516 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17517
17518         * Makefile.am: make assemblies dir have \ instead of / on windows.
17519
17520 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
17521
17522         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
17523         iterate over the NESTEDCLASS table using a linear search since the
17524         table is not guaranteed to be sorted by the secondary key.
17525
17526         * class.c (mono_class_create_from_typedef): fixed up call to
17527         mono_metadata_nesting_typedef.
17528         
17529 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
17530
17531         * marshal.c (mono_string_to_byvalstr): clear the memory as
17532         suggested by Jerome Laban <jlaban@wanadoo.fr>
17533
17534 2003-02-26  Dick Porter  <dick@ximian.com>
17535
17536         * process.c: Cope with padding in .rsrc blocks
17537
17538 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17539
17540         * metadata.h: reverted the filter_len change, it breaks reflection
17541         
17542 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17543
17544         * metadata.h: added a new field to store the filter_len
17545         
17546
17547 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
17548
17549         * reflection.c: handle custom attributes for types and members
17550         created with Reflection.Emit (bug#38422).
17551
17552 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
17553
17554         * reflection.c: define RTSpecialName automatically for constructors for
17555         compatibility with MS.NET.
17556
17557         * reflection.c (mono_reflection_create_runtime_class): initialize
17558         nested_in field of dynamically created classes.
17559
17560 2003-02-22  Martin Baulig  <martin@ximian.com>
17561
17562         * debug-mono-symfile.h: Incremented version number.
17563
17564 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17565
17566         * object.h icall.c process.c: fix warnings.
17567
17568 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17569
17570         * appdomain.h appdomain.c:
17571         (mono_domain_try_type_resolve): split the 
17572         name_or_tb argument into a name and a tb argument.
17573         (mono_domain_has_type_resolve): new function to check whenever the
17574         application has registered a TypeResolve event handler.
17575         
17576         * icall.c reflection.h reflection.c: move the type resolve logic into
17577         mono_reflection_get_type () so it will be invoked when 
17578         Assembly::GetType () is called.
17579
17580         * reflection.c:
17581         (mono_reflection_get_type): renamed to get_type_internal.
17582         (mono_reflection_get_type): fixed type name generation so it works 
17583         for nested types too.
17584         (mono_reflection_get_type): call has_type_resolve () to avoid the 
17585         costly type name generation if there is no resolve event handler.
17586
17587 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17588
17589         * class.c, image.c: load exported types from file references.
17590
17591 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
17592
17593         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
17594           used to cache the managed methods used to create proxies and make 
17595           remote invocation of methods.
17596         * class.h: Added in MonoVTable a flag to indicate that a class needs 
17597           to be remotely created.
17598         * object.c: Modified the method mono_class_vtable(). It now initializes 
17599           the remote flag of the vtable. Modified mono_object_new_specific(), 
17600           so now it checks the remote flag.
17601         * icall.c: Added a couple of internal methods, one for enabling instance 
17602           creation interception for a type, and one for creating objects bypassing
17603           the remote check.
17604
17605 2003-02-18  Martin Baulig  <martin@ximian.com>
17606
17607         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
17608         New interncall to get a method's metadata token.
17609
17610         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
17611         New interncall for the debugger.
17612
17613 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
17614
17615         * class.c (mono_class_setup_vtable): allocate supertype array
17616
17617 2003-02-18  Martin Baulig  <martin@ximian.com>
17618
17619         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
17620
17621 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17622
17623         * reflection.c:
17624         (assembly_name_to_aname): jump over unknown properties (i've found
17625         something like: 'type, assembly, version=xxx, custom=null, public...',
17626         so now will ignore custom=null and still get the rest of the values).
17627
17628 2003-02-17  Dick Porter  <dick@ximian.com>
17629
17630         * threads.c: Have Thread.Start() wait for a semaphore to signal
17631         that the thread has set up all its local data.  This fixes bug
17632         34323, where Abort() raced the new thread's TLS data.
17633
17634         Also removes the handle_store() call from start_wrapper, because
17635         threads are now always created suspended and there is no longer a
17636         race between the parent and child threads to store the info.
17637
17638 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
17639
17640         * image.c: explain the #- heap issue in a message, hopefully
17641         avoiding FAQs on mono-list.
17642
17643 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17644
17645         * icall.c:
17646         (GetEntryAssembly): if the domain has not invoked
17647         AppDomain.ExecuteAssembly yet, return the assembly of the default
17648         AppDomain.
17649
17650 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
17651
17652         * class.c (mono_ldtoken): make it work in dynamic assemblies.
17653
17654 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
17655
17656         * metadata.c, reflection.c: simple speedup to type hash
17657         and equals code.
17658
17659 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
17660
17661         * image.c, image.h, class.c, assembly.c: move module loading
17662         to MonoImage. When loading metadata, consider alignemnet from
17663         the start of metadata, not from the metadata address in memory.
17664
17665 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
17666
17667         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
17668         AssemblyBuilder objects. Factored out custom attribute creation into
17669         a separate function.
17670         (create_custom_attr): new function to create custom attributes.
17671
17672 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
17673
17674         * Makefile.am: Got tired of typing the full pathname to pedump.
17675         Until there is another option, am installing this.
17676
17677 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
17678
17679         * class.c (class_compute_field_layout): always set field->parent 
17680         (mono_ldtoken): use mono_defaults.fieldhandle_class;
17681
17682 2003-02-11  Dick Porter  <dick@ximian.com>
17683
17684         * threads-types.h:
17685         * monitor.c: Rewrote Monitor, making lock much faster and
17686         Pulse/Wait work as specified.  Also uses much fewer handles, and only
17687         creates them as needed.
17688
17689         * exception.c: Added SynchronizationLockException
17690
17691         * threads.c: Deleted old Monitor implementation.  The new one is
17692         in a new file.
17693
17694 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
17695
17696         * class.c: handled TypedReference type code. Set the correct size for
17697         class data. Setup interface_offsets for interface classes, too.
17698
17699 2003-02-09  Martin Baulig  <martin@ximian.com>
17700
17701         * debug-mono-symfile.h: Reflect latest symbol writer changes.
17702
17703 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
17704
17705         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
17706         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
17707         * object.c: fixed mono_object_get_virtual_method () for interfaces.
17708         * verify.c: check for code that runs after the end of the method.
17709
17710 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17711
17712         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
17713         "System.Math::Round2".
17714         * sysmath.h: Added Floor, Round and Round2 definitions.
17715         * sysmath.c: Modified certain functions that were not 100% compliant
17716         with MS.NET (math precision) and added the implementation of Floor,
17717         Round and Round2.
17718
17719 2003-02-07  Martin Baulig  <martin@ximian.com>
17720
17721         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
17722
17723 2003-02-07  Martin Baulig  <martin@ximian.com>
17724
17725         * debug-mono-symfile.c: Reflected latest symwriter changes.
17726         (mono_debug_create_mono_symbol_file): Removed.
17727         (mono_debug_open_mono_symbol_file): Take an argument which
17728         specifies whether to create a dynamic symbol file.
17729
17730 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
17731
17732         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
17733
17734 2003-02-05  Martin Baulig  <martin@ximian.com>
17735
17736         * reflection.c (mono_image_build_metadata): Make this public,
17737         protect it against being called multiple times, don't create
17738         resources and don't build the compressed metadata here.
17739         (mono_image_create_pefile): Do this here.
17740
17741         * icall.c
17742         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
17743
17744 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17745
17746         * socket-io.c: fixed bug #36322.
17747
17748 2003-02-06  Piers Haken <piersh@friskit.com>
17749
17750         * appdomain.[ch]:
17751         * class.h:
17752         * debug-mono-symfile.c:
17753         * icall.c:
17754         * loader.c:
17755         * mono-config.c:
17756         * monosn.c:
17757         * reflection.c:
17758         * socket-io.c: warning cleanups
17759
17760 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
17761
17762         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
17763         function. works like remoting invoke, but does a check for the Proxy first.
17764
17765 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
17766
17767         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
17768
17769 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
17770
17771         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
17772         array of pointers.
17773         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
17774         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
17775
17776         * object.c (mono_store_remote_field_new): used by the new jit
17777         instead of mono_store_remote_field
17778         (mono_load_remote_field_new): used by the new jit
17779         instead of mono_load_remote_field
17780
17781 2003-02-05  Patrik Torstensson
17782
17783         * appdomain.c: changed unload to take the domain id instead
17784         of domain
17785         
17786         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
17787
17788
17789 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17790
17791         * appdomain.c: don't look for assemblies in ApplicationBase if
17792         PrivateBinPathProbe is set.
17793
17794 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17795
17796         * object.c: make the first argument in main_args contain the absolute
17797         path to the assembly. Fixes bug #37511.
17798
17799 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17800
17801         * icall.c: get correct UTC offset for countries not using daylight
17802         time saving. Fixes bug #30030.
17803
17804 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17805
17806         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
17807         and 1 are the family).
17808
17809 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
17810
17811         * icall.c (ves_icall_InternalExecute): removed wrong assertion
17812
17813         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
17814
17815 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
17816
17817         * reflection.c: added support for SignatureHelper tokens, which is
17818         needed by the Calli opcode.
17819
17820         * reflection.h: track changes to SignatureHelper class.
17821
17822         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
17823
17824 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17825
17826         * appdomain.c: fixed loading assemblies from PrivateBinPath.
17827
17828 2003-02-03  Patrik Torstensson
17829         * appdomain.[c|h], domain.c : 
17830          - Added support for getting a domain via domain id
17831          - Support for setting and getting domain from System.AppDomain 
17832            (used in cross appdomain channel)
17833          - Added support for get/set for a MonoAppContext on a thread 
17834            (Context class in System.Runtime.Remoting.Contexts),
17835          - Removed hack in Get/SetData and ExecuteAssembly.
17836         
17837         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
17838         the managed world to get control when a proxy is created.
17839
17840         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
17841         
17842 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
17843
17844         * icall.c
17845         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17846         Populate the codebase field as well.
17847
17848 2003-02-02  Martin Baulig  <martin@ximian.com>
17849
17850         * debug-mono-symfile.c
17851         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
17852         (mono_debug_symfile_add_method): Allow interncalls.
17853
17854 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17855
17856         * icall.c: throw parse exception if strtod fails or the string is empty.
17857
17858 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
17859
17860         * marshal.c: handle object type separately from defined
17861         class types.
17862
17863 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
17864
17865         * marshal.c: handle NATIVE_LPSTR for strings when it's
17866         explicitly specified.
17867
17868 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
17869
17870         * reflection.c, reflection.h, icall.c: setup the reflection
17871         handle cache for ModuleBuilders and AssemblyBuilders.
17872
17873 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
17874
17875         * reflection.c (reflection_methodbuilder_to_mono_method): set
17876         pinvoke flag
17877
17878 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17879
17880         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
17881
17882 2003-01-29  Dick Porter  <dick@ximian.com>
17883
17884         * threads.c: No need for the fake_thread kludge now that Thread
17885         doesn't run a class constructor
17886         
17887 2003-01-29  Dick Porter  <dick@ximian.com>
17888
17889         * threads.c: Use g_direct_hash instead of the rather bogus
17890         g_int_hash
17891
17892 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
17893
17894         * marshal.c (mono_marshal_get_native_wrapper): add check for null
17895         (fix pinvoke12.exe)
17896         (mono_marshal_get_struct_to_ptr): generate valid IL code
17897         (mono_marshal_get_ptr_to_struct): generate valid IL code
17898         (*): correctly set sig->pinvoke, we need to memdup the signature
17899         to do that
17900
17901 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17902
17903         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
17904         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
17905
17906 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
17907
17908         * profiler.c: provide more callers information.
17909
17910 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
17911
17912         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
17913
17914         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
17915
17916         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
17917
17918 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17919
17920         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
17921         exception instead of going into an infinite loop on dates which it 
17922         can't yet handle.
17923
17924         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
17925         out-of-range exception if needed.
17926
17927         * class.c (mono_class_setup_vtable): allow a virtual method to provide
17928         an implementation for an interface method and to override an inherited
17929         method at the same time. 
17930         Imagine a scenario when a virtual method is used to override a
17931         virtual abstract method in a parent class, and this same method 
17932         provides an implementation for an method inherited from an interface. 
17933         In this case, the interface resolution code will set im->slot, which 
17934         means that the virtual method override pass will skip this method 
17935         which means a pointer to the abstract method inherited from the parent
17936         will remain in the vtable of this non-abstract class.
17937
17938         * class.c: (mono_class_setup_vtable): continue search for a real 
17939         method if only an abstract method is found.     
17940
17941 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
17942
17943         * reflection.c: add size to encoding for ByValStr and ByValArray
17944         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
17945
17946 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17947
17948         * class.c (mono_class_setup_vtable): pass the override info as an
17949         argument.
17950
17951         * class.c (mono_class_setup_vtable): set the slot of overriding methods
17952         correctly.
17953         
17954         * reflection.c (ensure_runtime_vtable); add support for method 
17955         overrides.
17956         
17957 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17958
17959         * reflection.c (resolution_scope_from_image): Hack to work to work with
17960         dynamic assemblies.
17961
17962         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
17963         added a 'force_ref' argument to force this function to allways return 
17964         a TypeRef. This is needed by mono_image_get_memberref_token ().
17965         
17966 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17967
17968         * reflection.c (mono_image_get_type_info): interfaces really don't have
17969         a parent.
17970
17971         * reflection.c (mono_image_basic_init): fill out missing fields of
17972         image structure.
17973
17974         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
17975         dynamic assemblies. This is required so dynamic assemblies show up in
17976         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
17977         Type::GetType() etc. This is consistent with MS behaviour.
17978
17979         * image.c image.h reflection.c: add newly created classes to the name 
17980         cache so mono_class_get () will find them.      
17981
17982 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17983
17984         First part of changes to get IKVM.NET running under mono.
17985         
17986         * appdomain.h, appdomain.c: added new function 
17987         mono_domain_try_type_resolve() which will emit TypeResolve events. 
17988         This function will call AppDomain::DoTypeResolve to do the actual work.
17989
17990         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
17991         moved existing code dealing with dynamic tokens to a new function 
17992         called mono_reflection_lookup_dynamic_token (). This function will 
17993         raise TypeResolve events when appropriate. Since reflection.c is not 
17994         part of libmetadata, a new hook function called 
17995         mono_lookup_dynamic_token() is added to class.c which will call this.
17996
17997         * assembly.h assembly.c: make the invoke_load_hook function public,
17998         so it can be called for dynamic assemblies.
17999
18000         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
18001
18002         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
18003         type isn't found.
18004
18005         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
18006         MonoGHashTable, since it contains pointers to objects which the GC 
18007         needs to track.
18008
18009         * assembly.c (search_loaded): remove unused variable.
18010         
18011 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
18012
18013         * object.c: fixed issue exposed by gcc-generated IL programs
18014         that use RVA data for pointers.
18015
18016 2003-01-25  Martin Baulig  <martin@ximian.com>
18017
18018         * threads.c (start_wrapper): Moved the initialization of
18019         `start_func' above the mono_new_thread_init() call to which we
18020         pass it as argument.
18021
18022 2003-01-24  Martin Baulig  <martin@ximian.com>
18023
18024         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
18025         the MonoThread pointer.
18026
18027 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
18028
18029         * icall.c: Rename `PowImpl' to Pow.
18030
18031 2003-01-23  Dick Porter  <dick@ximian.com>
18032
18033         * threads.c (start_wrapper): Create a Thread object if needed, so
18034         the Main() thread can do the class initialisation in a subthread
18035         that has been set up to allow managed code execution.
18036
18037         Pass the thread ID instead of the MonoThread pointer to the thread
18038         start and attach callbacks.  This change is required, because the
18039         jit thread start callback must be called _before_ the Thread
18040         object can be created.
18041         
18042         (mono_thread_init): Removed much object creation code that is no
18043         longer needed.  No managed code is called from here now.
18044
18045         * object.c (mono_runtime_exec_managed_code): Create a subthread
18046         for Main, and call back to the runtime to use it.
18047         Set the exit code when Main exits.
18048
18049         * gc.c: Make sure domain finalisation happens in a subthread.
18050         Re-enable threaded GC, fixing bug 31333 (again).
18051
18052         * environment.c: System.Environment internall calls (so far just
18053         ExitCode is here, the others are still in icall.c)
18054
18055         * appdomain.c (mono_runtime_cleanup): All threads running managed
18056         code should have finished before mono_runtime_cleanup() is
18057         reached, so no need to clean up threads.
18058
18059 2003-01-22  Martin Baulig  <martin@ximian.com>
18060
18061         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
18062         `gpointer func' arguments.      
18063         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
18064         but added `MonoThread *thread' argument.
18065         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
18066
18067         * threads.c (mono_new_thread_init): Added `gpointer func' argument
18068         and pass it to the mono_thread_start_cb callback.
18069         (mono_install_thread_callbacks): New public function to install a
18070         set of callbacks which are set by the debugger.
18071         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
18072
18073 2003-01-22  Martin Baulig  <martin@ximian.com>
18074
18075         * Makefile.am: Install debug-mono-symfile.h.
18076
18077 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
18078
18079         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
18080
18081 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
18082
18083         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
18084         * class.c (mono_ptr_class_get): correctly set access levels of pointers
18085         (mono_array_class_get): correctly set access levels of arrays
18086
18087 2003-01-20      Patrik Torstensson
18088         * image.h (MonoAssemblyName): changed major, minor, build, revision
18089         from signed to unsigned.
18090
18091 2003-01-20  sean kasun <skasun@azstarnet.com>
18092
18093         * reflection.c (load_cattr_value): Now this handles
18094         MONO_TYPE_SZARRAY.  Fixes bug #35629
18095
18096 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
18097
18098         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
18099         integer value
18100
18101 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18102
18103         * decimal.c: fixed bug #26056.
18104
18105 2003-01-17  Martin Baulig  <martin@ximian.com>
18106
18107         * gc.c: Raise an ExecutionEngineException instead of using g_error().
18108
18109 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18110
18111         * exception.[ch]:
18112         (mono_get_exception_type_initialization): new function.
18113
18114         * object.c: throw a TypeInitializationException when an exception is
18115         thrown invoking the class constructor.
18116
18117 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18118
18119         * reflection.c: fixed attribute reading.
18120
18121 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18122
18123         * icall.c:
18124         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
18125         provided, look for the type in the calling assembly and then in
18126         mscorlib; if the assembly name is provided, only try that one.
18127
18128 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
18129
18130         * object.c: register the vtable before there is a chance it's
18131         queried again recursively.
18132
18133 2003-01-13  Duncan Mak  <duncan@ximian.com>
18134
18135         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
18136         gc-internal.h. 
18137         
18138 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
18139
18140         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
18141
18142 2003-01-11  Martin Baulig  <martin@ximian.com>
18143
18144         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
18145         this to 20 for the release.
18146
18147 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
18148
18149         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
18150
18151         * loader.c (mono_method_get_marshal_info): bug fix
18152
18153         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
18154         structures with explicit layout
18155
18156 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18157
18158         * profiler.c: made the output more readable (and sorted). 
18159         Added caller information for the allocation profiler.
18160
18161 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
18162
18163         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
18164
18165 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18166
18167         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
18168         to get value types.
18169         
18170 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
18171
18172         * object.c, profiler.h, profiler.c, profiler-private.h:
18173         Added object allocation profiler.
18174
18175 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
18176
18177         * reflection.h, reflection.c: handle global methods.
18178         Compress blob entries.
18179
18180 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
18181
18182         * marshal.c: fix compilation.
18183
18184 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
18185
18186         * loader.c (mono_method_get_marshal_info): impl.
18187
18188         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
18189
18190 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18191
18192         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
18193         for reference types.
18194
18195 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
18196
18197         * loader.c: fixed off by one error in loaded parameter names.
18198
18199 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
18200
18201         * marshal.c (mono_marshal_get_icall_wrapper): like
18202         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
18203         instead of a MonoMethod.
18204
18205 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18206
18207         * decimal.c: fixed bug #36537.
18208
18209 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18210
18211         * marshal.c: throw a missing method exception if a
18212         P/Invoke method is not found.
18213
18214 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18215
18216         * icall.c: allow a null this for constructors.
18217
18218 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18219
18220         * icall.c: raise the proper exceptions if the arguments to the
18221         internal Invoke are incorrect.
18222
18223 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18224
18225         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18226
18227 2003-01-03  Martin Baulig  <martin@ximian.com>
18228
18229         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18230
18231 2002-12-31  Martin Baulig  <martin@ximian.com>
18232
18233         * debug-mono-symfile.c: Completely rewrote the type section.
18234         Instead of using individual malloc()ed fields, we use one big
18235         continuous memory area and offsets into this area.
18236         See the comments in the source code for details.
18237
18238 2002-12-30  Martin Baulig  <martin@ximian.com>
18239
18240         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18241
18242 2002-12-30  Martin Baulig  <martin@ximian.com>
18243
18244         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18245         line number table in this data blob instead of using an external
18246         pointer.
18247
18248 2002-12-28  Martin Baulig  <martin@ximian.com>
18249
18250         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18251
18252 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18253
18254         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18255         as a boxed return type.
18256
18257 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18258
18259         * appdomain.c
18260         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18261         g_build_filename to properly get separators on the filename created.
18262
18263         * object.h: Small change, introduce MonoMarshalByRefObject to
18264         track the layout of that structure in the C# universe as we make
18265         changes there.
18266
18267 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18268
18269         * object.c: removed assert to allow static fields on interfaces.
18270         * loader.c: a TypeSpec may be used for any type, not just arrays.
18271
18272 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18273
18274         * class.c, class.h: added mono_class_array_element_size ().
18275         Ignore static methods in interfaces.
18276
18277 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18278
18279         * threads.c: fixed the build under cygwin.
18280
18281 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18282
18283         * reflection.c: handle nullref constants. Allocate keys for
18284         reflection handles with the GC.
18285
18286 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18287
18288         * threads.c, threads.h: added mono_thread_get_abort_signal()
18289         to get a suitable signal for thread abort.
18290
18291 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18292
18293         * metadata.c: fix handling of ExportedType table.
18294
18295 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18296
18297         * icall.c: added WriteWindowsDebugString internal call.
18298
18299 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18300
18301         * reflection.h: added fields to match C# implementation.
18302
18303 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18304
18305         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18306
18307 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18308
18309         * gc.h, gc-internal.h: Rename header for GC internal calls to
18310         gc-internal.h from gc.h as to not clash with Boehm GC having its
18311         header installed as <gc.h> in outside include paths.
18312         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18313         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18314
18315 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18316
18317         * icall.c: assign minor, build and revision in FillName.
18318
18319 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18320
18321         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18322         Added support for running code generated by Reflection.Emit.
18323
18324 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18325
18326         * appdomain.c: check for NULL argument in LoadFrom.
18327
18328 2002-12-10  Dick Porter  <dick@ximian.com>
18329
18330         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18331
18332 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18333
18334         * appdomain.c: fix buglet when building exe file name.  Handle full
18335         assembly name (needed after latest changes to AssemblyName).
18336         * image.c:
18337         (mono_image_close): free some hashtables.
18338
18339 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
18340
18341         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
18342         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
18343         on some systems (redhat 7.3) 
18344
18345 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
18346
18347         * threads.c: delete the critical section of a sync block,
18348         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18349
18350 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18351
18352         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18353
18354 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18355
18356         * appdomain.[ch]: handle the assembly preload event to try loading the
18357         assemblies using the paths we have in the current domain.
18358
18359         * assembly.[ch]: created an assembly preload hook that is called to try
18360         loading the assembly by other means that the ones provided here.
18361
18362         * domain.c: initialize the domain search path.
18363
18364         From now on, assemblies (TODO: except corlib and System) are loaded
18365         according to these rules when using mono_assembly_load ():
18366
18367                 1. It tries to load the assembly from the ApplicationBase
18368                 of the current domain appending .dll and .exe (TODO: have to
18369                 try loading from name/name.dll and name/name.exe).
18370
18371                 2. It tries the search path specified in PrivateBinPath for the
18372                 current domain (if any).
18373
18374                 3. Previous behavior.
18375
18376 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18377
18378         * icall.c: implemented GetInterfaceMap() related icall.
18379         * domain.c, loader.h: load MethodInfo in mono_defaults.
18380
18381 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18382
18383         * gc.c: disable the finalizer thread for now, untill all the issues
18384         with it are resolved.
18385
18386 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18387
18388         * string-icalls.c: handle embedded nulls in string ctor when the
18389         length is specified.
18390
18391 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18392
18393         * class.c: look for explicit interface implementation in parent
18394         classes, too.
18395
18396 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18397
18398         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18399
18400 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18401
18402         * gc.c: protect handles with a critical section.
18403
18404 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18405
18406         * icall.c:
18407         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18408         parameters. If no assembly specified, try getting the type from all
18409         the assemblies in the current domain, else, load the assembly and get
18410         the type from it.
18411
18412 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18413
18414         * marshal.c: applied patch from Aleksey Demakov that fixes
18415         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18416
18417 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18418
18419         * icall.c: fixed get_location.
18420
18421 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18422
18423         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18424         declarations to make it work with older gcc. 
18425
18426         * loader.c (mono_get_method): set signature->pinvoke for native calls
18427
18428 2002-11-20  Dick Porter  <dick@ximian.com>
18429
18430         * threads.c (mono_thread_init): Set the main thread's handle
18431
18432 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18433
18434         * gc.c: allow compilation without GC support. Changed to match the
18435         mono coding style.
18436
18437 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18438
18439         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18440
18441 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18442
18443         * reflection.c: set a public key token on the core assemblies.
18444
18445 2002-11-18  Dick Porter  <dick@ximian.com>
18446
18447         * threads.c: Split out some thread initialisation so that other
18448         files can set the start callback function.
18449
18450         * gc.c: Run finalisers in a separate thread, to avoid stack
18451         overflow.  Fixes bug 31333.
18452
18453         * appdomain.c: Set up GC finalisation thread.
18454
18455         * reflection.c: 
18456         * object.c: 
18457         * domain.c: Use gc.h macros for GC_malloc
18458         
18459 2002-11-15  Dick Porter  <dick@ximian.com>
18460
18461         * threadpool.c: 
18462         * threads.c:
18463         * appdomain.c: Removed mono_runtime_init_with_attach(),
18464         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
18465         merging the extra parameter with the existing function.  Removed
18466         unneeded code in mono_thread_attach().
18467
18468 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
18469
18470         * image.c (mono_image_loaded_by_guid): a method to get loaded
18471         images by guid. 
18472         (load_metadata_ptrs): we store the guid as string.
18473
18474 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
18475
18476         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
18477
18478         * metadata.c (mono_guid_to_string): imported method form Zoltan
18479         Varga (slightly modified)
18480
18481         * assembly.c (mono_assembly_open): load precompiled code
18482
18483         * loader.h (MonoMethod): we store the method token for use in the
18484         aot compiler. 
18485
18486 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18487
18488         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
18489         the hook function called when an assembly is loaded.
18490         
18491         * domain.c: Modified file.
18492         (mono_domain_assembly_load): removed hash table insertion of assemblies.
18493
18494         Fixes bug #33196.
18495
18496 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
18497
18498         * reflection.c: Map PEFileKind to the value expected by the WinNT
18499         image loader. 
18500
18501 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18502
18503         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
18504         Read until the buffer is filled completely.
18505
18506 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18507
18508         * icall.c: implemented MonoType.InternalGetEvent ().
18509
18510 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18511
18512         * appdomain.c: implemented InitAppDomainSetup. Delayed
18513         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
18514         the entry_assembly.
18515
18516         * assembly.c: base_dir is now an absolute path ending with
18517         G_DIR_SEPARATOR.
18518
18519         * icall.c: modified get_location according to the above changes.
18520
18521         * object.c: init AppDomain.SetupInformation for the default domain after
18522         we have the entry assembly.
18523
18524         * domain.c: when unloading a domain, setup = NULL.
18525
18526 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
18527
18528         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
18529
18530 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
18531
18532         * object.h, object.c: introduced mono_object_get_virtual_method ()
18533         to lookup the method invoked on an object when a callvirt is done on
18534         a method.
18535         * icall.c: make MethodInfo::Invoke() always do a virtual call.
18536
18537 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18538
18539         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
18540         current domain when loaded an assembly and failed to load it.
18541
18542         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
18543
18544 2002-10-31  Dick Porter  <dick@ximian.com>
18545
18546         * icall.c: 
18547         * file-io.h: 
18548         * file-io.c: Return the error status in a parameter, as the
18549         GetLastError() value has long since been blown away if we try and
18550         look it up in a subsequent internal call invocation.  Delete the
18551         GetLastError() internal call, because it's useless.
18552
18553 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
18554
18555         * class.[ch]: added cast_class to fix bug 29517
18556
18557 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
18558
18559         * marshal.c: create valid IL code in the filter clause:
18560         the new JIT is less forgiving:-)
18561
18562 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18563
18564         * icall.c: removed get_property internal call.
18565
18566 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
18567
18568         * appdomain.h domain.c: Added an ID to appdomains.
18569         
18570         * threads.c threads.h icall.c: Implement icall
18571         Thread:GetDomainID(), and remove unused icall 
18572         CurrentThreadDomain_internal.
18573
18574 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18575
18576         * icall.c: Don't recurse through the base types in GetConstructor.
18577         Fixes bug #32063. 
18578
18579 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18580
18581         * mempool.h, mempool.c: added mono_mempool_empty() and
18582         mono_mempool_stats().
18583
18584 2002-10-23  Dick Porter  <dick@ximian.com>
18585
18586         * file-io.c: 
18587         * file-io.h: 
18588         * icall.c: Added MonoIO.GetFileType internal call
18589
18590 2002-10-17  Dick Porter  <dick@ximian.com>
18591
18592         * appdomain.c (mono_runtime_cleanup): Don't signal the async
18593         delegate semaphore before waiting for all threads to finish,
18594         because new threads can also call async delegates.  Fixes bug
18595         32004.
18596
18597         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
18598         of 3 seconds, in case another async job is queued.  (This part is
18599         needed because the bug fix reintroduced the 3s exit lag.)  This
18600         makes the mono_runtime_shutdown flag superfluous.
18601
18602 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18603
18604         * reflection.c: include ehader size in method section headers.
18605         Really check for suplicated modules entries.
18606
18607 2002-10-17  Martin Baulig  <martin@gnome.org>
18608
18609         * debug-mono-symfile.c: Added back support for locals.
18610
18611 2002-10-14  Martin Baulig  <martin@gnome.org>
18612
18613         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
18614         MONO_TYPE_VOID.
18615
18616 2002-10-14  Martin Baulig  <martin@gnome.org>
18617
18618         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
18619         mono_class_get() instead of looking in the class cache. 
18620
18621 2002-10-13  Martin Baulig  <martin@gnome.org>
18622
18623         * debug-mono-symfile.c: Set version number to 28, include the
18624         signature in method names.
18625
18626 2002-10-13  Martin Baulig  <martin@gnome.org>
18627
18628         * debug-mono-symfile.h: Set version number to 27.
18629
18630 2002-10-11  Martin Baulig  <martin@gnome.org>
18631
18632         * gc.c: Don't register/unregister NULL pointers as disappearing links.
18633
18634 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18635
18636         * metadata.c, metadata.h: added helper function to allocate signatures.
18637
18638 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18639
18640         * icall.c: added internal call to get the location of machine.config.
18641
18642 2002-10-08  Martin Baulig  <martin@gnome.org>
18643
18644         * debug-mono-symfile.c: Ignore classes with a pending init for the
18645         moment.
18646
18647 2002-10-03  Dick Porter  <dick@ximian.com>
18648
18649         * threads.c: Freebsd pthread_t is a pointer
18650
18651 2002-10-03  Dick Porter  <dick@ximian.com>
18652
18653         * socket-io.c: Implemented GetHostName_internal
18654
18655 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18656
18657         * mono-config.c:
18658         (mono_config_parse_file): don't leak the text.
18659
18660 2002-10-02  Martin Baulig  <martin@gnome.org>
18661
18662         * debug-mono-symfile.c: Added support for methods.
18663
18664 2002-10-01  Martin Baulig  <martin@gnome.org>
18665
18666         * debug-mono-symfile.c: Don't emit methods and line numbers for
18667         the dynamic symbol file, just write the type table.  We can easily
18668         have an external helper program which creates a symbol file for an
18669         IL file.        
18670
18671 2002-10-01  Dick Porter  <dick@ximian.com>
18672
18673         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
18674         Only add the handle to the cleanup array when we're about to
18675         launch the thread.  Bug 31425 deadlocked when the test was run on
18676         mono under w32.
18677
18678 2002-10-01  Martin Baulig  <martin@gnome.org>
18679
18680         * debug-mono-symfile.c: Added support for properties.
18681
18682 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18683
18684         * reflection.c: unaligned store fix from Mark Crichton
18685         <crichton@gimp.org>.
18686
18687 2002-09-27  Martin Baulig  <martin@gnome.org>
18688
18689         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
18690         New interncall.
18691
18692 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18693
18694         * assembly.h, assembly.c: use a sane API to hook into the assembly
18695         loading process instead of a useless special-purpouse hack
18696         (ngen needs a hook, too, for example).
18697
18698 2002-09-27  Dick Porter  <dick@ximian.com>
18699
18700         * threads.c (mono_thread_init): Call GetCurrentProcess() so
18701         io-layer can set up some process handle info.  Not needed on w32,
18702         but doesn't hurt either.
18703
18704         * process.c: Pass the program name in the second parameter to
18705         CreateProcess, so the path is searched.  Include the working
18706         directory. Implemented process name, process enumeration, and some
18707         process detail internal calls.
18708         
18709         * icall.c: Added internal calls for process lookup, and some
18710         process details
18711
18712 2002-09-26  Martin Baulig  <martin@gnome.org>
18713
18714         * assembly.c (mono_install_open_assembly_hook): New global
18715         function to install a function to be invoked each time a new
18716         assembly is loaded.
18717         (mono_assembly_open): Run this callback function if set.
18718
18719         * debug-mono-symfile.c: Put back line numbers for the dynamic
18720         symbol file and also record the .il file as source file.  This
18721         allows us to install the temporary symbol file as `file.dbg' just
18722         like a compiler-generated one.
18723
18724 2002-09-26  Nick Zigarovich <nick@chemlab.org>
18725
18726         * Corrected typo in gc.c (BOHEM vs BOEHM).
18727
18728 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18729
18730         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
18731         GetProperties. Also avoid calling g_slist_length in GetProperties and
18732         GetMethods.
18733
18734 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18735
18736         * reflection.c: avoid unaligned stores (bug spotted by
18737         Mark Crichton  <crichton@gimp.org>).
18738
18739 2002-09-25  Martin Baulig  <martin@gnome.org>
18740
18741         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
18742         instead of guint64 for addresses and added prologue/epilogue info.
18743
18744 2002-09-25  Martin Baulig  <martin@gnome.org>
18745
18746         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
18747         store line number info.  For the dynamic symbol file, we only need
18748         to provide the JIT generated dynamic line number info for the dynamic
18749         symbol file.
18750
18751 2002-09-25  Martin Baulig  <martin@gnome.org>
18752
18753         * debug-mono-symfile.h: Incremented version number.
18754
18755 2002-09-24  Martin Baulig  <martin@gnome.org>
18756
18757         * class.c (mono_debugger_class_init_func): New global function
18758         pointer variable.
18759         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
18760         call it.
18761
18762         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
18763         function.  This is called via the mono_debugger_class_init_func
18764         hook to add all types to the dynamic type table.
18765         (ves_icall_MonoDebugger_GetType): New interncall to get a class
18766         from its metadata token.
18767
18768         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
18769         New interncall for the debugger.
18770
18771 2002-09-24  Nick Drochak <ndrochak@gol.com>
18772
18773         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
18774         before using it in case it is null.
18775         
18776 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18777
18778         * metadata.c: allow custom modifiers in local var signatures
18779         (bug spotted by Zoltan Varga).
18780
18781 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18782
18783         * class.c: deal with the <Module> class that may have a NULL vtable.
18784         Eliminate warnings.
18785
18786 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18787
18788         * image.c, image.h: more strong name helpers.
18789         * monosn.c: more work: convert pem keys to cryptoapi format.
18790
18791 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18792
18793         * string-icalls.c: speedup IndexOf.
18794
18795 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18796
18797         * icall.c: updates from Zoltan.2.Varga@nokia.com.
18798
18799 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18800
18801         * icall.c: cleanup: use mono_object_domain ().
18802
18803 2002-09-23  Martin Baulig  <martin@gnome.org>
18804
18805         * debug-mono-symfile.c: Improved type support.
18806
18807 2002-09-22  Martin Baulig  <martin@gnome.org>
18808
18809         * debug-mono-symfile.c: Added support for reference types and strings.
18810
18811 2002-09-22  Martin Baulig  <martin@gnome.org>
18812
18813         * debug-mono-symfile.c: Started to work on the type table.
18814
18815 2002-09-21  Martin Baulig  <martin@gnome.org>
18816
18817         * debug-mono-symfile.c: Largely reworked the symbol table format.
18818         The symbol table is now incrementally updated each time a new
18819         method is added.  We're now also using our own magic and version
18820         so that you don't need to recompile all your classes if the
18821         dynamic table changes.
18822         (mono_debug_update_mono_symbol_file): Removed.
18823         (mono_debug_symfile_add_method): New function to add a method.
18824
18825 2002-09-21  Martin Baulig  <martin@gnome.org>
18826
18827         * icall.c
18828         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
18829         New interncall.
18830
18831         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
18832         New interncall to get a method from its metadata token.
18833
18834 2002-09-21  Martin Baulig  <martin@gnome.org>
18835
18836         * debug-mono-symfile.c: Create type table.
18837
18838 2002-09-20  Martin Baulig  <martin@gnome.org>
18839
18840         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
18841
18842 2002-09-20  Martin Baulig  <martin@gnome.org>
18843
18844         * debug-mono-symfile.c: Provide information about params and locals.
18845
18846 2002-09-20  Martin Baulig  <martin@gnome.org>
18847
18848         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
18849         New interncall.
18850
18851         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
18852         interncall to get a method from its metadata token.
18853
18854 2002-09-20  Martin Baulig  <martin@gnome.org>
18855
18856         * debug-mono-symfile.c: Added a few checks for method->header
18857         being non-NULL.  This should never happen, but for the moment
18858         let's use a g_warning() rather than a g_assert().
18859
18860 2002-09-19  Mark Crichton  <crichton@gimp.org>
18861
18862         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
18863         even if support for it isn't present.  Added an #ifdef to fix this.
18864
18865         * socket-io.c: Added checks back for Solaris support.
18866
18867 2002-09-19  Martin Baulig  <martin@gnome.org>
18868
18869         * debug-mono-symfile.c (read_string, write_string): Reflect latest
18870         changes in the symbol file format.
18871
18872 2002-09-18  Martin Baulig  <martin@gnome.org>
18873
18874         * debug-mono-symfile.c: Set version number to 21.
18875
18876 2002-09-18  Dick Porter  <dick@ximian.com>
18877
18878         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
18879         on netbsd.  Fixes bug 30051.
18880
18881 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18882
18883         * reflection.c:
18884         (set_version_from_string): little fix.
18885
18886 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18887
18888         * monosn.c, Makefile.am: added strong name utility.
18889         * reflection.h, reflection.c: implemented delayed signing,
18890         locale, version and hash id assembly attributes.
18891
18892 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18893
18894         * loader.c, metadata.c: load param attributes in signatures.
18895
18896 2002-09-16  Martin Baulig  <martin@gnome.org>
18897
18898         * debug-mono-symfile.c: Added string table with all method names.
18899
18900 2002-09-14  Martin Baulig  <martin@gnome.org>
18901
18902         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
18903         fast method lookup.
18904
18905 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18906
18907         * reflection.c: record the public key token of referenced assemblies.
18908
18909 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18910
18911         * image.c, image.h: added functions to get the strong name and the
18912         public key of an assembly.
18913         * pedump.c: use them.
18914
18915 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
18916
18917         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
18918
18919 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
18920
18921         * marshal.c (mono_marshal_get_managed_wrapper): Added
18922         MONO_TYPE_BOOLEAN 
18923
18924 2002-09-11  Martin Baulig  <martin@gnome.org>
18925
18926         * gc.c: Call GC_unregister_disappearing_link() on all links when
18927         finalizing them, this is necessary to aviod a crash in boehm's
18928         finalize handler.
18929
18930 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18931
18932         * gc.c: handle GetTarget for finalized objects spotted and fixed by
18933         nick@chemlab.org.
18934
18935 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18936
18937         * icall.c: implemented MonoType::Module.
18938         * reflection.c, reflection.h: mono_module_get_object () from
18939         Tomi Pakarinen <tomi.pakarinen@welho.com>.
18940
18941 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18942
18943         * icall.c: ignore overridden methods in GetMethods ().
18944         Fix for FieldInfo::SetValue().
18945         * object.c: handle float/double in runtime invoke.
18946
18947 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18948
18949         * object.c: allow a constructor to be called again on an object.
18950
18951 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18952
18953         * class.h, class.c: move field layout code to it's own function and
18954         export it. Get an interface id earlier. Move fields in MonoClass
18955         so they are more cache friendly and align the bitfields.
18956         * loader.c: temporary handle get_param_names() for a runtime method.
18957         * reflection.c, reflection.h: more code to handle runtime creation of
18958         types.
18959
18960 2002-09-09  Martin Baulig  <martin@gnome.org>
18961
18962         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
18963         signature with the pinvoke field being set for the actual call.
18964
18965 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18966
18967         * icall.c: removed some unused icalls. Start of map of glib charsets
18968         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
18969
18970 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18971
18972         * debug-helpers.c: break infinite loop (found and fixed by
18973         Holger Arnold <harnold@gmx.de>).
18974
18975 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18976
18977         * icall.c: target may be null in create_delegate.
18978
18979 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18980
18981         * marshal.c: handle a boolean return type.
18982
18983 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18984
18985         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
18986
18987 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18988
18989         * gc.c: fix weakreferences.
18990
18991 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18992
18993         * icall.c: added icall to get default codepage.
18994
18995 2002-09-03  Dick Porter  <dick@ximian.com>
18996
18997         * threads.h: 
18998         * threads.c: Use MonoThread instead of MonoObject where
18999         apropriate.
19000
19001         Store running thread objects in a hash table, so that we have all
19002         the info to hand when waiting for them to finish
19003         (means we don't need OpenThread() any more, so mingw builds should
19004         be fully functional again.)
19005
19006         * verify.c:
19007         * object.h: Added thread ID to MonoThread
19008
19009 2002-09-03  Martin Baulig  <martin@gnome.org>
19010
19011         * icall.c (System.Reflection.Assembly::get_location): New interncall.
19012
19013 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19014
19015         * icall.c: fixed leak in get_temp_path. Thanks lupus.
19016
19017 2002-09-03  Martin Baulig  <martin@gnome.org>
19018
19019         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
19020         argument to store the end address of the disassembled instruction.
19021
19022         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
19023         here from debug-symfile.h.
19024         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
19025         JIT into this struct.
19026         (MonoSymbolFile): Added `char *image_file' field.
19027         (MonoDebugGetMethodFunc): Removed.
19028         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
19029         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
19030         (mono_debug_find_method): New method.
19031
19032         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
19033         create a full symbol file.
19034         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
19035         and static symbol files.
19036         (mono_debug_find_method): The symbol file keeps an internal method hash,
19037         call this to get a MonoDebugMethodInfo from a MonoMethod.
19038
19039         * debug-symfile.[ch]: Removed.
19040
19041 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
19042
19043         * image.c (do_mono_image_open): Remove linker version check.
19044
19045 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
19046
19047         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
19048         wrappers for instance methods.
19049         
19050 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19051
19052         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
19053
19054 2002-08-28  Dick Porter  <dick@ximian.com>
19055
19056         * Makefile.am: Export HOST_CC for w32 builds
19057
19058 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19059
19060         * file-io.c process.c: MonoString are null terminated, no
19061         need for mono_string_to_utf16() anymore.
19062
19063 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19064
19065         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
19066
19067 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
19068
19069         * icall.c, reflection.h: speedup System.MonoType.
19070
19071 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19072
19073         * reflection.c: allow null as the value of a string argument in
19074         custom attributes constructors.
19075
19076 2002-08-27  Martin Baulig  <martin@gnome.org>
19077
19078         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
19079         `trampoline_address' field.
19080
19081 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
19082
19083         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
19084         check (fixes bug #29486) 
19085
19086 2002-08-27  Martin Baulig  <martin@gnome.org>
19087
19088         * debug-mono-symfile.c: Changed the file format in a way that allows us
19089         open it read-only and to use a specially malloced area for all the
19090         dynamic data.  We can now also generate a symbol file on-the-fly if we're
19091         debugging IL code and there is no MCS generated symbol file for it.
19092
19093 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19094
19095         * object.c: added a define for a good string and array
19096         creation speedup (not enabled by default because we need to deal with
19097         the synch stuff).
19098
19099 2002-08-26  Martin Baulig  <martin@gnome.org>
19100
19101         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
19102         function to create a dynamic symbol file.  This is used by the
19103         debugger to create a symbol file for IL code on-the-fly.
19104
19105 2002-08-26  Martin Baulig  <martin@gnome.org>
19106
19107         * loader.c (mono_lookup_pinvoke_call): Include the error message
19108         from g_module_error() in the error message.
19109
19110 2002-08-24  Martin Baulig  <martin@gnome.org>
19111
19112         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
19113         function to update the symbol file.  The symbol file is mmap()ed
19114         writable, but private.  This allows us to install the symbol file
19115         together with the assembly.
19116
19117 2002-08-24  Martin Baulig  <martin@gnome.org>
19118
19119         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
19120         but they can read the new symbol file format which mcs is now creating.
19121
19122         * debug-symfile.c (mono_debug_find_source_location): Moved to
19123         debug-mono-symfile.c; this is now operating on the new symbol file.
19124
19125 2002-08-23  Martin Baulig  <martin@gnome.org>
19126
19127         * debug-helpers.c (mono_method_desc_from_method): New function to get
19128         a MonoMethodDesc from a MonoMethod.
19129
19130 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19131
19132         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
19133         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
19134
19135 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19136
19137         * string-icalls.[ch]: make helper methods static.
19138
19139 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19140
19141         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
19142         types to it and to SetValueInternal.
19143
19144         * object.c: Moved handle_enum label to its proper place. This was the
19145         f... bug! ;-)
19146
19147         This time i compiled mcs and gtk-sharp and they both work.
19148
19149 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19150
19151         * icall.c: reverted partially my previous patch until 
19152         object.c:set_value handles enums correcly.
19153
19154 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19155
19156         * icall.c:
19157         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
19158         (ves_icall_System_Environment_get_MachineName): removed warning when
19159         compiling under cygwin.
19160
19161 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19162
19163         * object.c: fixed field_get_value() for reference types.
19164
19165 2002-08-22  Dick Porter  <dick@ximian.com>
19166
19167         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
19168         Don't free a buffer while it's still needed.  Patch from Jonathan
19169         Liger <Jonathan.liger@wanadoo.fr>
19170
19171 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
19172
19173         * icall.c (ves_icall_System_Environment_get_Platform): Add new
19174         internal call.
19175
19176 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
19177
19178         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
19179         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
19180
19181         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
19182         we call unmanaged code which throws exceptions.
19183
19184 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19185
19186         * appdomain.h: added per-domain entry_assembly.
19187         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
19188         arguments.
19189         * icall.c: Assembly::GetEntryAssembly icall.
19190         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
19191         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
19192
19193 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19194
19195         * appdomain.h, gc.c: added mono_domain_finalize ().
19196
19197 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19198
19199         * object.c:
19200         (mono_print_unhandled_exception): changed g_warning by g_printerr
19201         because g_log has a 1024 characters limit (yeah, i got a big stack
19202         trace). Don't print exception name, that should be in ToString 
19203         returned string.
19204
19205 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19206
19207         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19208         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19209
19210 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19211
19212         * object.c:
19213         (mono_print_unhandled_exception): after previous commit, i realized
19214         that MS calls ToString on the exception. I changed this function to
19215         do that. This way we get stack_trace for free.
19216
19217 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19218
19219         * object.c:
19220         (mono_print_unhandled_exception): invoke Message property instead of
19221         getting 'message' field from Exception. Don't allocate memory for
19222         'trace' and 'message' if not needed.
19223
19224 2002-08-18  Dick Porter  <dick@ximian.com>
19225
19226         * unicode.c: Fix asserts to match Encoder.cs checks
19227
19228 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19229
19230         * marshal.c: fix unaligned store issue and a few wrong
19231         opcode argument types.
19232
19233 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19234
19235         * icall.c: added GetUninitializedObjectInternal internal call.
19236
19237 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19238
19239         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19240         to the right domain.
19241
19242 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19243
19244         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19245
19246         * class.c (class_compute_field_layout): set blittable to false for Strings
19247
19248         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19249
19250 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19251
19252         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19253         first chunk of code to create types at runtime. Code to
19254         handle ReflectedType/DeclaringType. Make reflection handles
19255         domain specific.
19256
19257 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19258
19259         * class.c: set correct name in arrays.
19260
19261 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19262
19263         * appdomain.c (mono_domain_transfer_object): make it work with
19264         valuetypes. bug fixes.
19265
19266 2002-08-12  Dick Porter  <dick@ximian.com>
19267
19268         * object.h: Rename some parameters to avoid c++ keywords (Patch
19269         from Joseph Wenninger <kde@jowenn.at>)
19270
19271 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19272
19273         * icall.c: added icall to implement Assembly.GetFile*.
19274
19275 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19276
19277         * reflection.h, reflection.c: code to embed managed resources.
19278
19279 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19280
19281         * class.c: move all the type size stuff into
19282         class_compute_field_layout().
19283
19284 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19285
19286         * class.c: ensure enums have always the correct instance size.
19287         * unicode.c: remove wrong assert.
19288
19289 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19290
19291         * assembly.c: fix mem corruption issue.
19292         * image.h, image.c: added mono_image_get_resource () to access
19293         managed resources.
19294         * icall.c: implemented Assembly.EntryPoint property and some
19295         Managed Resources related internalcalls.
19296
19297
19298 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19299
19300         * image.c, image.h: impemented mono_image_get_entry_point ().
19301         * appdomain.c: use mono_image_get_entry_point.
19302
19303 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19304
19305         * reflection.c: support the object type argument when loading
19306         custom attributes.
19307
19308 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19309
19310         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19311         String as return type.
19312
19313 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19314
19315         * reflection.c: fix encoding of named args for custom attrs to match
19316         the ms implementation. Read them back when instantiating custom
19317         attributes.
19318
19319 2002-08-02  Radek Doulik  <rodo@ximian.com>
19320
19321         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19322         by Dietmar as quick fix
19323         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19324         16 as stack size, used on more places as quick fix before Dietmar
19325         will fix it properly
19326
19327 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19328
19329         * object.h, object.c: added accessors for fields and properties.
19330
19331 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19332
19333         * class.c, class.h: made mono_class_get_field_from_name ()
19334         loop on parent types.
19335         Added mono_class_get_property_from_name ().
19336
19337 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19338
19339         * class.c, class.h: move the code to setup the type vtable in its own
19340         function so that it can be reused also for types created at runtime.
19341         Eliminate the "class" identifier from the header file.
19342         * reflection.c: setup the vtable for enums so that we can create
19343         objects for use in SetConstant ().
19344
19345 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
19346
19347         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
19348         instead of the delegate itself as this pointer (bug #28383)
19349
19350 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19351
19352         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19353         conversions.
19354
19355 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19356
19357         * loader.c: don't set the pinvoke bit on icalls.
19358
19359 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19360
19361         * debug-helpers.c (mono_method_full_name): only print a number to
19362         indicate wrapper type (so that the output is more readable in traces).
19363
19364 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19365
19366         * class.c (mono_class_init): include method override patch from Paolo
19367
19368 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19369
19370         * icall.c: fixed GetTypeCode().
19371
19372 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19373
19374         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19375         use real delegate invoke function to make it work with multicast
19376         delegates (fix bug# 28291).
19377
19378 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19379
19380         * object.c: load constant strings.
19381
19382 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19383
19384         * reflection.c: no magic numbers.
19385         * tabledefs.h: security action enum.
19386
19387 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19388
19389         * assembly.c: fix possible memory corruption.
19390
19391 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19392
19393         * reflection.h, reflection.c: added support for linking resources.
19394         * verify.c: check we have an updated corlib.
19395
19396 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19397
19398         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19399         string arrays.
19400         (mono_marshal_string_array): null terminate unmanaged string arrays.
19401         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19402
19403 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19404
19405         * icall.c: Type.GetType () can now return also types from the
19406         calling assembly.
19407
19408 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19409
19410         * loader.h, loader.c: stack walking support.
19411         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19412         GetCallingAssembly.
19413
19414 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19415
19416         * marshal.c: added optimisations for blittable types 
19417
19418         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19419         (mono_class_setup_mono_type): set blittable attribute for single
19420         and double.
19421
19422         * marshal.c (mono_string_utf8_to_builder): impl.
19423         (mono_string_builder_to_utf8): impl.
19424         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19425
19426 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19427
19428         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19429         (mono_marshal_get_managed_wrapper): impl. byref types
19430
19431 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19432
19433         * icall.c:
19434         (search_method): don't display debug message. 
19435
19436 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19437
19438         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19439
19440 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19441
19442         * appdomain.c: set the missing filename when throwing exception.
19443
19444 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19445
19446         * metadata.c (mono_type_size): code cleanup
19447         (mono_type_stack_size): removed some test code
19448
19449 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
19450
19451         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
19452         mono_get_exception_file_not_found now.
19453
19454         * exception.c (mono_exception_from_name_two_strings): New version
19455         that will call a constructor with two string arguments. 
19456         (mono_get_exception_file_not_found): New helper routine, used to
19457         report file-not-found errors.
19458
19459 2002-07-20  Dick Porter  <dick@ximian.com>
19460
19461         * process.h:
19462         * process.c: Pass file handles to CreateProcess
19463         
19464         * icall.c:
19465         * file-io.h:
19466         * file-io.c: Implemented CreatePipe
19467
19468 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19469
19470         * metadata.c (mono_get_param_info): set alignment for value types
19471
19472 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19473
19474         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
19475         Constify mono_domain_assembly_open().
19476         * loader.c: handle null namespace in icalls.
19477
19478 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19479
19480         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
19481         (emit_str_to_ptr_conv): marshal object as structs
19482
19483         * metadata.c (mono_type_to_unmanaged): marshal object as structs
19484
19485         * marshal.c (mono_marshal_get_runtime_invoke): support value types
19486
19487 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
19488
19489         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
19490         (mono_marshal_get_native_wrapper): we an now return value types
19491
19492 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19493
19494         * verify.c: more checks implemented.
19495
19496 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
19497
19498         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
19499         (fix bug #27695)
19500         (mono_marshal_get_native_wrapper): allow byref arguments
19501         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
19502         impl. PtrToStringXXX methods
19503         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
19504         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
19505         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
19506         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
19507         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
19508
19509 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19510
19511         * reflection.c: fix buglet in parsing an assembly name.
19512
19513 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19514
19515         * marshal.c (emit_ptr_to_str_conv): first impl.
19516
19517 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19518
19519         * object.c, class.h: cache the vtable in the class as suggested by
19520         vargaz@freemail.hu (Zoltan Varga).
19521
19522 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19523
19524         * class.h, loader.c: added mono_field_from_token().
19525         * verify.c: first cut of type checking code.
19526
19527 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19528
19529         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
19530
19531 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
19532
19533         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
19534         (fix bug #27782)
19535         (mono_marshal_get_remoting_invoke): impl.
19536         (mono_delegate_begin_invoke): impl.
19537         (mono_mb_emit_save_args): impl.
19538         (mono_delegate_end_invoke): impl.
19539         (mono_marshal_get_delegate_begin_invoke):
19540         (mono_marshal_get_delegate_end_invoke):
19541         (mono_marshal_get_delegate_invoke): generate a special name for
19542         those methods (including the signature) and associate them whith
19543         the delegate class. 
19544
19545 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
19546
19547         * reflection.[ch]: 
19548         (mono_reflection_type_from_name): now it has a MonoImage parameter
19549         which is used as the default image to search the type in. If the image
19550         is NULL or getting the type from it fails, it defaults to corlib.
19551
19552         * icall.c: changed 1 call to mono_reflection_type_from_name to match
19553         new parameter.
19554
19555 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19556
19557         * reflection.c: update the parameter table index.
19558
19559 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19560
19561         * domain.c: don't include the mark byte in the string hash.
19562
19563 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19564
19565         * icall.cs: icall for Type.GetTypeCode ().
19566         * verify: a couple of fixes and disabled local initialization checks.
19567
19568 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
19569
19570         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
19571
19572         * debug-helpers.c (mono_method_full_name): print the type of the
19573         runtime wrapper
19574
19575         * metadata.c (mono_signature_hash): a hash function for signatures
19576         (mono_signature_hash): better hash algorithm
19577
19578         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
19579
19580         * debug-helpers.c (mono_method_full_name): this can now generate
19581         method names with signatures
19582
19583         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
19584         method dont have this pointers.
19585
19586 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19587
19588         * reflection.c: fixup typebuilder tokens.
19589         * image.c: fix buglet.
19590         * marshal.h: remove whitespace.
19591         * metadata.h, metadata.c: reinstate code that was removed.
19592         * verify.c: handle catch directives and fix another couple of bugs.
19593
19594 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
19595
19596         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
19597         (mono_marshal_get_native_wrapper): make it comp. with the old code
19598         (mono_marshal_get_native_wrapper): support boolean
19599         (mono_marshal_get_managed_wrapper): support more types
19600
19601 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
19602
19603         * class.c (class_compute_field_layout): compute class->blittable attribute.
19604
19605 2002-07-09  Dick Porter  <dick@ximian.com>
19606
19607         * threads.c: Make the thread cleaning up cope with threads that
19608         call ExitThread()
19609
19610 2002-07-08  Radek Doulik  <rodo@ximian.com>
19611
19612         * reflection.c (method_encode_code): use non-translated values to
19613         compute finally_start, this fixes exception handling on ppc, yay!
19614
19615         * decimal.h (struct signscale): fix endianess
19616
19617 2002-07-07  Radek Doulik  <rodo@ximian.com>
19618
19619         * reflection.c: swap box_val and not val
19620
19621 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19622
19623         * reflection.c, reflection.h: handle full assembly info in type name.
19624         Handle Type arguments when loading custom attributes.
19625         * icall.c: updated to use new mono_reflection_type_from_name () method.
19626
19627 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19628
19629         * loader.c:
19630         (method_from_memberref): also print assembly name when method not found.
19631
19632 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19633
19634         * icall.c:
19635         (ves_icall_TypeGetProperties): fixed bug #27473. 
19636
19637 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19638
19639         * reflection.c: display image name and token when cannot find the
19640         .ctor for an attribute.
19641
19642 2002-07-05  Martin Baulig  <martin@gnome.org>
19643
19644         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19645
19646 2002-07-04  Dick Porter  <dick@ximian.com>
19647
19648         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
19649         compile on mingw.  This will cause mingw builds to not wait for
19650         subthreads to terminate after the main thread does.  I've lodged a
19651         bug with the mingw developers for them to wrap OpenThread().
19652
19653 2002-07-03  Dick Porter  <dick@ximian.com>
19654
19655         * threads.c: Store thread IDs instead of handles, because
19656         GetCurrentThread() returns a pseudohandle and therefore stores
19657         useless values.  mono_thread_cleanup() continues checking the
19658         array of threads until it is empty, to cope with subthreads
19659         spawning new threads after the main thread has finished.
19660
19661         * profiler.h:
19662         * profiler.c:
19663         * profiler-private.h: Pass the thread ID to thread profiler
19664         functions, instead of a handle
19665
19666 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19667
19668         * verify.c: fixes to make it more usable.
19669         * pedump.c: added --verify code to verify IL code in an assembly.
19670
19671 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19672
19673         * reflection.c: turn errors into warnings to allow compiling corlib.
19674
19675 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19676
19677         * reflection.c: add special cases to compile corlib.
19678
19679 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19680
19681         * reflection.c: handle properties with only a set method.
19682
19683 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19684
19685         * opcodes.h: add enum with opcodes in opval order.
19686
19687 2002-07-01  Dick Porter  <dick@ximian.com>
19688         
19689         * object.h:
19690         * object.c (mono_runtime_run_main): Removed unneeded argument
19691
19692 2002-06-28  Martin Baulig  <martin@gnome.org>
19693
19694         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19695
19696 2002-06-27  Dick Porter  <dick@ximian.com>
19697
19698         * threads.c: Store the handle in both the parent thread and in the
19699         subthread, to minimise the time between starting a new thread and
19700         storing its ID.
19701
19702 2002-06-26  Dick Porter  <dick@ximian.com>
19703
19704         * appdomain.c (mono_runtime_cleanup): Close the socket library
19705         after all the threads have finished, not before
19706
19707 2002-06-26  Martin Baulig  <martin@gnome.org>
19708
19709         * debug-symfile.c (mono_debug_find_source_location): Added
19710         `guint32 *line_number' argument.  If it's not NULL, store the line number
19711         there and return the file name without the line number.
19712
19713 2002-06-25  Dick Porter  <dick@ximian.com>
19714
19715         * icall.c:
19716         * process.h:
19717         * process.c: Process forking and other support functions
19718
19719 2002-06-25  Dick Porter  <dick@ximian.com>
19720
19721         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
19722         things dont happen when the image is closed.
19723         (mono_image_lookup_resource): Walk the resource section looking
19724         for a particular entry
19725
19726         * cil-coff.h: PE resource section decoding
19727
19728 2002-06-25  Dick Porter  <dick@ximian.com>
19729         
19730         * assembly.h:
19731         * assembly.c: 
19732         (mono_assembly_foreach): Accessor functions to walk the list of
19733         loaded assemblies
19734         (mono_assembly_set_main):
19735         (mono_assembly_get_main): Process methods need to know which
19736         assembly is the "main" one
19737
19738         * object.c (mono_runtime_run_main): Record the main assembly
19739
19740         * debug-helpers.c: Fix typo
19741
19742 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
19743
19744         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
19745         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
19746
19747 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19748
19749         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
19750
19751 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
19752
19753         * image.c (do_mono_image_open): Initialize reference count,
19754         otherwise we leak the MonoImage.
19755
19756 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19757
19758         * reflection.c: small tweak to handle self-hosting.
19759
19760 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19761
19762         * reflection.c: fix type name parse code.
19763
19764 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19765
19766         * reflection.c: break out of the loop.
19767         * image.c: special case corlib.
19768
19769 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19770
19771         * reflection.c: add all the custom attrs at the end to ensure the
19772         ctors have been properly initialized when the attributes are defined
19773         in the current assembly.
19774
19775 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19776
19777         * reflection.c: handle correctly multiple-nested types.
19778
19779 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19780
19781         * row-indexes.h: fix typos.
19782         * reflection.c: adjust for typos and fix method_def_or_ref
19783         encoding in MethodImpl table.
19784
19785 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19786
19787         * reflection.c: fix entry point patching (thanks Serge!).
19788
19789 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
19790
19791         * verify.c: add check for System.Exception
19792
19793 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19794
19795         * image.c, class.c: minifix for code just c&p'ed.
19796         * reflection.c: warning fix.
19797         * object.h, loader.h, domain.c: load also StringBuilder.
19798
19799 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19800
19801         * marshal.h, marshal.c: some support code to handle complex marshaling.
19802
19803 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19804
19805         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
19806         Better signatures with vtable error dump.
19807
19808 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
19809
19810         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
19811
19812 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
19813
19814         * icall.c (ves_icall_Type_GetField): impl.
19815
19816 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19817
19818         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
19819         to retrieve a marshal description blob for a field or param.
19820
19821 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19822
19823         * reflection.h, reflection.c: change order of nested type emission
19824         to avoid table corruption. The NestedTypes table is sorted.
19825         * icall.c: change order of GetConstructor results to workaround mcs bug.
19826
19827 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19828
19829         * reflection.h, reflection.c: handle field and param marshal
19830         information.
19831
19832 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19833
19834         * icall.c, marshal.c marshal.h: more Marshal class implementation.
19835
19836 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19837
19838         * reflection.c: fix call convention.
19839
19840 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19841
19842         * reflection.h, reflection.c: mono_image_get_memberref_token()
19843         takes a type instead of a class, now. Added
19844         mono_image_get_array_token() to create tokens for the special
19845         multi-dim array methods.
19846
19847 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19848
19849         * assembly.c: handle modules (no assembly table). Split
19850         loading references in its own function.
19851         * class.c: handle moduleref resolution scope.
19852         * image.c, image.h: cache module name in image.
19853
19854 2002-06-07  Martin Baulig  <martin@gnome.org>
19855
19856         * reflection.c (mono_image_get_type_info): Only add a class layout entry
19857         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
19858
19859 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19860
19861         * icall.c: more signature fixes that used uint instead of int.
19862
19863 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19864
19865         * reflection.c: fixed signature of field refs.
19866
19867 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19868
19869         * class.c, reflection.c: handle typerefs of nested types
19870         (both on read and when writing files).
19871
19872 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19873
19874         * icall.c: fix method signatures that tried to workaround the previous
19875         typo, d'oh!
19876
19877 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19878
19879         * debug-helpers.c: fix typo.
19880
19881 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19882
19883         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
19884         rewrote the PE/COFF writing code (our programs are understood by the
19885         ms runtime, now).
19886
19887 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19888
19889         * gc.c, gc.h, icall.c: weakreference support.
19890
19891 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19892
19893         * Makefile.am, mono-config.c: use $(sysconfdir).
19894
19895 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19896
19897         * icall.c: changed default precision of Double.ToString() to 15.
19898         Fixed memory leak. Unified with Single.ToString.
19899
19900 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19901
19902         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
19903
19904 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19905
19906         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
19907         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
19908         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
19909         and myself.
19910
19911 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19912
19913         * debug-symfile.c, sysmath.c: yet more compilation fixes.
19914
19915 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19916
19917         * reflection.c, socket-io.c: more compilation fixes.
19918
19919 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19920
19921         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
19922         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
19923         unicode.c: warning and compiler compatibility fixes.
19924
19925 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19926
19927         * class.h, metadata.c: fixed warnings/compilation errors.
19928
19929 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19930
19931         * Makefile.am, mono-config.c, mono-config.h: configuration file
19932         support routines.
19933         * loader.c, loader.h: make Dll mapping configurable at runtime in the
19934         config file. Export methods to insert and lookup mappings.
19935
19936 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19937
19938         * reflection.c: handle types and boxed objects in custom attr
19939         constructors.
19940
19941 2002-05-30  Martin Baulig  <martin@gnome.org>
19942
19943         * debug-symfile.c
19944         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
19945
19946 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
19947
19948         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
19949         to lookup the implmap row for a P/Invoke method.
19950         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
19951         P/Invoke method from the runtime on an as needed basis.
19952
19953 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
19954
19955         * metadata.c (mono_metadata_parse_signature): impl.
19956
19957 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19958
19959         * class.c: handle .pack directive.
19960
19961 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19962
19963         * object.c: initialize static fields with RVA data.
19964
19965 2002-05-25  Martin Baulig  <martin@gnome.org>
19966
19967         * debug-symfile.c
19968         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
19969
19970 2002-05-24  Martin Baulig  <martin@gnome.org>
19971
19972         * debug-symfile.c
19973         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
19974         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
19975         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
19976
19977 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19978
19979         * object.c: special case string ctros in invoke.
19980         * gc.c: silly whitespace changes.
19981
19982 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
19983
19984         * threadpool.[ch]: impl. a threadpool that can
19985         be used by mint and mono.
19986
19987 2002-05-22  Martin Baulig  <martin@gnome.org>
19988
19989         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
19990         The first argument is now a `MonoReflectionModuleBuilder *', the return
19991         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
19992         `methods' field to get the method builder.  The `token' argument is the
19993         unfixed token.
19994
19995         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
19996         invalid characters instead of g_assert_not_reached()ing.  This seems
19997         to be the behaviour of mscorlib.
19998
19999 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
20000
20001         * object.c (mono_runtime_invoke_array): applied patch from Rachel
20002         Hestilow to fix bug #25104
20003
20004 2002-05-21  Martin Baulig  <martin@gnome.org>
20005
20006         * debug-symfile.c (mono_debug_find_source_location): New function.
20007         Looks up an IL offset in the line number table and returns the source
20008         location as a string.
20009
20010 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20011
20012         * icall.c:
20013         (mono_double_ToStringImpl): changed %f by %g until we have something
20014         better.
20015
20016 2002-05-21  Nick Drochak  <ndrochak@gol.com>
20017
20018         * icall.c : Use different name for Math.Pow's icall.  Needed to check
20019         parameters first in C#.
20020
20021 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20022
20023         * icall.c, reflection.h: added icall to get info about an event.
20024
20025 2002-05-20  Radek Doulik  <rodo@ximian.com>
20026
20027         * object.c (mono_value_box): don't use memcpy for boxing on BIG
20028         endian
20029         (mono_value_box): don't use memcpy for small sizes on
20030         architectures with unaligned access
20031
20032 2002-05-20  Martin Baulig  <martin@gnome.org>
20033
20034         * reflection.c (mono_reflection_setup_internal_class): Don't crash
20035         if `tb->parent == NULL'.
20036         (mono_reflection_create_internal_class): New function.  This is
20037         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
20038         for enum types.
20039
20040         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
20041         New interncall.
20042
20043 2002-05-19  Martin Baulig  <martin@gnome.org>
20044
20045         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
20046         argument to get the length, don't default to the array length.
20047
20048 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
20049
20050         * assembly.c (mono_assembly_setrootdir): New function used to
20051         override the MONO_ASSEMBLIES directory.
20052
20053 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20054
20055         * icall.c: ValueType_GetHashCode() initialize local var.
20056
20057 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20058
20059         * reflection.c: sort custom attributes table.
20060
20061 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20062
20063         * reflection.c: support named args in custom attributes (write support).
20064
20065 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20066
20067         * reflection.c: fix finally position calculation.
20068
20069 2002-05-15  Radek Doulik  <rodo@ximian.com>
20070
20071         * reflection.c: fixed endianess at many places
20072
20073         * icall.c (ves_icall_InitializeArray): comment out debug msg
20074
20075 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
20076
20077         * object.c (mono_unhandled_exception): new function to handle
20078         unhandled exceptions.
20079         (mono_unhandled_exception): call the UnhandledException event.
20080         (mono_runtime_delegate_invoke): impl.
20081
20082 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
20083
20084         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
20085         returns the RVA, not the direct pointer to the data. Handle the case
20086         when the class size is fixed.
20087
20088 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20089
20090         * reflection.c: fix some endianess issues.
20091
20092 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
20093
20094         * object.c (mono_runtime_invoke): is now able to catch exceptions.
20095
20096         * threads.c (mono_thread_init): added a callback which is invoked
20097         at thread start.
20098
20099 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20100         
20101         * icall.c: make GetHashCode return non-negative values.
20102
20103 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20104
20105         * object.c, icall.c, gc.c: revert to address-based hashcode.
20106
20107 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
20108
20109         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
20110
20111 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20112
20113         * icall.c, class.c: special case <Module>.
20114
20115 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
20116
20117         * icall.c: fix bug in GetNow().
20118
20119 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
20120
20121         * object.c (mono_runtime_class_init): make sure that we call all
20122         static class constructors.
20123
20124 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20125
20126         * reflection.c: sort methodsemantics table.
20127
20128 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20129
20130         * reflection.h, reflection.c: honour init locals setting.
20131
20132 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
20133
20134         * icall.c: copied Double ToStringImpl for Single ToStringImpl
20135
20136 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20137
20138         * reflection.c: support ContructorBuilders in attribute blob creation.
20139
20140 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20141
20142         * reflection.c: some changes to build a binary that can be run
20143         directly in windows.
20144
20145 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20146
20147         * loader.c: print a big message when an icall can't be found.
20148
20149 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20150
20151         * string-icalls.c: fix bug 24248.
20152
20153 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20154
20155         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
20156         icall.c, reflection.h: separate assembly loading by pathname and by
20157         assembly name. Use the MONO_PATH env var to search for assemblies.
20158
20159 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20160
20161         * assembly.c, image.h: add some support for assemblies
20162         with multiple modules.
20163         * class.c, class.h: export mono_class_from_typeref().
20164         * loader.c: remove duplicated code and use mono_class_from_typeref(),
20165         instead.
20166
20167 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20168
20169         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
20170         documentation says (the ECMA one is correct).
20171
20172 2002-05-02  Dick Porter  <dick@ximian.com>
20173
20174         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
20175         Don't name the synchronisation mutex.
20176
20177 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
20178
20179         * rand.c
20180         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
20181         Make the prototypes match.
20182         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
20183         Same.
20184
20185         * icall.c
20186         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
20187         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
20188         all systems have tm.tm_zone, so use strftime() with %Z to print
20189         the timezone abreviation into a temp string.
20190
20191         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
20192         rather than mono_array_addr() on a MonoString on Big Endian
20193         machines.
20194
20195 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
20196
20197         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
20198         fix bug 24041
20199
20200 2002-04-30  Dick Porter  <dick@ximian.com>
20201
20202         * socket-io.c: Cope with SOCKET being an integer rather than a
20203         pointer now.
20204
20205         * threads.c: Added Thread_free_internal, to deal with thread
20206         handle cleanup.  Moved calls to handle_store() and handle_remove()
20207         to start_wrapper(), so each can only be called once.  Allocate
20208         synchronisation blocks with GC_malloc(), and use GC finalisation
20209         to close the handles.
20210
20211         * icall.c: added System.Threading.Thread::Thread_free_internal
20212
20213 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20214
20215         * icall.c: support Environment.Exit, CommandLineArgs().
20216
20217 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20218
20219         * object.c, object.h: added mono_runtime_run_main () and
20220         mono_runtime_get_main_args () for use in System.Environment.
20221
20222 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20223
20224         * gc.c: fix thinko, enable actual finalization since the jit is now
20225         fixed.
20226
20227 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20228
20229         * gc.c, object.c: take into account that an object may be offset wrt the address
20230         returned by GC_malloc().
20231
20232 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20233
20234         * image.c: handle files without entries in the assembly table (modules).
20235
20236 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20237
20238         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20239         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20240         allowed to be null when it's System.Object class setup.
20241
20242 2002-04-27  Martin Baulig  <martin@gnome.org>
20243
20244         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20245         if `tb->parent == NULL' rather than crashing.
20246
20247 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20248
20249         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20250         calling acos() where asin() should have been called.
20251
20252 2002-04-26  Martin Baulig  <martin@gnome.org>
20253
20254         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20255         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20256         there's a subdirectory called `System', but we don't want to read that
20257         subdirectory as an assembly.
20258
20259 2002-04-25  Martin Baulig  <martin@gnome.org>
20260
20261         * debug-symfile.c: Reflect latest MonoString changes.
20262
20263 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20264
20265         * rand.c, rand.h: instance method icalls need to have an explicit
20266         this pointer as first argument in the C implementation.
20267
20268 2002-04-25  Nick Drochak <ndrochak@gol.com>
20269
20270         * icall.c: Fix typo in map for GetNonZeroBytes
20271
20272 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20273
20274         * string-icalls.c : String does now passes unit tests without any 
20275         errors, the following changes has been made:
20276         
20277         Implemented replace methods.
20278         Renaming of methods to (try) follow the standard.
20279         Fixed compare ordinal
20280         Made all memory allocated directly to function instead of via icall function.
20281         Small performance fix in is_in_array function
20282                         
20283  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20284
20285         c (mono_string_Internal_ctor_charp_int_int):
20286         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20287         sindex < 0, throw ArgumentOutOfRangeException instead of
20288         ArgumentNullException.
20289
20290         Added new check for length == 0, however
20291         I need to make it return String.Empty from the C code.
20292         
20293         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20294         that calculate the length for us here.
20295         
20296         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20297         mono_string_new_utf16 with mono_string_new, since value is utf8.
20298
20299 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20300
20301         * object.c: register the object for finalization if needed.
20302         Allocate one more char in the string for the terminating 0 char.
20303
20304 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20305
20306         * class.c, class.h, image.c: check if a type implemenst a destructor.
20307         Use the proper key for array class lookups.
20308         * icall.c: register the icalls in the System.GC class.
20309         * gc.c, gc.h: GC-related functions and icalls.
20310
20311 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20312
20313         * icall.c:
20314         * socket-io.c:
20315         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20316         changed a couple of free () by g_free ().
20317
20318         * decimal.c: one-liner in the comments for decimal2string ().
20319
20320 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20321
20322         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20323
20324 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20325
20326         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20327         * object.c (mono_runtime_invoke_array) : handle null in params
20328
20329 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20330
20331         * string-icalls.c: fixed bug in split (one off bug)
20332
20333 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20334
20335         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
20336         * icalls.c: added String::Equals as internal method
20337
20338 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20339
20340         * threads.c: fixed bug in the double interlocked functions
20341
20342 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
20343
20344         * threads.c: implemented all of the new interlocked icalls.
20345         * string-icalls.c: fix a bug in insert.
20346         * icalls.c: added the icalls for interlocked, removed old string functions.
20347         
20348 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20349
20350         * loader.c: fix off-by-one error when reading argument names.
20351
20352 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20353
20354         * profiler.c: win32 counter implementation (untested).
20355         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20356         (the latter needs testing and more complete impl. from win32 folks).
20357
20358 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20359
20360         * object.c: mono_array_new_full workaround mono_array_class_get
20361         problem.
20362
20363 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20364
20365         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20366         * object.h (mono_string_chars): Changed casting type.
20367
20368 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20369
20370         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20371                            method signatures to use gunichar2 instead of gint16.
20372
20373 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20374
20375         * object.h, object.c: domain-specific versions of mono_object_new and
20376         mono_array_new.
20377
20378 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20379
20380         * object.c: changed String layout
20381
20382         * string-icalls.c (mono_string_Internal_ctor_chara): added
20383         internal string constructors.
20384
20385 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20386
20387         * threads.c: pass 'this' to the thread start routine.
20388
20389 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20390
20391         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20392         InternalCompareStr don't call twice mono_string_cmp_char for the last
20393         character. Improved performance in mono_string_cmp_char.
20394
20395 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20396
20397         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20398         code into its own library: libmonoruntime.
20399
20400 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20401
20402         * object.h, object.c: changed array format so that szarrays do not
20403         require a bounds structure.
20404         * icall.c, appdomain.c: support for new szarray format.
20405
20406 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20407
20408         * metadata.c: compare also the retuns type when comparing signatures:
20409         we didn't do this as an optimization since really overloaded methods
20410         must differ also in the arguments, but this doesn't work with
20411         low-level IL code (or when using explicit conversion operators: see
20412         bug#23498 for an example).
20413
20414 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20415
20416         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20417
20418 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20419
20420         * icall.c: make MonoType::GetElementType its own icall.
20421
20422 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20423
20424         * icall.c: remove MonoMethod_get_Name().
20425         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20426         object.
20427
20428 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20429
20430         * string-icalls.c: optimized a few methods.
20431
20432 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20433
20434         * icall.c: added all new string internal calls
20435         * string-icalls.c: added, new string internal call implementation.
20436         * object.c: added mono_string_new_size for allocating a string a size
20437
20438 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20439
20440         * object.c (mono_object_isinst): use the same code as in the
20441         optimized x86 version.
20442
20443 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20444
20445         * profiler.c: TSC-based timer code (faster and more accurate).
20446         Not hooked up in configure, yet (set USE_X86TSC to 1).
20447
20448 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
20449
20450         * profiler.c, profiler.h: track time spent compiling methods.
20451         * threads.c: track thread creation/destruction.
20452
20453 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
20454
20455         * profiler.c, profiler.h, profiler-private.h: profiling interface
20456         and sample implementation. Moved here so that it can be used also by
20457         the jit.
20458
20459 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
20460
20461         * reflection.c, reflection.h: keep types and other handles separate in
20462         the hash tables for referred tokens. Add guid for modules.
20463
20464 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20465
20466         * assembly.c: fix bugs found with valgrind.
20467         * metadata.h, metadata.c: added mono_metadata_guid_heap().
20468
20469 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
20470
20471         * threads: added icall support for getting current domain for
20472                    the thread.
20473  
20474 2002-04-13  Martin Baulig  <martin@gnome.org>
20475
20476         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
20477         (MonoDebugVarInfo): Added `index' field for register based addresses.
20478         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
20479         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
20480         `MonoDebugVarInfo *params' and `guint32 this_offset' with
20481         `MonoDebugVarInfo *this_var'.
20482
20483         * debug-symfile.c (relocate_variable): New static function to write
20484         a location description for a local variable or method parameter.
20485
20486 2002-04-12  Martin Baulig  <martin@gnome.org>
20487
20488         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
20489         stack offset and begin/end scope address of a local variable.
20490         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
20491         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
20492         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
20493
20494         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
20495         Added new relocation types for start/end scope of a local variable.
20496
20497 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20498
20499         * object.h: add mono_object_domain() macro.
20500         * reflection.c: handle typespecs.
20501         * icall.c: MonoMethod::get_Name() implementation.
20502
20503 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20504
20505         * icall.c: String::GetHashCode() icall implementation.
20506
20507 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20508
20509         * icall.c: String::IndexOfAny icall.
20510         * object.c, object.h: make array->max_length more useful.
20511         Intrduced mono_object_class() and mono_string_length() macros.
20512
20513 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20514
20515         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
20516         instead of g_unichar_isdigit.
20517
20518 2002-04-11  Nick Drochak  <ndrochak@gol.com>
20519
20520         * icall.c: Implement a simple Double.ToString().
20521
20522 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20523
20524         * appdomain.h: only io-layer.h is supposed to be included.
20525         * icall.c: explicitly import environ. Fix warning.
20526
20527 2002-04-10  Nick Drochak  <ndrochak@gol.com>
20528
20529         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
20530                 return true even if it's not Daylight Savings time.
20531                 Only return false for the case where the function isn't
20532                 implemented for a plaform (read Windows).
20533
20534 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20535
20536         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
20537         data with a mutex.
20538
20539 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
20540
20541         * mempool.c (mono_mempool_alloc): only use g_malloc when
20542         absolutely necessary.
20543
20544 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20545
20546         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
20547
20548         * class.c (mono_class_vtable): use domain mempool to allocate vtable
20549         (mono_class_proxy_vtable): use domain mempool
20550
20551 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20552
20553         * appdomain.h, appdomain.c: split initialization that requires the
20554         execution engine support into mono_runtime_init().
20555
20556 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20557
20558         * class.c (mono_class_init): don't include vtable inside MonoClass
20559         to save some memory, gather some statistics.
20560         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
20561
20562 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20563
20564         * icall.c: internalcall implementation for ValueType.Equals().
20565
20566 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
20567
20568         * object.c (mono_message_init): moved 
20569         (mono_runtime_exec_main): new arch. independent impl.
20570         (mono_runtime_invoke_array): new method - like
20571         mono_runtime_invoke, but you can pass an array of objects.
20572         (mono_remoting_invoke): new arch. independent impl.
20573         (mono_message_invoke): new arch. independent impl.
20574         (mono_runtime_class_init): new arch. independent impl.
20575         (mono_runtime_object_init): new arch. independent impl.
20576
20577 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20578
20579         * metadata.c, object.c, reflection.c: documented the exported
20580         functions.
20581
20582 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20583
20584         * icall.c: simpler code to pass the assembly builder data to corlib.
20585         Implement GetNestedTypes() internalcall.
20586
20587 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20588
20589         * class.c: warn if a type can't be loaded.
20590
20591 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
20592
20593         * image.h: typedef MonoImageOpenStatus
20594         * types.h: removed unused file
20595         
20596 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
20597
20598         * icall.c: Enum_ToObject accepts enum value arguments.
20599
20600 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20601
20602         * class.c: move initialization of properties, events and nested
20603         classes, so that they happen for interfaces, too.
20604
20605 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20606
20607         * icall.c: cleanup some ugly casts in Array_SetValue*.
20608
20609 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20610
20611         * icall.c: the values array fro enums is of the correct type, now.
20612         Implement (correctly) getFullName instead of assQualifiedName for
20613         MonoType.
20614         * reflection.h, reflection.c: added mono_type_get_name ().
20615
20616 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20617
20618         * assembly.c, image.h: for each MonoImage, record from wich assembly
20619         it was loaded.
20620         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
20621         Make Type.Assembly work.
20622
20623 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
20624
20625         * debug-symfile.h: use char* instead of gpointer to avoid
20626         unnecessary casts.
20627
20628         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
20629
20630         * icall.c (ves_icall_InternalExecute): impl. FielSetter
20631         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
20632
20633 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
20634
20635         * icall.c (mono_message_init): impl. (code cleanup)
20636         (ves_icall_InternalExecute): impl. FieldGetter
20637
20638         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
20639         defined we call all (non-static)methods through the vtable. 
20640
20641 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
20642
20643         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
20644         finalizer even though the memory is still referenced (and the chunk of
20645         memory is not freed).
20646
20647 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20648
20649         * assembly.c: fix brokeness.
20650
20651 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
20652
20653         * class.c: kill some warnings. Check explicit interface method
20654         implementation also without considering the namespace.
20655         Load also literal strings in static class data.
20656
20657 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
20658
20659         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
20660         (default_assembly_name_resolver): Make the resolver take the
20661         "base" directory where the assembly was originally defined, so we
20662         can load DLLs that are in the same directory as the assembly that
20663         is being referenced.
20664
20665 2002-03-28  Dick Porter  <dick@ximian.com>
20666
20667         * file-io.h: 
20668         * file-io.c:
20669         * socket-io.c: 
20670         * unicode.h: 
20671         * unicode.c: Warning cleanups
20672
20673 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
20674
20675         * object.h, reflection.h: use the correct type instead of MonoObject.
20676
20677 2002-03-28  Martin Baulig  <martin@gnome.org>
20678
20679         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
20680         (mono_debug_update_symbol_file): Initialize classes if necessary.
20681
20682 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
20683
20684         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
20685         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
20686
20687 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
20688
20689         * assembly.h: fix function prototype.
20690         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
20691         * mono-endian.h: use const cast.
20692
20693 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20694
20695         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
20696
20697 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
20698
20699         * loader.c: don't assert when a typeref can't be loaded, give
20700         a chance to the runtime to trow an exception instead.
20701         * loader.h: fix warning.
20702
20703 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20704
20705         * class.c (mono_class_proxy_vtable): added proxy support
20706
20707 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
20708
20709         * icall.c: removed last of PAL calls, added System.Environment
20710         * file-io.h, file-io.c: MonoIO implementation
20711         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
20712
20713 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
20714
20715         * appdomain.c: do not use the byte marker in ldstr table lookup.
20716         * debug-helpers.c: allow two ':' to separate class and method name.
20717         * object.c: allocate arrays bounds with the GC, too.
20718         * verify: add a few more checks.
20719
20720 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
20721
20722         * reflection.c: output also literal strings. Allocate parameter data
20723         with GC_malloc() (thanks, Martin, for catching this!).
20724
20725 2002-03-26  Martin Baulig  <martin@gnome.org>
20726
20727         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
20728         include the `this' offset in the `param_offsets'.
20729
20730 2002-03-25  Martin Baulig  <martin@gnome.org>
20731
20732         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
20733         mono_debug_get_class() function to get the classes. Added new
20734         relocation types for arrays and strings.
20735         (mono_debug_get_class): New static function to search in all
20736         referenced assemblies for a metadata token.
20737
20738         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
20739
20740 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20741
20742         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
20743         hold gc-allocated objects. Make the string heap a stream like the
20744         others. Removed duplicated code when writing stream info.
20745         Added asserts to catch possible buffer overflows. Set the sorted map
20746         for tables that need sorting. Added some documentation.
20747
20748 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
20749
20750         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
20751         for interned strings and vtables.
20752
20753 2002-03-24  Martin Baulig  <martin@gnome.org>
20754
20755         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
20756         it in the array since it was created with g_slist_prepend().
20757
20758 2002-03-24  Martin Baulig  <martin@gnome.org>
20759
20760         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
20761         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
20762         (mono_debug_method_from_token): Renamed to
20763         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
20764         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
20765
20766         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
20767         relocation types.
20768
20769         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
20770
20771 2002-03-24  Martin Baulig  <martin@gnome.org>
20772
20773         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
20774         (mono_debug_method_from_token): New func.
20775
20776         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
20777         New interncall, calls mono_debug_local_type_from_signature().
20778         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
20779         calls mono_debug_method_from_token().
20780
20781 2002-03-23  Martin Baulig  <martin@gnome.org>
20782
20783         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
20784         specifies the number of bytes to be converted, not the array size.
20785         Return the number of chars, not the number of bytes.
20786         (ves_icall_iconv_get_chars): The `byteCount' argument
20787         specifies the number of bytes to be converted, not the array size.
20788
20789 2002-03-23  Martin Baulig  <martin@gnome.org>
20790
20791         * reflection.h (MonoReflectionSigHelper): New type.
20792
20793         * reflection.c (mono_reflection_sighelper_get_signature_local),
20794         (mono_reflection_sighelper_get_signature_local): New functions.
20795
20796         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
20797         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
20798         interncalls.
20799
20800 2002-03-23  Martin Baulig  <martin@gnome.org>
20801
20802         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
20803         is_writeable is set.
20804         (mono_raw_buffer_update): New function to write the modified map
20805         back to disk.
20806
20807         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
20808
20809         * debug-symfile.c (mono_debug_update_symbol_file): Call
20810         mono_raw_buffer_update() when done writing.
20811
20812 2002-03-23  Martin Baulig  <martin@gnome.org>
20813
20814         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
20815
20816         * debug-symfile.c: Added support for arguments and local variables.
20817
20818 2002-03-23  Dick Porter  <dick@ximian.com>
20819
20820         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
20821         protected by ifdefs, hence breaking the w32 build.
20822
20823 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20824
20825         * object.c: implement is_interned() the right way.
20826
20827 2002-03-21  Martin Baulig  <martin@gnome.org>
20828
20829         * debug-symfile.[ch]: New files to handle debugging information
20830         files. There's also support to dynamically update these symbol
20831         files to include machine dependent information.
20832
20833 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
20834
20835         * threads.c (mono_thread_create): new function to create thread
20836         from C
20837
20838 2002-03-20  Martin Baulig  <martin@gnome.org>
20839
20840         * icall.c (ves_icall_InternalInvoke): Create a new object if the
20841         method is a constructor.
20842         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
20843         points to ves_icall_InternalInvoke().
20844
20845 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
20846
20847         * file-io.c: Flush shouldn't throw exceptions.
20848
20849 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
20850
20851         * file-io.c: FileStream flush support; FileSetLength now
20852         restores file pointer.
20853
20854 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
20855
20856         * class.c: set image for pointer classes.
20857
20858 2002/03/19  Nick Drochak <ndrochak@gol.com>
20859
20860         * sysmath.c: Forgot one.
20861
20862 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
20863
20864         * sysmath.c: Avoid redefining existing names.
20865
20866 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
20867
20868         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
20869         handled by runtime as icall rather than dllimport from libm.so
20870         * file-io.c, file-io.h: fixed handle argument type.
20871
20872 2002-03-18  Dick Porter  <dick@ximian.com>
20873
20874         * reflection.c (mono_image_get_type_info): rename interface to
20875         iface, because of "#define interface struct" on windows.
20876
20877 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
20878
20879         * class.c, class.h: rename and export mono_ptr_class_get().
20880         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
20881         * reflection.c, reflection.h, icall.c: better/saner type name
20882         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
20883         method signatures.
20884
20885 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
20886
20887         * class.c (mono_class_init): removed hardcoded GHC_SLOT
20888
20889         * icall.c (ves_icall_InternalInvoke): impl.
20890
20891 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20892
20893         * reflection.c: output the interface map table, too.
20894
20895 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
20896
20897         * class.c (class_compute_field_layout): separate computation of 
20898         static field layout
20899
20900 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
20901
20902         * icall.c: added System.Buffer support.
20903         * file-io.c: moved file icalls from PAL to FileStream.
20904
20905 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
20906
20907         * icall.c (ves_icall_System_Object_GetHashCode): impl.
20908
20909 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
20910
20911         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
20912
20913 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20914
20915         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
20916
20917 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
20918
20919         * debug-helpers.{c,h}: moved here from monograph some useful functions
20920         to locate a method by name/signature in a class or image. Included
20921         also a small and flexible IL disassembler.
20922
20923 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20924
20925         * reflection.c: fixup tokens in methods with small header size, too.
20926
20927 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
20928
20929         * object.c (mono_string_to_utf8): remove assert(!error), instead
20930         print a warning. 
20931
20932 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
20933
20934         * icall.c: update to the new mono_Array_class_get interface.
20935
20936 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
20937
20938         * appdomain.c, object.c: Boehm-GC enable.
20939         * icall.c: make get_data_chunk() support split data requests.
20940         Ensure a class is initialized in more cases. Return only the first
20941         property found in GetProperties() or the compiler gets confused. 
20942         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
20943         * reflection.h, reflection.c: add fixup mechanism for field and method
20944         tokens. Initialize assembly->typeref in a single place. Output
20945         properties after events. Support custom attributes for events, too.
20946         Typo fix for paramter custom attrs.
20947
20948 2002-03-07  Martin Baulig  <martin@gnome.org>
20949
20950         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
20951
20952 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
20953
20954         * class.c (mono_array_class_get): fix. for multi. dim. arrays
20955
20956 2002-03-06  Martin Baulig  <martin@gnome.org>
20957
20958         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
20959         non-zero lower bounds. See testcases #F10-#F13.
20960
20961 2002-03-05  Martin Baulig  <martin@gnome.org>
20962
20963         * exception.c (mono_get_exception_argument_out_of_range): New exception.
20964
20965         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
20966         ves_icall_System_Array_GetValue(), only calculate the absolute array position
20967         here.
20968         (ves_icall_System_Array_SetValue): Likewise.
20969         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
20970         as argument and does the actual work. This function is used when copying a
20971         multi-dimensional array.
20972         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
20973         now do all the widening conversions of value types.
20974         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
20975
20976 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20977
20978         * class.c: remove some magic numbers and use the smbolic names,
20979         instead. Added init_events() to load event info at class init time.
20980         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
20981         and mono_metadata_methods_from_event().
20982         * reflection.h, reflection.c: added support for writing out the evnets
20983         related information.
20984
20985 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
20986
20987         * reflection.h, icall.c: use a different method (GetInterfaces)
20988         to gather interface info and add isbyref, isprimitive and
20989         ispointer to the ves_icall_get_type_info() return value.
20990
20991 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
20992
20993         * class.h: stared adding support for events.
20994         * icall.c: split find_members implementation. Added debug icall to get
20995         the address of an object.
20996         * reflection.c: handle TypeBuilders in mono_type_get_object().
20997
20998 2002-03-01  Martin Baulig  <martin@gnome.org>
20999
21000         * icall.c (ves_icall_System_Array_GetLength): This must throw an
21001         ArgumentOutOfRangeException(), not an ArgumentException().
21002         (ves_icall_System_Array_GetLowerBound): Likewise.
21003         (ves_icall_System_Array_GetValue): Improved argument checking.
21004         (ves_icall_System_Array_SetValue): Improved argument checking.
21005
21006 2002-03-01  Martin Baulig  <martin@gnome.org>
21007
21008         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
21009         called with invalid arguments rather than just dying with g_assert().
21010         (ves_icall_System_Array_SetValue): Likewise.
21011         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
21012         raise a NotImplementedException instead.
21013         (ves_icall_System_Array_GetLength): Added argument checking.
21014         (ves_icall_System_Array_GetLowerBound): Added argument checking.
21015
21016 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
21017
21018         * object.h (mono_assert): new macros mono_assert and
21019         mono_assert_not_reached
21020
21021 2002-02-28  Martin Baulig  <martin@gnome.org>
21022
21023         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
21024         and "System::String::IsInterned" to "System::String::_IsInterned".
21025
21026 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
21027
21028         * icall.c: remove hacks for typebuilder. Added icall to create a
21029         modified type from a tybebuilder.
21030         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
21031         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
21032         to create a backing MonoClass for a TypeBuilder.
21033
21034 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21035
21036         * class.c, class.h: more refactoring of class init.
21037         Export mono_class_setup_mono_type() and mono_class_setup_parent().
21038
21039 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
21040
21041         * marshal.c, marshal.h: start of marshaling interface.
21042
21043 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21044
21045         * icall.c: fix order in assembly qualified name icall.
21046
21047 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21048
21049         * class.c: do not free str, since we store it in the hash table.
21050         * reflection.h: add label field to MonoILExceptionInfo.
21051         * reflection.c: handle references to more than one assembly. Handle
21052         case when there isn't a module created in the assembly.
21053
21054 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21055
21056         * class.c: Fix typo. Start refactoring of class init code.
21057
21058 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21059
21060         * appdomain.c: exit with 1 on error.
21061         * class.c: we already have the name in MonoClassField.
21062         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
21063         MonoStreamHeader instead of an offset of image->raw_metadata.
21064
21065 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
21066
21067         * appdomain.c (mono_init): Be even more descriptive about the error.
21068
21069 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
21070
21071         * appdomain.c: give the user an informative message when corlib can't
21072         be loaded.
21073
21074 2002-02-26  Martin Baulig  <martin@gnome.org>
21075
21076         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21077         New icall to get the time zone data.
21078
21079 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21080
21081         * reflection.c: set virtual and raw size of section correctly.
21082         * threads.c: transfer domain information to newly created threads.
21083
21084 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21085
21086         * class.c: when instancing a class in a domain, load the default
21087         vaules for static fields from the constant table. Fix System.Enum to
21088         not be an enum.
21089         * icall.c: implement Object::GetType() internalcall. Implemented
21090         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
21091         Fixed checking of binding flags in find_members().
21092         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
21093         * reflection.c: handle enumerations when writing to the constant
21094         table. Use a different object cache for types.
21095
21096
21097 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
21098
21099         * object.c (mono_object_isinst): fix for arrays
21100
21101         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
21102
21103 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21104
21105         * object.c: don't use mprotect ()  and fix intern pool hash table
21106         lookup for big endian systems.
21107
21108 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21109
21110         * icall.c: change type_is_subtype_of () signature.
21111
21112 2002-02-21  Mark Crichton  <crichton@gimp.org>
21113
21114         * rand.c, rand.h: Added random number generator for
21115         System.Security.Cryptography classes.
21116
21117         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
21118
21119         * icall.c: Added System.Security.Cryptography calls.
21120
21121 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21122
21123         * class.c, icall.c, metadata.c: better support for pointer types.
21124         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
21125         * reflection.c: Add support for getting custom attrs for properties
21126         and simplify some code.
21127
21128 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21129
21130         * icall.c: change getToken () and add custom attribute GetBlob()helper
21131         method.
21132         * reflection.h: add custom attrs array to the reflection builder structures.
21133         * reflection.c: encode and emit custom attributes for all the relevant
21134         reflection objects. Cache fieldref and methodref tokens. Change
21135         mono_image_create_token() interface to take a MonoDynamicAssembly.
21136         More complete custom attributes decoder. Load custom attributes for
21137         Assembly, Field, Method and Constructor objects, too. Make the
21138         returned array an Attribute[] one, not object[]. Added
21139         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
21140         custom attribute constructor.
21141
21142 2002-02-20  Dick Porter  <dick@ximian.com>
21143
21144         * icall.c:
21145         * rawbuffer.c:
21146         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
21147         problem code out for now).
21148
21149 2002-02-19  Radek Doulik  <rodo@ximian.com>
21150
21151         * object.c (mono_ldstr): use hash table to avoid multiple swapping
21152
21153 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
21154
21155         * icall.c: register the GetCustomAttributes method.
21156         * object.c, object.h: add mono_string_new_len ().
21157         * reflection.h, reflection.c: added mono_runtime_invoke(),
21158         mono_install_runtime_invoke(). Added
21159         mono_reflection_get_custom_attrs () to load custom attributes and
21160         create the attribute objects.
21161
21162 2002-02-19  Dick Porter  <dick@ximian.com>
21163         * threads-dummy-types.c:
21164         * threads-dummy-types.h:
21165         * threads-dummy.c:
21166         * threads-dummy.h:
21167         * threads-pthread-types.c:
21168         * threads-pthread-types.h:
21169         * threads-pthread.c:
21170         * threads-pthread.h:  Deleted obsolete files
21171
21172 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
21173
21174         * class.c (mono_class_vtable): runtime init the class when we
21175         allocate static class data.
21176
21177         * icall.c (ves_icall_System_Array_SetValue): check for null values.
21178
21179         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
21180         and String - but we will need generic marshalling support in the
21181         future. 
21182         (mono_init): set the domain name in a ms compatible way
21183
21184         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
21185         String[].
21186
21187 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
21188
21189         * object.c (mono_array_clone): use alloca() instead of g_malloc  
21190         for sizes
21191
21192         * appdomain.c (mono_domain_unload): impl.
21193
21194 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21195
21196         * appdomain.c, object.c: fix intern pool implementation.
21197         * class.c: fix alignment code.
21198
21199 2002-02-16  Radek Doulik  <rodo@ximian.com>
21200
21201         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
21202         and s2 > s1, just copy lower bytes to be compatible with little
21203         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
21204         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
21205
21206         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21207         force big_endian to be 1 for big endian machines 
21208         (ves_icall_iconv_new_decoder): ditto
21209
21210 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21211
21212         * socket-io.c (convert_sockopt_level_and_name): If the system
21213         doesn't define SOL_IP or SOL_TCP, get them by hand using
21214         getprotobyname() and caching the values (because this could be a
21215         slow operation).
21216         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21217         Use the appropriate struct when the system does support it. Ie,
21218         not all systems have struct ip_mreqn so use struct ip_mreq when
21219         appropriate.
21220
21221 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21222
21223         * reflection.c: handle finally clauses.
21224
21225 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21226
21227         * socket-io.c: use g_snprintf() instead of snprintf.
21228
21229 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21230
21231         * reflection.c (mono_param_get_objects): Cast second argument to
21232         mono_method_get_param_names to a const char** to silence the
21233         compiler warning.
21234
21235         * appdomain.c (mono_domain_assembly_open): Put parens around the
21236         truth statement in the for-loop.
21237
21238         * unicode.c (iconv_convert): Got rid of a compiler warning about
21239         int i being unused when the system has a new iconv.
21240         (iconv_get_length): Same.
21241
21242         * image.c (load_class_names): Cast the second argument to
21243         g_hash_table_insert() to char* to hush compiler warnings about the
21244         arg being a const.
21245         (mono_image_open): Same here.
21246
21247         * socket-io.c: Don't conditionally include sys/filio.h or
21248         sys/sockio.h here anymore since we now get them from
21249         io-layer/io-layer.h
21250         (inet_pton): If the system doesn't support inet_aton, implement
21251         using inet_addr and also #define INADDR_NONE if it isn't defined
21252         by the system.
21253
21254 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21255
21256         * metadata.c, metadata.h: added function to get packing and size info
21257         of a typedef.
21258         * reflection.h, reflection.c: handle field RVA data. Save info about
21259         the table layout if needed. Assign typedef indexes to all the types
21260         before dumping the info about them to avoid forward reference problems.
21261
21262 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21263
21264         * socket-io.c (convert_sockopt_level_and_name): ifdef
21265         SO_ACCEPTCONN because it is not defined on my system (old debian)
21266
21267 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21268
21269         * opcode.c: use stddef.h to get NULL.
21270
21271 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21272
21273         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21274         for FIONBIO, FIONREAD and SIOCATMARK.
21275         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21276         define INADDR_NONE and besides, inet_addr() is deprecated and
21277         should not be used. Use inet_pton() instead - it also has the
21278         added bonus that it can easily handle IPv6 addresses as well.
21279         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21280
21281 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21282
21283         * decimal.c: remove _MSC_VER conditional.
21284
21285 2002-02-13  Dick Porter  <dick@ximian.com>
21286
21287         * socket-io.c: 
21288         * icall.c: Internal calls for Blocking, Select, Shutdown,
21289         GetSocketOption and SetSocketOption
21290
21291 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21292
21293         * assembly.cs: better resolver: use it instead of some kludgy
21294         code.
21295
21296 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21297
21298         * reflection.c: the best way to speed-up the compiler is to avoid
21299         infinite loops.
21300
21301 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21302
21303         * class.c (mono_class_vtable): changed the object layout
21304         (obj->vtable->class). 
21305         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21306
21307 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21308
21309         * assembly.c: look for assemblies in the assembly dir, too.
21310
21311 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21312
21313         * class.c: fix thinko in mono_class_from_type().
21314
21315 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21316
21317         * exception.h, exception.c: added TypeLoadException.
21318         * object.h, object.c: added mono_array_clone ().
21319         * icall.c: handle throwOnError in AssemblyGetType().
21320         Added Array.Clone().
21321         * opcode.h, opcode.c: use a single value for the opcode val.
21322         Compile fix for non-gcc compilers.
21323
21324 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21325
21326         * opcodes.c, opcodes.h: export interesting info about opcodes.
21327
21328 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21329
21330         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21331         icalls. 
21332
21333         * class.c (class_compute_field_layout): set element_class for enums
21334         (mono_class_create_from_typedef): set element_class for normal classes
21335
21336         * icall.c (ves_icall_System_Enum_get_value): impl.
21337
21338         * class.c (mono_class_create_from_typedef): do not set valuetype
21339         flag for System.ValueType and System.Enum
21340
21341 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
21342
21343         * unicode.c (iconv_convert): fix big endian problem.
21344
21345 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21346
21347         * class.c: add asserts if we are ever going to scribble over memory.
21348         * socket-io.c: not all systems have AF_IRDA defined.
21349
21350 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21351
21352         * class.c (class_compute_field_layout): do not consider static
21353         fields to compute alignment
21354
21355 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21356
21357         * appdomain.c (mono_appdomain_get): impl.
21358         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21359
21360 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21361
21362         * icall.c: ignore "file://" prefix when loading an assembly.
21363
21364 2002-01-23  Dick Porter  <dick@ximian.com>
21365
21366         * socket-io.c:
21367         * icall.c:
21368         * Makefile.am: Added socket support
21369
21370 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21371
21372         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21373         code back.  This should return the assemblies that are loaded by
21374         the runtime on behalf of an application domain. 
21375
21376         The current implementation is still broken, it just returns every
21377         assembly loaded, but until we get real applications domain this
21378         will do.
21379
21380 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21381
21382         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21383         AppDomain object.
21384
21385 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21386
21387         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21388         the mono_class_from_name lookup.
21389         (ves_icall_get_parameter_info): ditto.
21390         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21391         method.
21392         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21393
21394 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21395
21396         * class.c: load also nested classes on class init.
21397         System.ValueType instance methods gets passed boxed
21398         values, unless methods in derived classed that get a pointer to the
21399         data.
21400         * icall.c: use better name parsing code in GetType().
21401         * image.c, image.h: add mono_image_loaded ().
21402         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21403         * reflection.c, reflection.h: added mono_reflection_parse_type().
21404
21405 2002-01-22  Veronica De Santis <veron78@interfree.it>
21406
21407         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21408         * threads.c : Added the implementation of internal calls for events
21409         * threads.h : Added prototypes of internal calls for events
21410         
21411 2002-01-21  Radek Doulik  <rodo@ximian.com>
21412
21413         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21414
21415 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21416
21417         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21418         (mono_class_value_size): use min_align
21419
21420 2002-01-20  Dick Porter  <dick@ximian.com>
21421
21422         * threads.h:
21423         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21424         so it compiles on w32.
21425
21426 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21427
21428         * metadata.c (mono_type_stack_size): impl.
21429
21430         * class.c (mono_class_get_field): impl. memberref token
21431
21432 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21433
21434         * icall.h : Added the internal calls mapping for CreateMutex_internal
21435                     and ReleaseMutex_internal.
21436         * threads.h : Added the prototype of mutexes internal calls.
21437         * threads.c : Added the implementations of mutexes internal calls.
21438
21439 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21440
21441         * metaparse.h: removed unused file.
21442         * reflection.c, reflection.h: added stream_data_align () function 
21443         to align data in streams and keep stream aligned. Add support for
21444         exception support in method headers.
21445
21446 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
21447
21448         * unicode.c: make iconv_convert () return the number of bytess written
21449         in the output buffer.
21450
21451 2002-01-15  Dick Porter  <dick@ximian.com>
21452         * threads.c: Make the runtime's idea of infinite timeouts coincide
21453         with the class library's
21454
21455         Fix a particularly egregious bug in mono_thread_cleanup(). That
21456         code was so utterly bogus it must have been written on a Monday.
21457
21458 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21459
21460         * reflection.h: add subtypes field to TypeBuilder.
21461         * reflection.c: encode constants for literal fields.
21462         Handle subtypes. Fix user string token (and add a zero byte)
21463         at the end.
21464         
21465 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
21466
21467         * class.c (mono_class_init): bug fix: assign slot numbers for
21468         abstract methods.
21469
21470 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21471
21472         * reflection.c: don't try to output a code RVA for abstract methods.
21473         Small fixes for method header format. Output parameter info to the
21474         ParamDef table. Save method overriding info to MethodImpl table.
21475         Fix property support. Allow typedef.extends to be a type in the
21476         building assembly.
21477         * verify.c: fix off-by-one error.
21478
21479 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
21480
21481         * class.c: fix mono_class_from_mono_type () for szarray types.
21482         Remove unused cache check in mono_class_from_type_spec().
21483         * icall.c: *type_from_name () functions handle simple arrays and byref.
21484         * reflection.c: handle byref and szarray types. Handle methods without
21485         body (gets P/Invoke compilation working). Handle types and fields in
21486         get_token ().
21487         * reflection.h: add rank to MonoTypeInfo.
21488
21489 2002-01-10  Dick Porter  <dick@ximian.com>
21490
21491         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
21492         internal calls
21493
21494 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21495
21496         * icall.c: initialize class in type_from_handle ().
21497         Loop also in parent classes for get_method ().
21498         * reflection.c: properly encode class and valuetype types.
21499         Start on encoding TypeBuilder types. Handle fieldrefs.
21500         Use correct length when registering a user string.
21501         Handle ConstructorBuilder and MonoMethod in get_token ().
21502         Make mono_type_get_object () aware of cached types.
21503         * object.c: back out change to mono_string_new ().
21504
21505 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
21506         * object.c: mono_string_new should return a NULL when the string 
21507         passed in is NULL -- not try to deference it.
21508         
21509 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21510
21511         * icall.c: hack to make IsSubType work for TypeBuilders.
21512         * reflection.c: emit constructors before methods.
21513         Retrieve param names in mono_param_get_objects().
21514
21515 2002/01/05  Nick Drochak  <ndrochak@gol.com>
21516
21517         * Makefile.am: fix list of headers and sources so automake 1.5
21518         doesn't complain. Removed \# at end of list.
21519
21520 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21521
21522         * reflection.c: get token for a method ref. Set return type of
21523         constructor to void.
21524         * loader.c: debug message.
21525         * class.c: typo fix.
21526
21527 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
21528
21529         * icall.c: fix array init with rank > 1. FindMembers
21530         loops in parent class as well.
21531         * image.c: do not insert nested types in name cache.
21532         * reflection.c: warning fix.
21533         * reflection.h: add override method (for interface impl).
21534
21535 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
21536
21537         * metadata.c: fix customattr decoding.
21538
21539 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
21540
21541         * rawbuffer.cs: Added native Win32 implementation, avoids using
21542         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
21543
21544 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
21545
21546         * class.c: make the low-level routines handle the cache.
21547
21548 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
21549
21550         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
21551
21552 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
21553
21554         * class.c: fix mono_array_element_size() for objects.
21555         * class.h, class.c: add properties to MonoClass and load them
21556         at init time.
21557         * icall.c: check with isinst() when assigning a value to an array
21558         instead of requiring the classes to match exactly.
21559         Implemented icall for System.Type::GetType().
21560         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
21561         enums. Handle bindingflags when looking for methods and fields.
21562         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
21563         and mono_metadata_methods_from_property().
21564         * reflection.h, reflection.c: added structures for propreties,
21565         parameters and enums. Implemented mono_property_get_object() and
21566         mono_param_get_objects().
21567
21568 2001-12-18  Dick Porter  <dick@ximian.com>
21569
21570         * file-io.c: Use mono_string_to_utf16() instead of
21571         mono_string_chars()
21572
21573         * object.c: Added mono_string_to_utf16(), which copies the non
21574         NULL-terminated MonoString into a new double-null-terminated
21575         buffer.
21576
21577 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
21578
21579         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
21580
21581 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
21582
21583         * file-io.c: raise exceptions if handle is invalid.
21584
21585 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
21586
21587         * assembly.c: yet another check for mscorlib.
21588         * class.c, class.h: load nesting info for classes.
21589         * icall.c: many new functions to support the Reflection classes.
21590         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
21591         * reflection.h, reflection.c: mono_image_create_token(),
21592         mono_assembly_get_object(), mono_type_get_object(),
21593         mono_method_get_object(), mono_field_get_object(): methods to return
21594         objects that parallel the C representation of assemblies, types,
21595         methods, fields.
21596
21597 2001-12-11  Dick Porter  <dick@ximian.com>
21598
21599         * icall.c:
21600         * file-io.c: Internal calls for file IO.
21601
21602 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
21603
21604         * tabledefs.h: missing FileAttributes.
21605         * verify.h, verify.c: use is_valid_string () to simplify and check for
21606         valid strings more correctly. Fix warnings and speeling.
21607         Check more tables: Filed, File, ModuleRef, StandAloneSig.
21608         Check code: branches, maxstack, method calls.
21609
21610 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
21611
21612         * object.c (mono_object_allocate): removed static, so that the jit
21613         can allocate value types.
21614
21615         * icall.c (ves_icall_System_DateTime_GetNow): impl.
21616
21617 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21618
21619         * class.c: init enum types right away and register the
21620         token->MonoClass map in mono_class_create_from_typedef ().
21621         * verify.h, verify.c: first cut of the verifier.
21622         * pedump.c: add --verify switch to verify metadata tables.
21623         * tabledefs.h: add some missing enums.
21624
21625 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
21626
21627         * class.c (mono_install_runtime_class_init): impl.
21628         (mono_class_init): renamed mono_class_metadata_init to
21629         mono_class_init, also removed the metadata_inited flag
21630
21631         * object.c (mono_object_isinst): use faster algorithm
21632
21633 2001-11-30  Radek Doulik  <rodo@ximian.com>
21634
21635         * mono-endian.h: reverted last change
21636         added function prototypes
21637
21638         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
21639         add mono-endian.c back
21640
21641         * mono-endian.c: returned back, as Paolo pointed out, it's needed
21642         for unaligned access, I've mistaked it with endianess. I am
21643         sorry.
21644         (mono_read16): fix reverted endianess
21645         (mono_read64): ditto
21646         (mono_read32): ditto
21647
21648 2001-11-30  Dick Porter  <dick@ximian.com>
21649
21650         * exception.c: Implement mono_exception_from_name()
21651
21652 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21653
21654         * metadata.h, metadata.c: remove params_size and locals_size and their
21655         calculation from the metadata code: they are only usefult to the
21656         interp.
21657
21658 2001-11-29  Radek Doulik  <rodo@ximian.com>
21659
21660         * object.c (mono_ldstr): swap bytes here, it's probably not the
21661         best place, but works for me now, I'll redo it once I know mono
21662         better, also note that I add PROT_WRITE and don't reset back, also
21663         note that it's only affects big endians, so x86 should be OK
21664
21665         * mono-endian.h (read16): use just glib macros for both endians
21666
21667         * mono-endian.c: removed as glib macros are used in in
21668         mono-endian.h so we don't need to care about endianess for read
21669         macros as glib does that for us already
21670
21671 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
21672
21673         * class.h, class.h: take minimum alignment into consideration so
21674         that the fields of a class remain aligned also when in an array.
21675
21676 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21677
21678         * loader.h, loader.c: add mono_method_get_param_names().
21679         * class.c: 0-init class fields.
21680
21681 2001-11-26  Dick Porter  <dick@ximian.com>
21682
21683         * icall.c:
21684         * threads-types.h:
21685         * threads.c: New file that handles System.Threading on all platforms
21686
21687         * object.c: 
21688         * object.h: Remove the synchronisation struct from MonoObject,
21689         replace it with a pointer that gets initialised on demand
21690
21691         * Makefile.am: Replace all the system-specific threading code with
21692         a single file that uses the new wrapper library
21693
21694 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
21695
21696         * class.c, class.h: add mono_install_trampoline() so that the runtime
21697         can register a function to create a trampoline: removes the ugly
21698         requirement that a runtime needed to export arch_create_jit_trampoline.
21699         * object.h, object.c: added mono_install_handler() so that the runtime
21700         can install an handler for exceptions generated in C code (with
21701         mono_raise_exception()). Added C struct for System.Delegate.
21702         * pedump.c: removed arch_create_jit_trampoline.
21703         * reflection.c: some cleanups to allow registering user strings and
21704         later getting a token for methodrefs and fieldrefs before the assembly
21705         is built.
21706         * row-indexes.h: updates and fixes from the new ECMA specs.
21707
21708 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
21709
21710         * class.h, class.c: add enum_basetype field to MonoClass.
21711         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
21712         to get index in the constant table reated to a field, param or
21713         property.
21714         * reflection.h, reflection.c: handle constructors. Set public-key and
21715         version number of the built assembly to 0.
21716         * row-indexes.h: update from new ECMA spec.
21717
21718 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21719
21720         * class.h, class.c: add a max_interface_id to MonoClass.
21721         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
21722         since it's used to do that. Added mono_type_type_from_obj().
21723         Make GetType() return NULL instead of segfaulting if the type was not
21724         found. Handle simple arrays in assQualifiedName.
21725         * object.h: add a struct to represent an Exception.
21726         * reflection.c: output call convention in method signature.
21727         Add code to support P/Invoke methods and fixed offsets for fields.
21728
21729 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
21730
21731         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
21732         the value.
21733         * icall.c: use mono_array_addr instead of array->vector: fixes the
21734         reflection image writing.
21735         * reflection.c: init call convention byte to 0 in method signature.
21736         Encode the property signature. Don't output property-related methods
21737         twice. Really process the properties for a type (don't cast a field to
21738         a property, my mom always told me that).
21739         Fix 64 bit issues in pointer alignment in a different and more
21740         readable way.
21741
21742 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
21743
21744         * loader.h: Removed type class from MonoDefaults, added monotype
21745
21746         * loader.c: Loaded MonoType, removed loading of Type
21747
21748         * icall.c (my_mono_new_object): Now returns a System.MonoType,
21749         and fills in System.Type._impl with a RuntimeTypeHandle rather
21750         than the actual MonoClass *
21751
21752         (ves_icall_type_from_handle): change from type_class to
21753         monotype_class
21754
21755         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
21756         implemented
21757
21758         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
21759         implemented
21760
21761         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
21762
21763         (ves_icall_System_Reflection_Assembly_GetType): implemented
21764
21765         (ves_icall_System_MonoType_assQualifiedName): implemented
21766
21767         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
21768
21769 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
21770
21771         * assembly.c (mono_assembly_open): Implement a cache for the
21772         assemblies. 
21773
21774         (mono_assembly_close): only destroy the assembly when the last
21775         reference is gone.
21776         
21777 2001-11-09  Dick Porter  <dick@ximian.com>
21778
21779         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
21780
21781 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
21782
21783         * class.c (mono_class_metadata_init): bug fix: compute the right slot
21784
21785 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21786
21787         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
21788         from Martin Weindel.
21789         * object.h: add mono_string_chars ().
21790
21791 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
21792
21793         * reflection.c (build_compressed_metadata): Eliminates warnings
21794         and uses 64-bit clean code.
21795
21796         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
21797         (mono_type_equal): Change signature to eliminate warnings.
21798
21799 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21800
21801         * icall.c, loader.c: remove the internalcall array constructors.
21802         Changes to match the new MonoArray structure.
21803         * object.h, object.c: an array object doesn't allocate an extra
21804         vector. Add mono_array_new_full () to create jagged arrays easily.
21805
21806 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21807
21808         * metadata.h, metadata.c: add mono_metadata_field_info () to
21809         retreive all the info about a field from vairous tables.
21810         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
21811         * class.h, class.c: augment MonoClassField with more info.
21812         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
21813         policy and load a field's RVA if needed.
21814
21815 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
21816
21817         * class.c (mono_class_metadata_init): create a trampoline for all
21818         virtual functions instead of actually compiling them.
21819
21820 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
21821
21822         * class.h, class.c: include name in MonoClassField.
21823         * class.c: fix fundamental type of System.Object and System.String.
21824         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
21825         tokens in ldtoken.
21826         * icall.c: remove internalcalls for the Reflection stuff that is now
21827         done in C# code.
21828         * loader.c: mono_field_from_memberref () implementation.
21829         * mono-endian.c: thinko (s/struct/union/g).
21830         * object.c, object.h: make the mono_string_* prototypes actually use
21831         MonoString instead of MonoObject.
21832         * reflection.c, reflection.h: updates for changes in the reflection
21833         code in corlib: we use C structures that map to the actual C# classes.
21834         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
21835         fat method header if needed and use the info from the ILGenerator for
21836         methods. Handle fields in types. Misc fixes.
21837
21838 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
21839
21840         * class.c (mono_class_metadata_init): bug fix: always allocate
21841         space for static class data
21842
21843 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
21844
21845         * class.c (mono_compute_relative_numbering): use relative
21846         numbering to support fast runtime type checks.
21847
21848 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
21849
21850         * class.c (mono_class_create_from_typeref): added debugging output
21851         to print class name when MonoDummy is returned instead of real class
21852
21853 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
21854
21855         * class.c (mono_class_metadata_init): interface offset table now
21856         contains pointers into the vtable - this is more efficient for the jit
21857
21858 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
21859
21860         * class.c (mono_class_metadata_init): use a temporary vtable (the
21861         old algorithm only worked for the interpreter, but not for the jit)
21862
21863 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
21864
21865         * loader.c (method_from_memberref): use mono_class_get to get the
21866         class of an array instead of using System.Array directly.
21867         (mono_get_method): also add MEMBERREF methods to the method cache
21868         which usefull for arrays.
21869
21870 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
21871
21872         * pedump.c (arch_compile_method): added to compute vtable entry
21873
21874         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
21875         number of interfaces.
21876         
21877         * class.h: merged MonoArrayClass into MonoClass
21878
21879         * class.c (mono_class_create_from_typedef): compute the vtable size and
21880         allocate space to include the vtable inside MonoClass
21881         (mono_class_metadata_init): initialize the vtable
21882
21883 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
21884
21885         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
21886         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
21887         * image.c: endian fixes by Laurent Rioux.
21888         * object.h, object.c: rename MonoStringObject to MonoString and
21889         MonoArrayObject to MonoArray. Change some function names to conform to
21890         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
21891         guint16* as first argument, so don't use char*.
21892         Provide macros to do the interesting things on arrays in a portable way.
21893         * threads-pthread.c: updates for the API changes and #include <sched.h>
21894         (required for sched_yield()).
21895         * icall.c: updates for the API changes above.
21896         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
21897         platforms that need them.
21898
21899 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
21900
21901         * class.c: set the correct type for all the fundamental
21902         type when loading the class.
21903
21904 2001-10-05  Dick Porter  <dick@ximian.com>
21905
21906         * threads-pthread.c (pthread_mutex_timedlock): Simple
21907         compatibility version for C libraries that lack this call.
21908
21909 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21910
21911         * class.c: MonoTypes stored in MonoClass are stored as
21912         fundamental MonoTypes when the class represents a
21913         fundamental type (System.Int32, ...).
21914         The TypeHandle return by ldtoken is a MonoType*.
21915         * icall.c: ves_icall_get_data_chunk () write out all the
21916         PE/COFF stuff. Implement ves_icall_define_method (),
21917         ves_icall_set_method_body (), ves_icall_type_from_handle ().
21918         * image.c: properly skip unknown streams.
21919         * loader.h, loader.c: add type_class to mono_defaults.
21920         * metadata.c, metadata.h: export compute_size () as
21921         mono_metadata_compute_size () with a better interface.
21922         Typo and C&P fixes.
21923         * pedump.c: don't try to print the entry point RVA if there is no entry point.
21924         * reflection.c, reflection.h: many cleanups, fixes, output method
21925         signatures and headers, typedef and typeref info, compress the metadata
21926         tables, output all the heap streams, cli header etc.
21927         * row-indexes.h: typo fixes.
21928
21929 2001-10-04  Dick Porter  <dick@ximian.com>
21930
21931         * object.h: Add a synchronisation mutex struct to MonoObject
21932
21933         * object.c (mono_new_object): Initialise the object
21934         synchronisation mutexes
21935
21936         * icall.c: System.Threading.Monitor internal calls
21937         
21938         * threads-pthread.h:
21939         * threads-pthread.c: System.Threading.Monitor internal calls
21940
21941         * threads-types.h: New file, includes the system-specific thread
21942         structures
21943         
21944         * threads-pthread-types.h:
21945         * threads-pthread-types.c: New files, handle pthread-specific
21946         synchronisation types
21947
21948         * threads-dummy-types.h: 
21949         * threads-dummy-types.c: New files of dummy support for
21950         thread-specific types
21951
21952         * metadata.c:
21953         * image.c:
21954         * pedump.c: include mono-endian.h not endian.h
21955         
21956         * Makefile.am: More threads files.
21957         Name mono-endian.h not endian.h
21958
21959 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
21960
21961         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
21962         stuff and implement a few more bits.
21963         * icall.c: a field needs to be dereferenced twice. Do not use the same
21964         name for two variables in the same scope.
21965         * image.c, image.h: cleanups.
21966
21967 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
21968
21969         * class.c (mono_class_metadata_init): bug fix: compute the right size
21970
21971 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
21972
21973         * icall.c: implemented some of the Reflection internalcalls.
21974         * image.c, image.h: start writing out the PE/COFF image.
21975         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
21976         that does the reverse than decode_blob_size ().
21977         * object.c: use mono_metadata_encode_value (). Move here
21978         temporary implementation of mono_string_to_utf8 ().
21979         * rawbuffer.c: make malloc_map static.
21980
21981 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21982
21983         * metadata.c: fix type comparison for arrays.
21984         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
21985         Added a couple of new classes to monodefaults.
21986         * icall.c: added a couple of Reflection-related internalcalls.
21987         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
21988         Added a byval_arg MonoType to MonoClass.
21989
21990 2001-09-28  Dick Porter  <dick@ximian.com>
21991
21992         * icall.c:
21993         * threads-pthread.h: 
21994         * threads-pthread.c: Implemented internal calls for
21995         LocalDataStoreSlot operations.  Applied mutexes around all shared
21996         data.  Reworked the thread creation and Start() operations to
21997         avoid a race condition.
21998         
21999         * threads-dummy.h:
22000         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
22001
22002 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
22003
22004         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
22005
22006 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
22007
22008         * class.c, loader.c: warn and return NULL instead of erroring out.
22009         * icall.c: added System.AppDomain::getCurDomain().
22010         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
22011
22012 2001-09-25  Dick Porter  <dick@ximian.com>
22013
22014         * threads-pthread.h:
22015         * threads-pthread.c: Implemented timed thread joining and added
22016         System.Threading.Thread::Join_internal internal call
22017
22018         * icall.c: Added System.Threading.Thread::Join_internal internal call
22019
22020         * threads-dummy.h:
22021         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
22022
22023 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
22024
22025         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
22026         mono_string_intern () to implement the semantics of the ldstr opcode
22027         and the interning of System.Strings.
22028         * icall.c: provide hooks to make String::IsIntern and String::Intern
22029         internalcalls.
22030
22031 2001-09-23  Dick Porter  <dick@ximian.com>
22032
22033         * threads-dummy.c: 
22034         * threads-dummy.h: New files of dummy threading routines
22035
22036         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
22037         support code based on system specifics
22038
22039         Rename PTHREAD_LIBS to THREAD_LIBS
22040         
22041 2001-09-23  Dick Porter  <dick@ximian.com>
22042
22043         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
22044         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
22045         internal calls.
22046         (mono_thread_init): Set up a Thread object instance to return when
22047         the main thread calls Thread.CurrentThread
22048         (mono_thread_cleanup): Wait for all subthreads to exit
22049
22050         * icall.c: New internal calls for System.Threading.Thread::Sleep
22051         (including Schedule) and CurrentThread
22052
22053         * threads.h: New file, to insulate thread-specific stuff from the
22054         rest of the code
22055
22056 2001-09-21  Dick Porter  <dick@ximian.com>
22057
22058         * threads-pthread.h: 
22059         * threads-pthread.c: New file, for handling pthreads-style
22060         threading support.  Start() now starts a new thread and executes
22061         the ThreadStart delegate instance.
22062
22063         * icall.c: Added the internalcall for
22064         System.Threading.Thread::Start_internal
22065
22066         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
22067
22068 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
22069
22070         * loader.c: work around the different signatures for delegates
22071         constructors csc generates in compiled code vs the ones compiled in mscorlib.
22072
22073 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22074
22075         * class.h, class.c: add mono_class_get_field_from_name ().
22076         * *: Fix C comments and other ANSI C issues.
22077
22078 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
22079
22080         * endian.h, assembly.c: fix some endianness issues.
22081
22082 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
22083
22084         * loader.h, load.c: add delegate_class to mono_defaults.
22085         Handle runtime provided methods in mono_get_method ().
22086
22087 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
22088
22089         * loader.c (mono_get_method): use pinvoke for internal call
22090
22091         * icall.c: use pinvoke for internal call
22092
22093         * loader.c (method_from_memberref): set the method name
22094
22095 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
22096
22097         * metadata.c: help the compiler generate better code for
22098         mono_class_from_mono_type ().
22099
22100 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
22101
22102         * class.c (mono_class_metadata_init): delayed computing of the
22103         class size to mono_class_metadata_init ()
22104
22105 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
22106
22107         * class.c, class.h: add an interfaces member to MonoClass.
22108         * image.c, image.h: add assembly_name field to MonoImage
22109         from the assembly table.
22110         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
22111
22112 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22113
22114         * class.c: Handle Array in mono_class_from_mono_type ().
22115         * metadata.c, pedump.c: some endian fixes.
22116
22117 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22118
22119         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
22120         * metadata.c: fix small problem introduced with the latest commit.
22121
22122 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
22123
22124         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
22125         We don't need a MonoMetadata pointer anymore to compare signatures in
22126         mono_metadata_signature_equal (), update callers.
22127         Reduced memory usage an number of allocations for MonoMethodHeader and
22128         MonoMethodSignature.
22129
22130 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
22131
22132         * metadata.c: added compare for szarray.
22133
22134 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
22135
22136         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
22137         and add a couple more types to it and mono_defaults. Give an hint on
22138         classes that need implementing in our corlib and are referenced
22139         in mscorlib.
22140
22141 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
22142
22143         * class.h, class.c: keep track if a class is also an Enum.
22144         * loader.c: Implement a couple more types for use in libffi
22145         marshalling. Gives better diagnostics when failing to dlopen
22146         a library. Set method->klass for P/Invoke methods, too.
22147
22148 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
22149
22150         * class.c, class.h: add a MonoType this_arg to MonoClass that
22151         represents a pointer to an object of the class' type that
22152         can be used by the interpreter and later the type cache.
22153         Add best guess alignment info for valuetype objects.
22154
22155 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
22156
22157         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
22158         into MonoType: one less level of indirection and allocation and
22159         simplifies quite a bit of code. Added cache for MonoTypes that are
22160         used frequently, so that we don't need to allocate them all the time.
22161
22162 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
22163
22164         * class.c (mono_class_create_from_typedef): System.Enum is also a
22165         value type, although it does not derive from System.ValueType
22166         (maybe a bug in the ms compiler?)
22167
22168         * metadata.c (mono_type_size): return the right size for value types
22169
22170         * loader.c (mono_get_method): only initialize method header if not abstract
22171
22172         * class.c (mono_class_from_mono_type): use mono_default values. 
22173
22174 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
22175
22176         * *: use MonoClass pointers instead of <type_tokens>
22177         
22178         * class.h: new flag: metadata_inited.
22179
22180         * class.c (mono_class_metadata_init): impl.
22181         (mono_class_instance_size): impl.
22182         (mono_class_data_size): impl.
22183
22184 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22185
22186         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
22187         MonoClass now has the name and name_space fields. 
22188         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
22189         mono_get_method () takes and optional MonoClass as argument.
22190         Removed mono_typedef_from_name() and added mono_class_token_from_name()
22191         instead that takes advantage of a map from class names to typedef
22192         tokens in MonoImage.
22193
22194 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
22195
22196         * metadata.c: zero is not a valid alignment boundary.
22197         Merge MONO_TYPE_VOID in default decoding code.
22198
22199 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
22200
22201         * image.h: merged MonoMetadata into MonoImage
22202
22203         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
22204         identify the type of elements.
22205
22206 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22207
22208         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22209         * cil-coff.h: split MonoMSDOSHeader and add size info.
22210         * image.c: add some consistency checks.
22211         * metadata.c: fix row size computation: one programmer
22212         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22213         add explanation for the locator routine.
22214         Fix decoding of size in method header.
22215         
22216 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22217
22218         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22219         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22220         function from gnome-libs.  This uses the right path separator
22221         based on the OS, and also works around a bug in some systems where
22222         a double slash is not allowed. 
22223         (default_assembly_name_resolver): Use g_concat_dir_and_file
22224         (mono_assembly_open): ditto.
22225
22226 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22227
22228         * metadata.c (mono_metadata_signature_equal): impl.
22229
22230         * *: void is now a realy MonoType (instead of using NULL)
22231         
22232         * metadata.c (do_mono_metadata_parse_type): use
22233         mono_metadata_parse_type to parse void value.
22234
22235 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22236
22237         * metadata.c, metadata.h: in the signature and method header store
22238         only the space required for holding the loca vars and incoming arguments.
22239
22240 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22241
22242         * metadata.c (do_mono_metadata_parse_type): treat void like any
22243         other type (instead of assigning NULL);
22244
22245 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22246
22247         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22248
22249 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22250
22251         * image.c (do_mono_image_open): added a cache for arrays.
22252
22253 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22254
22255         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22256         decode a single column from a row in a metadata table and changes
22257         to take advantage of it in the typedef locator (gives a nice speed up).
22258         Store offset info for function params.
22259
22260 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22261
22262         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22263
22264 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22265
22266         * assembly.c: how could mono_assembly_close () had ever worked?
22267         * metadata.c, metadata.h: provide offset info for local vars.
22268         Implement mono_type_size () to take care of alignment as well
22269         as size (it was mono_field_type_size in cli/class.c before).
22270
22271 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22272
22273         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22274
22275         * assembly.h (CORLIB_NAME): set to corlib.dll
22276
22277         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22278
22279 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22280
22281         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22282         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22283         tokentype.h: massive namespace cleanup.
22284
22285 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22286
22287         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22288
22289 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22290
22291         * metadata.c (mono_metadata_free_type): added check for type !=
22292         NULL (void) before calling mono_metadata_free_type()
22293
22294 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22295
22296         * metadata.h, row_indexes.h: added header with enumerations to use
22297         to index in the columns from tables in metadata and to decode coded
22298         tokens: we should start using this instead of embedding magic numbers
22299         all over the code.
22300
22301 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22302
22303         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22304         Move metadata_t info from cli_image_info_t to MonoImage, where
22305         it's easily accessible. Changed all the uses accordingly.
22306         Added the method and class caches to MonoImage.
22307         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22308         and mono_metadata_decode_value () signature to be more consistent
22309         with the other parse functions (and simplify code). Taken advantage
22310         of zero-length array allocation with GCC. Removed reduntant (and
22311         wrong) MonoFieldType struct and use MonoParam instead. Changed
22312         mono_metadata_parse_field_type () to use common code for parsing.
22313         Added mono_metadata_typedef_from_field () and
22314         mono_metadata_typedef_from_method () to lookup a typedef index from a
22315         field or method token.
22316         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22317
22318 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22319
22320         * metadata.c (mono_metadata_parse_field_type): Implement. 
22321         (do_mono_metadata_parse_type): Split engine from
22322         mono_metadata_parse_type, so that we can create smaller structures
22323         for things that just have one pointer to the MonoType (look at
22324         the MonoFieldType)
22325
22326 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22327
22328         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22329         as Jan Gray found out, it is incorrect. 
22330
22331 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22332
22333         * assembly.c: Implement asssembly loading.  This loads an image
22334         and loads all the referenced assemblies.  Come to think of it, we
22335         could always do lazy loading of the assemblies. 
22336
22337         * image.c (mono_image_open): Keep loaded images in a hashtable.
22338
22339         * image.h (MonoImage): Add reference count.
22340
22341 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
22342
22343         * assembly.c (mono_assembly_open): Keep track of the file name in
22344         case the assembly has no ASSEMBLY table.
22345
22346         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
22347         from get.c here.
22348
22349 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22350
22351         * metadata.c, metadata.h: decode local vars in method header
22352         parse function. Change callers accordingly.
22353
22354 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22355
22356         * metadata.h, cil-coff.h: protect against multiple inclusion.
22357         Added some new structures to hold information decoded from metadata:
22358         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22359         and relevant decoding/free functions.
22360         * metadata.c: implement decoding functions. Add warning for out of bounds
22361         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22362         all the info about a method signature and invocation. Remove check on
22363         uninitialized local var in parse_mh() and fix memory leak.
22364
22365 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22366
22367         * metadata.h: More macros.
22368
22369         * tokentype.h: New file.
22370
22371 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22372
22373         * assembly.c: added a consistency check and initialize
22374         some structures with g_new0().
22375         * metadata.c: fixed a couple more bugs in table size computation
22376         and add other checks for out-of bound access to metadata.
22377
22378 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22379
22380         * metatada.c: fix bugs computing table sizes. Spew a
22381         warning when index in string heap is out of bounds.
22382
22383 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22384
22385         * metadata.h: Add a couple of macros to manipulate tokens. 
22386
22387 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22388
22389         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22390         cli_section_tables).
22391
22392 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22393
22394         * metadata.c (mono_metadata_user_string): New function, provides
22395         access to the UserString heap. 
22396
22397 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22398
22399         * metadata.c: Add inline documentation.
22400
22401 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22402
22403         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22404         files. 
22405
22406 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22407
22408         * typeattr.h: New file, TypeAttribute flags. 
22409
22410 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22411
22412         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22413         mono_assembly_ensure_section): Section loading code.
22414         (load_section_tables): Load the sections.
22415
22416         * mono/metadata/metadata.c (mono_metadata_locate_token,
22417         mono_metadata_locate): Functions to locate the information
22418         definition given a token or a table and an index.
22419         (mono_metadata_compute_table_bases): New.
22420         (compute_size): New function to compute the sizes of the various
22421         tables.
22422
22423         * mono/metadata/metadata.h: Finish listing the different index
22424         types. 
22425
22426         * mono/metadata/pedump.c: Improve to dump new information.
22427
22428 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22429
22430         * mono/metadata/metadata.c: Entered all the tables matching
22431         Beta2. 
22432
22433         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22434
22435
22436