2007-08-24 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
2
3         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
4         ...
5
6         * image.c (mono_image_close): Here. Hopefully fixes #82510.
7
8 2007-08-24  Mark Probst  <mark.probst@gmail.com>
9
10         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
11
12 2007-08-24  Robert Jordan  <robertj@gmx.net>
13
14         * appdomain.c: don't perform the ':'->';' substitution on Win32.
15
16 2007-08-24  Jb Evain  <jbevain@novell.com>
17
18         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
19         for byref types.
20
21 2007-08-24  Mark Probst  <mark.probst@gmail.com>
22
23         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
24         #82286.
25
26 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
27
28         * assembly.c: Fix a warning.
29         
30 2007-08-23  Marek Habersack  <mhabersack@novell.com>
31
32         * appdomain.c: parse the <runtime> section looking for the probing
33         element with the 'privatePath' attribute, which sets additional
34         directories in which the runtime should look for assemblies.
35
36 2007-08-23  Robert Jordan  <robertj@gmx.net>
37
38         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
39         Fixes #82499.
40
41 2007-08-23  Martin Baulig  <martin@ximian.com>
42
43         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
44         _mono_debug_init_corlib() and remove it from the header file.
45
46 2007-08-23  Martin Baulig  <martin@ximian.com>
47
48         * mono-debug-debugger.c
49         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
50         don't notify the debugger about it.
51
52         * mono-debug-debugger.h
53         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
54
55 2007-08-23  Robert Jordan  <robertj@gmx.net>
56
57         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
58         Code is contributed under MIT/X11 license.
59
60 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
61
62         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
63
64 2007-08-22  Martin Baulig  <martin@ximian.com>
65
66         * mono-debug.c: Store debugging info on a per-domain basis and
67         free it on domain unload.  Add support for unloading symbol files.
68
69         * mono-debug.h
70         (MonoDebugList): New typedef.
71         (MonoSymbolTable):
72         - add `data_tables and `type_table'.
73         - replace 'symbol_files' and `num_symbol_files' with a
74           `MonoDebugList *'.
75         (mono_debug_data_table): Removed.
76         (mono_debug_list_add): New public function.
77         (mono_debug_list_remove): New public function.
78         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
79         (mono_debug_init_2_memory): Renamed into
80         mono_debug_open_image_from_memory().
81         (mono_debug_close_image): New public function.
82         (mono_debug_domain_create): Likewise.
83         (mono_debug_domain_unload): Likewise.
84         (MONO_DEBUGGER_VERSION): Bump to 60.
85
86         * mono-debug-debugger.h
87         (MonoDebuggerEvent):
88         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
89         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
90         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
91         - rename `THREAD_CREATED' and `THREAD_EXITED' into
92           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
93         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
94           meaning.
95         (mono_debugger_add_symbol_file): Removed.
96         (mono_debugger_add_type): Removed.
97         (mono_debugger_lookup_type): Removed.
98         (mono_debugger_lookup_assembly): Removed.
99
100         * domain.c
101         (mono_domain_create): Call mono_debug_domain_create().
102         (mono_init_internal): Call mono_debug_init_corlib().
103
104         * assembly.c
105         (mono_assembly_close): Call mono_debug_close_image().
106
107 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
108
109         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
110         mmap call.
111
112 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
113
114         * sgen-gc.c: ensure section->pin_queue_end is initialized
115         correctly when non pinning objects in the section have been found.
116
117 2007-08-22  Marek Habersack  <mhabersack@novell.com>
118
119         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
120         containing a list of directories separated by ':'. MSDN docs say
121         the directories should be separated with ';'. Part of a bugfix for
122         bug #81446
123
124 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
125
126         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
127         it should MonoType and not MonoClass.
128
129 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
130
131         * culture-info-table.h : regenerated.
132
133 2007-08-20  William Holmes  <billholmes54@gmail.com>
134
135         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
136          to call ReplaceFile Kernel32 on windows or in io-layer.
137         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
138         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
139          as an internal call.
140
141         Code is contributed under MIT/X11 license.
142
143 2007-08-20  Jb Evain  <jbevain@novell.com>
144
145         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
146         and MONO_EXCEPTION_FIELD_ACCESS.
147
148         * debug-helpers.[c|h]: new mono_field_full_name function.
149
150 2007-08-20  Mark Probst  <mark.probst@gmail.com>
151
152         * class.c: Removed class_security_level() and moved it to
153         security-core-clr.c.
154
155         * security-core-clr.c, security-core-clr.h: class_security_level()
156         is now public and renamed to mono_security_core_clr_class_level().
157         It also looks for security attributes in the classes a class is
158         nested in.
159
160 2007-08-20  Mark Probst  <mark.probst@gmail.com>
161
162         * security-core-clr.c, security-core-clr.h: CoreCLR security
163         utility functions.
164
165         * Makefile.am: Added security-core-clr.[ch].
166
167         * security-manager.c, security-manager.h: Functions and enum for
168         setting and getting the security mode.
169
170         * class.c: CoreCLR security checks.
171
172 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
173
174         * icall-def.h, process.c, process.h: implemented icall to get
175         user/system processor times.
176
177 2007-08-17  Mark Probst  <mark.probst@gmail.com>
178
179         * domain.c, threads.c, class-internals.h, domain-internals.h: New
180         reader-lock-free jit_info_table.
181
182 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
183
184         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
185
186         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
187
188         * object-internals.h (MonoException): Add missing _data member.
189
190 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
191
192         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
193         checking that only methods with matching qname or fqname are picked
194         from implemented interfaces.
195
196 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
197
198         * verify.c (do_newarr):added, do type verification of
199         newarr ops, push the right value on the eval stack.
200         * verify.c (mono_method_verify): use do_newarr
201
202
203 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
204
205         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
206         factored the common code into get_boxable_mono_type, which
207         is now using mono_type_get_full, this fixed byref related tests.
208
209 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
210
211         * class.c: added mono_type_get_full, this function has the same
212         behavior of mono_class_get_full but the returned MonoType has
213         all metadata of the associated token in case of a typespec token.
214         * class.c: added mono_type_retrieve_from_typespec, used by 
215         mono_type_get_full to retrieve the token type.
216         * class.c (mono_class_create_from_typespec): changed to use
217         mono_type_retrieve_from_typespec.
218         * class.c (mono_ldtoken): changed to use mono_type_get_full
219         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
220         * class-internals.h: exported mono_type_get_full for internal use.
221
222 2007-08-16  Jb Evain  <jbevain@novell.com>
223
224         * domain.c (supported_runtimes): add entry for
225         the 'moonlight' runtime version.
226
227 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
228
229         * verify.c (mono_method_verify): small typo sliped in.  
230
231 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
232
233         * verify.c (do_unbox_value): added, do type verification of
234         unboxing ops
235         * verify.c (mono_method_verify): use do_unbox_value
236
237
238 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
239
240         * verify.c (dump_stack_value): fixed typo, was printing string
241         instead of object on stack.
242         * verify.c (do_box_value): moved the byref check up as it leads
243         to invalid code and should be done earlier.
244         * verify.c: improved error messages for and ldobj
245
246 2007-08-15  William Holmes  <billholmes54@gmail.com>
247
248         * marshal.c (emit_marshal_custom): Omit the call to 
249           marshal_native_to_managed when calling native to managed 
250           and the argument is specified as an out argument.
251
252         Code is contributed under MIT/X11 license.
253
254 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
255
256         * verify.c: fixed the type checks for generics, function pointers and vectors.
257         Added type verification for ldobj and ldtoken. The verifier
258         would segfault if header or signature of a method contained references
259         to non-existant types.
260
261 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
262
263         * marshal.c (cominterop_get_ccw): Patch from
264         Bill Holmes to no walk up interface hierarchy. 
265         All parent methods should be present in the interface for COM.
266    
267         Code is contributed under MIT/X11 license.
268
269 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
270
271         * marshal.c (emit_marshal_com_interface): Patch from
272         Bill Holmes to handle COM Interfaces as return values
273         for native->managed calls.
274    
275         Code is contributed under MIT/X11 license.
276
277 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
278
279         * marshal.c (cominterop_get_idispatch_for_object): Implement
280         for runtime callable wrappers.
281    
282         Code is contributed under MIT/X11 license.
283
284 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
285
286         * pedump.c (main): changed from mono_init to mono_init_from_assembly
287         so 2.0 types are accessible
288
289
290 2007-08-13  Miguel de Icaza  <miguel@novell.com>
291
292         * domain.c (mono_init_internal): Call mono_assembly_load_friends
293         once we load mscorlib.   Due to the order in which we initialize,
294         the mono_assembly_load_full routine that loads mscorlib did not
295         load friends.   We now load it once we load the
296         mono_defaults.internals_visible_class class. 
297
298         * assembly.c: Expose the mono_load_friend_assemblies method.
299
300 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
301
302         * verify.c: improved the handling of boxing, better
303         type checking for unary ops and conversion. Fix bug
304         regarding managed pointer compatibility checking
305
306 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
307
308         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
309
310         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
311
312 2007-08-09  Raja R Harinath  <rharinath@novell.com>
313
314         * reflection.c (dup_type): Remove.
315         * class.c (dup_type): Remove.
316         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
317         instead of the dodgy 'dup_type'.
318         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
319         handle the case where 'dup_type' needed the second argument.
320
321 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
322
323         * domain.c: Fix a warning.
324
325 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
326
327         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
328         checking that methods with the same fqname are not overridden
329         with a method from an ancestor.
330
331 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
332
333         * threads.c (free_thread_static_data_helper): Avoid a crash if
334         thread->static_data is not yet set.
335
336 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
337
338         * marshal.c: Use correct image when emitting
339         native wrapper for COM calls.
340    
341         Code is contributed under MIT/X11 license.
342
343 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
344
345         * icall-def.h, security.c, security.h :
346           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
347
348 2007-08-07  Martin Baulig  <martin@ximian.com>
349
350         * mono-debug-debugger.h
351         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
352
353         * domain.c (mono_domain_free): Call
354         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
355
356 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
357
358         * verify.c (check_underflow, check_overflow): error message now returns IL offset
359         * verify.c (in_same_block): code should test if either offset is inside the clauses
360         * verify.c (mono_method_verify): push the exception into the eval stack of exception
361         and filter blocks
362
363 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
364
365         * image.c (mono_image_close): Fix a leak.
366
367         * object.c (mono_runtime_invoke_array): Avoid using alloca.
368
369         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
370
371 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
372
373         * domain.c, threads.c, threads-types.h: fix memory retention issue
374         with thread static variables not being cleared on domain unload.
375         Reuse thread static slots after domain unload.
376
377 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
378
379         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
380         nullable type.
381
382         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
383         now done in mono_runtime_invoke_array.
384
385         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
386         receiver is a nullable type.
387
388         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
389         generic parameter.
390
391 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
392
393         * marshal.c: Implement COM Objects as return type for 
394         managed->unmanaged calls. Added Release calls for COM Object
395         out/return values in managed->unmanaged calls.
396
397         Code is contributed under MIT/X11 license.
398
399 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
400
401         * threads.h, threads-type.h: move the hazard pointer declarations
402         to the private header.
403
404 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
405
406         * file-io.c, appdomain.c: memory leak fixes.
407
408 2007-08-02  Dick Porter  <dick@ximian.com>
409
410         * socket-io.c
411         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
412         SO_REUSEADDR setting into io-layer/sockets.c.
413
414 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
415
416         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
417         from Object when called on a generic parameter. Fixes #82211.
418
419 2007-08-01  Dick Porter  <dick@ximian.com>
420
421         * file-io.c (convert_share): Test FileShare values bit-by-bit.
422         Fixes bug 79250 yet again.
423
424 2007-07-30  Martin Baulig  <martin@ximian.com>
425
426         Merged the `debugger-dublin' branch.
427
428         * mono-debug.h
429         (MonoDebugDataTable): New typedef.
430         (MonoDebugMethodAddressList): New typedef.
431         (MonoDebugWrapperData): Removed.
432         (MonoDebugSymbolTable): Removed `current_data_table',
433         `current_data_table_size', `current_data_table_offset'.
434         (MonoDebugDataItemType): Moved into mono-debug.c.
435         (MonoDebugMethodJitInfo): Remove `address'.
436         (mono_debug_data_table): New global variable.
437         (mono_debug_lookup_method_addresses): New public function.
438         (mono_debug_find_method): Take a `MonoMethod *', not a
439         `MonoDebugMethodInfo *'.
440
441         * mono-debug.c: Drop support for the old symbol tables.
442
443 2007-06-28  Martin Baulig  <martin@ximian.com>
444
445         * mono-debug.c (mono_debug_debugger_version): New public variable.
446
447 2007-07-31  William Holmes  <billholmes54@gmail.com>
448
449         * metadata.c Changed mono_type_create_from_typespec to not insert
450           the type into the hash map until after
451           do_mono_metadata_parse_type has completed.
452         Fixes Bug #82194
453         Code is contributed under MIT/X11 license.
454
455 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
456
457         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
458         generic parameter. Fixes #82211.
459
460 2007-07-27  Jb Evain  <jbevain@novell.com>
461
462         * pedump.c (dump_metadata, dump_metadata_header): dump
463         versions contained in the metadata header.
464
465 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
466
467         * threads.c: register small_id_table with the GC.
468
469 2007-07-27  Mark Probst  <mark.probst@gmail.com>
470
471         * threads.c, threads.h, class-internals.h, object-internals.h:
472         Hazard pointers, to be used by lock-free parallel algorithms.
473
474 2007-07-26  Dick Porter  <dick@ximian.com>
475
476         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
477         routine on non-windows platforms, as I've not managed to think of
478         a non-kludgy way of doing this.  Finishes off bug 78739.
479
480 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
481
482         * object.c: properly setup interface_bitmap in proxy vtables.
483
484 2007-07-25  Marek Habersack  <mhabersack@novell.com>
485
486         * appdomain.c (get_shadow_assembly_location): do not use TickCount
487         to create unique shadow copy target directories, use the domain's
488         serial number instead. Each domain gets a unique target directory
489         that way.
490
491         * domain.c (mono_domain_create): added code to increment domain
492         shadow copy serial number and cache the value in the current
493         domain structure.
494
495         * domain-internals.h (struct _MonoDomain): added a new field -
496         shadow_serial to hold the serial number used in generation of
497         shadow-copy directories. This is to make sure that the directory
498         name is unique for each and every domain created. We avoid a race
499         condition with overriding assemblies already in use by other app
500         domains.
501
502 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
503
504         * class.c (mono_bounded_array_class_get): fixed memory leak when 
505         binding generic parameters.
506
507 2007-07-24  Raja R Harinath  <rharinath@novell.com>
508
509         * metadata.c (do_mono_metadata_parse_generic_class): Use
510         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
511         error.
512
513 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
514
515         * loader.c, class-internals.h, reflection.c: removed the per-method
516         generics hashtable: we use the global one through the call of
517         mono_class_inflate_generic_method ().
518
519 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
520
521         * class.c, metadata.c, class-internals.h: introduce yet another
522         generics global cache for inflated methods (fixes 98% of the perf
523         issue in bug #81806).
524
525 2007-07-23  Raja R Harinath  <rharinath@novell.com>
526
527         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
528         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
529         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
530         return a MonoGenericInst containing (a copy) of those types.
531         (mono_metadata_inflate_generic_inst): Update to changes.
532         (mono_metadata_parse_generic_inst): Likewise.
533         (mono_get_shared_generic_inst): Likewise.
534         * reflection.c (mono_class_bind_generic_parameters): Likewise.
535         (mono_reflection_bind_generic_method_parameters): Likewise.
536         * metadata-internals.h: Likewise.
537         * icall.c (free_generic_context): Kill.
538         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
539
540         * reflection.c (reflection_methodbuilder_to_mono_method): Use
541         mono_metadata_type_dup.
542         * marshal.c (mono_mb_create_method): Likewise.
543
544         * metadata.c (mono_metadata_type_dup): Rename from
545         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
546         MonoImage.  Handle a few more cases, esp. when no mempool is given.
547         * marshal.c, metadata-internals.h: Update to changes.
548
549 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
550
551         * class.c: fixed a small leak for array classes and removed warning.
552
553 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
554
555         * loader.c (mono_method_get_param_token): Make this work on generic methods.
556         Return 0x8000000 for return parameters. Fixes #82161.
557
558 2007-07-21  Marek Habersack  <grendello@gmail.com>
559
560         * appdomain.c (get_shadow_assembly_location): append the current
561         ticks value to the path. Avoids overwriting the same assemblies by
562         several threads at the same time.
563
564 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
565         and Raja R Harinath  <rharinath@novell.com>
566
567         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
568         Simplify slightly.
569         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
570         property for testing if a method is a generic method definition.
571
572 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
573
574         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
575
576 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
577
578         * verify.c: used function from private branch, reverted to the one in class.h 
579
580 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
581
582         * verify.c: a typo slipped in and the code wont compile
583
584 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
585
586         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
587         disabled box instruction as it is doing the wrong thing
588         improved stack dump messages, now it is easier to debug type related issues
589
590
591 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
592
593         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
594
595 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
596
597         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
598         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
599         grouped with class and valuetype. This change will simply 
600         the code as it should be handled just like unmanaged pointers.
601
602 2007-07-19  Mark Probst  <mark.probst@gmail.com>
603
604         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
605
606 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
607
608         * verify.c: several stack merge issues fixed, reference comparisons now
609         check the type size. strict type check now works correctly.
610         added more uses of IS_MANAGED_POINTER macro.
611         fixed issues pointed by running the test suite against .net.
612         
613
614 2007-07-19  Mark Probst  <mark.probst@gmail.com>
615
616         * class.c, loader.c, class-internals.h: Removed the
617         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
618         defines.
619
620         * icall.c: Better error checking in some internal reflection
621         methods.
622
623 2007-07-18  William Holmes  <billholmes54@gmail.com>
624
625         * filewatcher.c : removed unused variable 'filename' in 
626           ves_icall_System_IO_FSW_SupportsFSW
627
628 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
629
630         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
631         obsolete, removed.
632
633 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
634
635         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
636         
637         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
638
639 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
640
641         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
642         Implement generics support.
643         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
644
645         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
646         type_args and method_args arguments.
647         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
648         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
649         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
650
651 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
652
653         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
654           It adds a rootimage parameter to mono_reflection_get_type_internal,
655           adds new function mono_reflection_get_type_with_rootimage and use
656           the rootimage to resolve the types instead of the current image
657
658 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
659
660         * culture-info-table.h: Forgot to update after r78304.
661
662 2007-07-13  Raja R Harinath  <rharinath@novell.com>
663
664         * class.c (mono_class_is_open_constructed_type)
665         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
666
667 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
668
669         * class.c (mono_bounded_array_class_get):  method fails if used with
670         an incomplete TypeBuilder enum (no basetype field), fixed it by 
671         avoiding calculating the size for such array as it cannot be instantiated.
672         Fix bug #82015
673
674 2007-07-12  Raja R Harinath  <rharinath@novell.com>
675
676         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
677         field.
678         * metadata.c, reflection.c: Update to changes.
679
680 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
681
682         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
683         mono_class_is_valid_enum, they are used to valide a enum when loading.
684         * reflection.c: used new functions to throw TypeLoadException when and
685         invalid enum is build with TypeBuilder. Fixes #82018
686   
687 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
688
689         * object.c: forgot commit of mono_class_setup_methods () to access
690         iface->methods.
691         * object-internals.h: added a few more handy fields to
692         MonoIMTCheckItem.
693
694 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
695
696         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
697         iface->methods.
698
699 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
700
701         * class-internals.h, object-internals.h, object.c: IMT-based
702         interface invocation core from Massimiliano Mantione
703         (massi@ximian.com) with a reworked arch-specific interface,
704         bsearch implementation and a few bugfixes and memory savings by me.
705
706 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
707
708         * class.c (mono_class_create_from_typedef): mono would segfault if 
709         an enum did not have a __value field. It now throws a TypeLoadException
710         for such cases. Fix bug #82022
711
712 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
713
714         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
715
716 2007-07-09  Mark Probst  <mark.probst@gmail.com>
717
718         * class.c (mono_class_init): If a class is already inited but has
719         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
720
721 2007-07-09  Mark Probst  <mark.probst@gmail.com>
722
723         * class.c: Properly handle the case of an unimplemented interface
724         method.  Fixes: 81673.
725
726 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
727
728         * class-internals.h, object.c: cleanup patch from massi: use
729         MonoVTable->interface_bitmap since the vtable interfaces offset array
730         is going away.
731
732 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
733
734         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
735         GetMDStreamVersion icall instead.
736
737 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
738
739         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
740         not use mono_dl_build_path() with a full library name: makes
741         fallbacks to libgaim and libfam work.
742
743 2007-07-06  William Holmes  <billholmes54@gmail.com>
744
745         * assembly.c: Added a continue statement in probe_for_partial_name when
746          parse_assembly_directory_name fails.  Fixes : 82002
747
748 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
749
750         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
751         and added a verification  for TYPEDBYREF.
752         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
753         make native int interchangeable with int32 and some small cleanup and formating.
754         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
755         handle byref of byref.
756         * verify.c (push_local): handle byref of byref.
757         * verify.c (do_binop): invalid mix of values is unverifiable
758         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
759         added visibility checks
760         * verify.c (field related method): added visibility checks
761         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
762
763 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
764
765         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
766         string.
767
768 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
769
770         * profiler.c (mono_profiler_load): Fix an off-by-one error.
771
772         * marshal.c (emit_marshal_string): When returning a string from managed code,
773         allways make a copy even for unicode strings. Fixes #81990.
774
775 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
776
777         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
778         of byref generic inst types (bug #81997).
779
780 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
781
782         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
783         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
784
785 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
786
787         * marshal.c (emit_marshal_string): Add support for unicode strings in
788         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
789
790 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
791
792         * verify.c: field load/store are now verified, missing only access checks now
793
794 2007-06-28  Martin Baulig  <martin@ximian.com>
795
796         * mono-debug.c (mono_debug_debugger_version): New public variable.
797
798 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
799
800         * locales.c: When constructing DateTimeFormat or NumberFormat for
801         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
802         MonoCultureInfo contructed from the current locale is always
803         read-only and has UseUserOverride set to true. All MonoCultureInfo
804         instances returned for GetCultures have both IsReadOnly and
805         UseUserOverride set to true. Fixes part of bug #81930.
806
807 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
808
809        * icall-def.h: Update System.__ComObject icalls
810        * marshal.c: Avoid managed transition (and object creation)
811        when looking up COM interface in RCW.
812        * marshal.h: Ditto.
813        
814        Code is contributed under MIT/X11 license.
815
816 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
817
818         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
819         to avoid crashes during assembly unloading.
820
821 2007-06-22  Raja R Harinath  <rharinath@novell.com>
822
823         Fix MethodInfo.IsGenericMethodDefinition
824         * reflection.c (mono_reflection_bind_generic_method_parameters):
825         Rearrange code to ensure we always uses a generic method definition.
826         * class.c (mono_class_inflate_generic_method_full): Set
827         'generic_container' field only for generic method definitions.
828         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
829         Use presense of 'generic_container' field as indication of being a
830         generic method definition.
831
832 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
833
834         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
835
836         * object-internals.h: Reflect changes in the layout of the managed Delegate
837         class.
838         
839         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
840         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
841         runtime memory used by the dynamic method. Fixes #77146.
842
843 2007-06-21  Dick Porter  <dick@ximian.com>
844
845         * file-io.h: 
846         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
847         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
848         81767.
849
850 2007-06-21  Raja R Harinath  <rharinath@novell.com>
851
852         * reflection.c (method_encode_methodspec): Add a tripwire.
853         * class.c (inflate_generic_type): The fully open generic type is
854         not the same as the generic type definition.
855
856 2007-06-21  Martin Baulig  <martin@ximian.com>
857
858         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
859
860         * mono-debug-debugger.h
861         (MonoDebuggerBreakpointInfo): Removed.
862         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
863         (mono_debugger_remove_breakpoint): Likewise.
864         (mono_debugger_breakpoint_callback): Likewise.
865         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
866
867 2007-06-21  Raja R Harinath  <rharinath@novell.com>
868
869         * metadata.c (mono_metadata_lookup_generic_class): The fully open
870         generic type is not the same as the generic type definition.
871         * class.c (mono_generic_class_get_class): Likewise.
872
873 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
874
875         * icall.c: The second argument to 
876         System.Reflection.MethodBase.GetMethodFromHandleInternalType
877         is a MonoType not a MonoClass.
878
879 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
880
881         * verify.c: support for function pointers in the verifier
882
883 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
884
885         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
886
887 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
888
889         * assembly.c: removed Mono.Data.SqliteClient from the list of
890         forward-compatible assemblies as it breaks the ABI (bug #81899).
891
892 2007-06-19  Raja R Harinath  <rharinath@novell.com>
893
894         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
895         lookup/update with the loader lock.
896         * reflection.c (mono_class_bind_generic_parameters): No need to
897         protect mono_metadata_lookup_* with the loader lock.
898         * class.c (inflate_generic_type): Likewise.
899         
900         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
901         on a generic instantiated type.
902
903 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
904
905         *verify.c: produce meanfull error messages on verification error
906         *verify.c: fixed some cases of verification errors reported as validation errors
907         *pedump.c: fixed the error name array, now it shows validation errors properly
908         *verify.h: fixed the contant that should be used for verification errors
909
910 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
911
912         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
913         for bug #77596, 81858 and 80743 (generics data structures on domain
914         unload).
915
916 2007-06-15  Raja R Harinath  <rharinath@novell.com>
917
918         Avoid allocating 'MonoGenericContext' on the heap.
919         * class-internals (_MonoMethodInflated::context): Make field
920         inline, not a pointer.
921         * loader.c (method_from_methodspec): Allocate 'new_context' on the
922         stack.  Use the context embedded within the inflated method as the
923         hash key, rather than 'new_context'.
924         * class.c (inflate_generic_context): Simplify.  Return a struct
925         rather than allocating on the heap.
926         (mono_class_inflate_generic_method_full): Update to changes.  Now,
927         doesn't salt away a copy of the context -- simplifying the
928         lifetime rules of a 'MonoGenericContext *'.
929         (mono_method_get_context): Return pointer to embedded context.
930         (setup_generic_array_ifaces): Allocate temporary context on stack.
931         * reflection.c (inflate_mono_method): Likewise.
932         (mono_reflection_bind_generic_method_parameters): Likewise.
933         Use the context embedded within the inflated method as the hash key.
934
935         Avoid a source of allocation of 'MonoGenericContext'.
936         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
937         and 'cached_context' fields into embedded 'MonoGenericContext' field.
938         * class.c: Update to changes.
939         (mono_generic_class_get_context): Simplify drastically.  Now just
940         returns a pointer to the field.
941         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
942         argument as a const pointer.
943         (mono_metadata_generic_context_equal): Likewise.
944         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
945         Update to changes.
946
947 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
948
949         * verify.c improved the handling of brtrue/brfalse, factored out common code
950
951 2007-06-14  Raja R Harinath  <rharinath@novell.com>
952
953         Kill MonoGenericMethod.
954         * class-internals.h (MonoGenericContext::method_inst): Rename from
955         'gmethod' and convert to a MonoGenericInst.
956         (MonoGenericMethod): Remove.
957         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
958         * loader.c (method_from_methodspec): Update to changes.  Use a
959         MonoGenericContext as the key to the hashtable.
960         * metadata.c (mono_metadata_generic_context_equal): Rename from 
961         'mono_metadata_generic_method_equal' and take MonoGenericContext.
962         (mono_metadata_generic_context_hash): Likewise from
963         'mono_metadata_generic_method_hash'.  Change hash function.
964         (mono_metadata_load_generic_params): Update to changes.
965         (mono_get_shared_generic_method): Remove.
966         * metadata-internals.h (mono_get_shared_generic_method): Remove.
967         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
968         (inflate_generic_context): Likewise.
969         (mono_class_inflate_generic_method_full): Likewise.
970         (setup_generic_array_ifaces): Likewise.
971         (mono_class_create_from_typespec): Likewise.
972         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
973         (method_encode_methodspec): Update callsite.
974         (reflection_methodbuilder_to_mono_method): Update to changes.
975         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
976         MonoGenericContext as the key to the hashtable.
977         (inflate_mono_method): Update to changes.
978
979         * class-internals.h (MonoGenericMethod::container): Remove.
980         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
981
982 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
983
984         * profiler-private.h, profiler.c, profiler.h: added API to profile
985         exception events.
986
987 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
988
989         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
990
991 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
992
993         * verify.c: method invocation is now validated, now we verify parameter types on stack.
994         Fixed overflow and underflow not aborting the verification process.
995
996 2007-06-13  Mark Probst  <mark.probst@gmail.com>
997
998         * class-internals.h (MonoStats): Added stats entries for dynamic
999         code allocations.
1000
1001 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
1002
1003         * loader.c (mono_free_method): Free header->locals and header->clauses.
1004
1005         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
1006         dynamic case.
1007
1008         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
1009
1010         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
1011
1012 2007-06-12  Raja R Harinath  <rharinath@novell.com>
1013
1014         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
1015         the tables.
1016
1017 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1018
1019         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
1020
1021 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1022
1023         MonoGenericMethod on a diet
1024         * class-internals.h (_MonoMethodInflated::reflection_info): Move
1025         here ...
1026         (_MonoGenericMethod::reflection_info): ... from here.
1027         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1028         Update to changes.
1029         * reflection.c (inflate_mono_method): Likewise.
1030         (mono_reflection_bind_generic_method_parameters): Likewise.
1031
1032 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1033
1034         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
1035         *verify.c: factored long ldarg forms to share code with short forms
1036
1037 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1038
1039         *verify.c: fixed code formating factored some duplicate code
1040         into a new function
1041
1042         *verify.h: fixed binary incompatibility introduced earlier
1043
1044         *pedump.c: fixed formating
1045
1046 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1047
1048         Fix assertion when disassembling Mono.C5.dll
1049         * loader.c (method_from_methodspec): Avoid inflating a method
1050         twice with the same context.  If the methodref is inflated, use
1051         the declaring method instead.
1052
1053         * class.c (mono_class_from_generic_parameter): Fix case similar to
1054         bug #81830 handled below, but for method containers.
1055
1056 2007-06-10  Raja R Harinath  <harinath@gmail.com>
1057
1058         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
1059         get_shared_generic_class.  Directly inflate the instance.
1060         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
1061         (inflate_generic_class): Delete.
1062         (get_shared_generic_class): Delete.  Move setting of
1063         'cached_class' and 'cached_context' ...
1064         * metadata.c (mono_metadata_lookup_generic_class): ... here.
1065
1066         * metadata.c (mono_metadata_lookup_generic_class): Change
1067         signature to take the components of a MonoGenericClass rather than
1068         an allocated MonoGenericClass.  Change semantics to be intern-like.
1069         * reflection.c (mono_class_bind_generic_parameters): Update to
1070         changes.  Make locking region tighter.
1071         * class.c (inflate_generic_class): Update to changes.
1072         (get_shared_generic_class): Likewise.
1073         * metadata-internals.h: Likewise.
1074
1075         * reflection.c (mono_class_bind_generic_parameters): Take and
1076         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
1077         (mono_reflection_bind_generic_parameters): Use
1078         'mono_class_bind_generic_parameters' rather than duplicate the code.
1079         * class.c (mono_bounded_array_class_get): Update to changes.
1080         * object-internals.h: Likewise.
1081
1082         * reflection.c (mono_class_bind_generic_parameters): Only support
1083         parameterizing generic type definitions.  Remove support for other
1084         open types.
1085
1086 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
1087
1088         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
1089
1090         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
1091         in the dynamic case.
1092
1093 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
1094
1095         * threads.c: When cleaning up thread, reset the Background bit.
1096         Fixes bug #81720.
1097
1098 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
1099
1100        * metadata.c: Move variable declarations to top of scope.
1101        * verify.c: Move variable declarations to top of scope.
1102
1103        Code is contributed under MIT/X11 license.
1104
1105 2007-06-08  Raja R Harinath  <rharinath@novell.com>
1106
1107         * reflection.c (mono_class_bind_generic_parameters): Replace
1108         open-coded loop with mono_metadata_inflate_generic_inst.
1109
1110         * class.c (get_shared_generic_class): Don't call
1111         mono_get_shared_generic_inst.  Use the container's own
1112         'class_inst'.
1113
1114         * metadata.c (mono_metadata_load_generic_params): Move
1115         initialization of 'context' field here from ...
1116         * class.c (mono_class_create_from_typedef): ... here, and ...
1117         * loader.c (mono_get_method_from_token): ... here.
1118
1119         * class.c (get_shared_generic_class): Rename from
1120         mono_get_shared_generic_class and make static.
1121         (mono_get_shared_generic_inst): Move to metadata.c.
1122         * loader.c (mono_get_shared_generic_method): Likewise.
1123         * class-internals.h, metadata-internals.h: Update to changes.
1124
1125         Fix #81830
1126         * class.c (mono_class_from_generic_parameter): Don't assume a
1127         generic container owner exists.  Generic containers from monodis
1128         don't have any.
1129
1130 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
1131
1132         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
1133         * verify.h: new typedefs to returns the non-verifiable status
1134         * verify.c: initial implementation of generics, stack merging and object compatibility check
1135
1136 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1137
1138         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1139         a MonoInternalHashTable again (fixed bug in internal hash table
1140         code).
1141
1142 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1143
1144         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1145         MonoInternalHashTable again (fixed bug in internal hash table
1146         code).
1147
1148 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1149
1150         * class.c, image.c, class-internals.h, domain.c,
1151         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
1152         changes.  Have to figure out what makes them break the SWF
1153         regression.
1154
1155 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1156
1157         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1158         a MonoInternalHashTable now.
1159
1160 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1161
1162         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1163         MonoInternalHashTable now.
1164
1165 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
1166
1167         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
1168         invoke_impl code.
1169
1170         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
1171
1172         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
1173         dependent trampoline.
1174
1175         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1176
1177         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
1178
1179 2007-05-29  Robert Jordan  <robertj@gmx.net>
1180
1181         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
1182
1183 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
1184
1185         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
1186
1187 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
1188
1189        * marshal.c: Fix interface lookup loops for
1190        cominterop_get_com_slot_for_method and 
1191        cominterop_get_method_interface. Only need to lookup
1192        if type is a class, else use interface type method is on.
1193
1194        Code is contributed under MIT/X11 license.
1195
1196 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1197
1198         * reflection.c: HasSecurity can be present even if no specially 
1199         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
1200         SecurityAttribute). Fix CAS regression tests on buildbot.
1201
1202 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
1203
1204        * appdomain.c: Add configure checks for header files.
1205        * image.c: Add configure checks for header files.
1206        * file-io.c: Add configure checks for header files.
1207        * debug-mono-symfile.c: Add configure checks for header files.
1208        * threadpool.c: Add configure checks for header files.
1209        * console-io.c: Add configure checks for header files.
1210        * profiler.c: Add configure checks for header files.
1211        * rawbuffer.c: Add configure checks for header files.
1212        * icall.c: Add configure checks for header files.
1213        * rand.c: Add configure checks for header files.
1214        * socket-io.c: Add configure checks for header files.
1215
1216        Code is contributed under MIT/X11 license.
1217
1218 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
1219
1220         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1221         assertion as it breaks the build.
1222         
1223         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1224
1225         * reflection.c (lookup_custom_attr): Make a copy here too.
1226
1227         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1228         dynamic images.
1229
1230         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1231         images.
1232
1233         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1234         info.
1235
1236 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1237
1238         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1239         (load_cattr_value): Ditto.
1240
1241 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1242
1243         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1244
1245 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1246
1247         * threads.c: In "start_wrapper", set apartment_state to MTA if
1248         apartment_state is Unknown and we're running on 2.0 profile or
1249         higher.
1250         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1251         to main method, then set apartment_state to Unknown on 1.0 profile,
1252         and MTA on 2.0 profile.
1253
1254 2007-05-16  Jb Evain  <jb@nurv.fr>
1255
1256         * class-internals.h (MonoDefaults): Add an attribute_class and
1257           customattribute_data_class.
1258         * domain.c (mono_init_internal): Populate them.
1259         * reflection.c: Use them to remove duplicates. Make a vew
1260         MonoClass variables `static'.
1261
1262 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1263
1264         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1265         step in implementing IMT, so that all isinst checks now can go
1266         through the bitmap.
1267         This was needed because vtables for TransparentProxy need to look
1268         like the vtable of the "target" class, so they need to point to
1269         its interface bitmap directly.
1270
1271         * object.c: inside "mono_class_create_runtime_vtable" and
1272         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1273
1274 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1275
1276         * object-internals.h
1277           culture-info.h : added territory field in MonoCulture and
1278           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1279         * locales.c : fill territory field above too.
1280         * culture-info-table.h : regenerated.
1281
1282 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1283
1284         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1285         Fixes #81599.
1286
1287 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1288
1289         * object.c: Always initialize apartment, even if 
1290         there is no custom attributes on entry point.
1291         
1292         Code is contributed under MIT/X11 license.
1293
1294 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1295
1296         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1297         * metadata.c: If no encoding is set, check for unicode
1298         on class.
1299         
1300         Code is contributed under MIT/X11 license.
1301
1302 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1303
1304         * threads.c: Handle if mono_thread_current returns NULL 
1305         
1306         Code is contributed under MIT/X11 license.
1307
1308 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1309
1310         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1311         in start_wrapper. Added mono_thread_init_apartment_state and
1312         mono_thread_cleanup_apartment_state.
1313         * object.c: Initialize thread apartment state on main thread
1314         by checking for STAThreadAttribute on entry point.
1315         * object-internals.h: Add apartment_state field to MonoThread.
1316         * threads-types.h: Add unmanaged definition of 
1317         System.Threading.ApartmentState, MonoThreadApartmentState.
1318         
1319         Code is contributed under MIT/X11 license.
1320         
1321 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1322
1323         * class.c: Fix windows build.
1324         * class-internals.h: Fix windows build.
1325         
1326         Code is contributed under MIT/X11 license.
1327
1328 2007-05-08  Robert Jordan  <robertj@gmx.net>
1329
1330         * process.c (CreateProcess_internal):
1331         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1332         .CreateNoWindow was specified. Fixes #81496.
1333
1334 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1335
1336         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1337         step in implementing IMT, replaced it with two compact arrays
1338         (interfaces_packed and interface_offsets_packed) and a bitmap that
1339         is used for isinst checks (interface_bitmap).
1340
1341         * class.c: (compare_interface_ids): compare function to pass to
1342         bsearch when looking for an interface with a given id.
1343         (mono_class_interface_offset): reimplemented using bsearch on
1344         interfaces_packed, getting the offset from interface_offsets_packed.
1345         (print_implemented_interfaces): utility debugging function.
1346         (setup_interface_offsets): reworked to initialize interfaces_packed,
1347         interface_offsets_packed and interface_bitmap.
1348
1349         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1350         with uses of interfaces_packed and interface_offsets_packed.
1351
1352 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1353
1354         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
1355         mono_class_interface_offset prototype to wrap all accesses to
1356         "MonoClass.interface_offsets".
1357
1358         * class.c: Implemented mono_class_interface_offset, and wrapped all
1359         accesses to "MonoClass.interface_offsets".
1360
1361         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
1362         "MonoClass.interface_offsets".
1363
1364 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1365
1366         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1367         GetMethodFromHandle overloads (bug #78637).
1368
1369 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1370
1371         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1372         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1373
1374 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1375
1376         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1377         #81498.
1378
1379         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1380         gracefully.
1381         (mono_custom_attrs_from_index): Ditto.
1382
1383         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1384         Fixes #81501.
1385
1386 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1387
1388         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1389         is now allocated from a mempool.
1390
1391 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1392
1393         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1394         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1395
1396 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1397
1398         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1399         mono_loader_clear_error () too late. Fixes #81463.
1400
1401 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1402
1403         * culture-info-table.h : regenerated.
1404
1405 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1406
1407         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1408         is missing.
1409
1410 2007-04-25  Dick Porter  <dick@ximian.com>
1411
1412         * Makefile.am: Put the mingw enforced-optimisation back into the
1413         PLATFORM_WIN32 section.
1414
1415 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1416
1417         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1418         patch.
1419
1420         * image.c (mono_image_load_module): New API function to load a module reference.
1421
1422         * image.c (load_modules): Load modules lazily. Fixes #80812.
1423
1424         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1425         
1426         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1427
1428         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1429         to mono_image_load_module_dynamic.
1430
1431 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1432
1433         * marshal.c: Fix calling convention for CCW on non-windows
1434         platforms. STDCALL on windows, CDECL everywhere else to work 
1435         with XPCOM and MainWin COM.
1436         
1437         Code is contributed under MIT/X11 license.
1438
1439 2007-04-23  Martin Baulig  <martin@ximian.com>
1440
1441         Fix #80969.
1442
1443         * loader.c
1444         (method_from_memberref): Added `gboolean *used_context' argument.
1445         (mono_get_method_from_token): Likewise.
1446         (mono_get_method_full): Don't insert the method in the cache when
1447         `used_context' is true.
1448
1449 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1450
1451         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1452
1453         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1454         create new MonoTypes for returned types.
1455         * class.c (mono_generic_class_get_class): Export mono-internal.
1456         * class-internals.h: Update to changes.
1457
1458 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1459
1460         * threadpool.c, threadpool.h, icall-def.h: patch from
1461         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
1462
1463 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
1464
1465         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
1466         
1467         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
1468
1469         * threads.c (mono_thread_get_stack_bounds): New helper function.
1470
1471         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
1472         Correctly compute stack bounds when attaching. Fixes #81394.
1473
1474 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
1475
1476         * reflection.c: fix handling of doubles in custom attributes
1477         for the arm-fpa format (bug #81368).
1478
1479 2007-04-18  Raja R Harinath  <rharinath@novell.com>
1480
1481         * reflection.c (assembly_add_win32_resources): Mildly relax an
1482         bounds check to let the end pointer point just past the end of the
1483         allocated buffer.  (may fix #81384)
1484
1485 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1486
1487         * culture-info-table.h : regenerated.
1488
1489 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
1490
1491         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
1492         the thread is aborted early.
1493
1494 2007-04-05  Dick Porter  <dick@ximian.com>
1495
1496         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
1497         FindFirstFile()/FindNextFile() to find entries.  This lets the
1498         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
1499         81038.
1500
1501         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
1502         the parameters of
1503         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
1504
1505 2007-04-04  Martin Baulig  <martin@ximian.com>
1506
1507         * debug-helpers.c
1508         (mono_method_desc_full_match): Add support for nested classes.
1509
1510 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
1511
1512         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
1513
1514 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
1515
1516         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
1517         waiting for too many threads.
1518
1519 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1520
1521         * environment.c: Fix return value check on uname so we can get the 
1522         executing version on Solaris operating systems.
1523
1524 2007-03-28  Jb Evain  <jbevain@gmail.com>
1525
1526         * class.c (mono_type_get_name_recurse): Complete the
1527         fix for the creation of assembly qualified names for
1528         pointer types. Fixes #81208.
1529
1530 2007-03-27  Dick Porter  <dick@ximian.com>
1531
1532         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
1533         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
1534         changed.
1535
1536         * threads.c
1537         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
1538         the value of ReleaseMutex().
1539
1540 2007-03-27  Dick Porter  <dick@ximian.com>
1541
1542         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
1543         in little-endian order, not network endian, so must be converted
1544         to host endian here.  Fixes bug 80593.
1545
1546 2007-03-22  Jb Evain  <jbevain@gmail.com>
1547
1548         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
1549         qualified names for pointer types. Fixes #81208.
1550
1551 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
1552
1553         * marshal.c: Add support for PreserveSigAttribute. 
1554         
1555         Code is contributed under MIT/X11 license.
1556
1557 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
1558
1559         * process.c: Fix endianness issues. Fixes #81126.
1560
1561         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
1562         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
1563
1564         * image.c (mono_image_lookup_resource): Make this work on big-endian
1565         machines.Change API contract so the caller needs to free the return value.
1566         
1567         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
1568         API change.
1569         
1570 2007-03-14  Martin Baulig  <martin@ximian.com>
1571
1572         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
1573         mono_type_get_desc() as well.
1574
1575 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
1576
1577         * icall.c:  Fix environ access in VS.  
1578         
1579 2007-03-13  Alp Toker  <alp@atoker.com>
1580
1581         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1582         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1583         #63841.
1584
1585 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
1586
1587         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
1588         circular references among dynamic methods. Fixes #81091.
1589
1590         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
1591
1592 2007-03-09  Martin Baulig  <martin@ximian.com>
1593
1594         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
1595
1596 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
1597
1598         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
1599         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
1600         
1601         Code is contributed under MIT/X11 license.
1602         
1603 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
1604
1605         * loader.c: Reapply patch for bug #79424.
1606
1607 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1608
1609         * metadata.c (mono_type_to_unmanaged): Only convert object to
1610         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
1611
1612 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
1613
1614         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
1615         (and incorrectly set) is_reference field from MonoGenericInst.
1616
1617 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1618
1619         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
1620         a little earlier.
1621
1622         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
1623
1624         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
1625
1626 2007-03-05  Miguel de Icaza  <miguel@novell.com>
1627
1628         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
1629         FileOptions.1 value to mean "temporary", map that to
1630         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
1631
1632         Fixes 80688
1633
1634 2007-03-03  Marek Habersack  <mhabersack@novell.com>
1635
1636         * appdomain.c: implement MS .Net style shadow copying. Copies of
1637         the assemblies are made in a subdirectory of the dynamic base
1638         directory, the assembly names are preserved.
1639         Copy .mdb and .config files along with the assemblies being shadowed.
1640
1641 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1642
1643         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
1644         (emit_marshal_handleref): Ditto.
1645
1646         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
1647         on Visual C++. Fixes #80671.
1648
1649 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
1650
1651         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
1652         for clone operations.
1653
1654 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1655
1656         * marshal.c: Fix warnings.
1657
1658 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
1659
1660         * loader.c: allow case-insensitive matching of the dll name
1661         in dllmap handling when prefixed with "i:".
1662
1663 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
1664
1665         * threads.c: Fix #ifdef for dummy_apc function for VS.
1666
1667 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
1668
1669         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
1670
1671 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
1672         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
1673         giving precedence to the methods with a fully qualified name
1674         (InterfaceName.MethodName) when building the interface sections
1675         of the vtable.
1676
1677 2007-02-16  Dick Porter  <dick@ximian.com>
1678
1679         * threadpool.c (append_job): Fix fast-path array handling, so it's
1680         less likely the array will grow exponentially when the load is
1681         heavy.
1682
1683 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1684
1685         * metadata-internals.h, loader.c: fix dllmap lookup order
1686         for non-function maps, too, and prepare for fallback code.
1687
1688 2007-02-12  Robert Jordan  <robertj@gmx.net>
1689
1690         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
1691         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
1692         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
1693         GlobalFree. Fixes a part of bug #77075.
1694
1695 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
1696
1697         * loader.c: implemented typedef parent in field memberref.
1698
1699 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
1700
1701         * marshal.c: Fix warnings and remember to call Release on
1702         IUnknown of RCW.
1703         
1704         Code is contributed under MIT/X11 license.
1705
1706 2007-02-10  Miguel de Icaza  <miguel@novell.com>
1707
1708         * class-internals.h: Add MonoHandleRef definition, and
1709         handleref_class to mono_defaults. 
1710
1711         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
1712         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
1713
1714         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
1715         (do nothing on this stage)
1716         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
1717         (emit_marshal_handleref): New method, used for argument handling
1718         of HandleRefs. 
1719
1720 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
1721
1722         * class.c (mono_class_setup_parent): Lazily init com types.
1723         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
1724         init com types.
1725         * object.c (mono_remote_class_vtable): Lazily init com types.
1726         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
1727         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
1728         * domain-internals.h: Expose mono_init_com_types.
1729         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
1730         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
1731         Add support for COM Callable Wrapper marshalling.
1732         * marshal.h: Add icall definitions.
1733         * gc.c: Handle freeing of CCWs in finalizer code.
1734         
1735         Code is contributed under MIT/X11 license.
1736
1737 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
1738
1739         * reflection.c: changed all the signature encoding code to use
1740         a variable-sized buffer.
1741
1742 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1743
1744         * marshal.c: locking fixes: never take the loader lock
1745         or other runtime locks when holding the marshal lock
1746         (fixes bug#80664).
1747
1748 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
1749
1750         * marshal.c: make the delegate function pointer mapping
1751         work for the moving GC.
1752
1753 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
1754
1755         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
1756         for bug #80618.
1757
1758 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1759
1760         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
1761         gmodule.
1762
1763 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
1764
1765         * threadpool.c: made the code moving-GC safe.
1766
1767 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1768
1769         * assembly.c, boehm-gc.c, class-internals.h, class.c,
1770         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
1771         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
1772         warning cleanup.
1773         * reflection.c: warning cleanup, some threading and moving GC fixes.
1774
1775 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
1776
1777         * class.c, loader.c: create the needed Set/Get/Address array methods
1778         as well as the .ctors in mono_class_init (), fixes bug #80567.
1779
1780 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
1781
1782         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
1783         we doesn't decrease its alignment. Should fix the sparc build.
1784
1785 2007-01-24  Dick Porter  <dick@ximian.com>
1786
1787         * socket-io.c
1788         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
1789         Create the returned object if we need to ignore an unsupported
1790         socket option.  Fixes a segfault reported by Atsushi.
1791
1792 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
1793
1794         * class.c, object.c: restrict GC-tracked fields to
1795         UIntPtr fields used inside corlib, so we provide better
1796         type info to the GC and also allow broken packing as in
1797         bug #80580.
1798
1799 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
1800
1801         * sgen-gc.c: removed duplicated function.
1802
1803 2007-01-19  Miguel de Icaza  <miguel@novell.com>
1804
1805         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
1806         value that means that the value is not supported, but that we
1807         should not return a failure, but instead report this as a
1808         successful operation.
1809
1810 2007-01-19  Raja R Harinath  <rharinath@novell.com>
1811
1812         Fix tests/bug79956.2.il
1813         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
1814         (mono_generic_class_get_class): If the generic definition in an
1815         enum, copy over other fields related to it.
1816
1817 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
1818
1819         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
1820         genericinst enums (bug #79215).
1821
1822 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
1823         * class.c: Fix bug 80307.
1824
1825 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
1826
1827         * image.c: if the file table is not present, try to load
1828         all the modules, since we don't have info about them
1829         having or not metadata (bug #80517).
1830         * assembly.c: allow mono_assembly_load_references () to
1831         work for netmodules.
1832
1833 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1834
1835         * image.c, metadata-internals.h, object.c: execute module
1836         cctors when running on the 2 runtime if present (bug #80487).
1837
1838 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
1839
1840         * icall.c: optimized InitializeArray() on bigendian.
1841
1842 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
1843
1844         * icall.c: fix for the broken ARM FPA double format.
1845
1846 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
1847
1848         * icall.c: handle endian issues for r4 and r8 types, too, in
1849         the InitializeArray() icall.
1850
1851 2007-01-15  Miguel de Icaza  <miguel@novell.com>
1852
1853         * loader.c (mono_loader_error_prepare_exception): Clear the error
1854         once we have extracted the information from it, do this before we
1855         call into the JIT's class loading mechanisms.
1856
1857         * object.c (mono_class_create_runtime_vtable): Do not clear the
1858         loader error before calling mono_class_get_exception_for_failure
1859         as the loader error is needed inside
1860         mono_class_get_exception_for_failure to throw the error (thinko).
1861
1862         Fixes #80521
1863         
1864 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
1865
1866         * reflection.c: align fields rva data so it's faster to load at
1867         runtime.
1868
1869 2007-01-12  Raja R Harinath  <rharinath@novell.com>
1870
1871         Prepare to simplify GenericMethod handling.
1872         * class-internals.h (mono_method_get_context): New accessor function.
1873         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
1874         rather than directly accessing '->context' field.
1875
1876         * class-internals.h (_MonoGenericParam.method): Move ...
1877         (_MonoGenericContainer): ... here.  Add into union with klass field.
1878         * class.c, icall.c, loader.c, metadata.c, reflection.c:
1879         Update to changes.
1880
1881 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
1882
1883         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
1884         the wrapper type enum and reduce relocations.
1885
1886 2007-01-12  Raja R Harinath  <rharinath@novell.com>
1887
1888         * reflection.c (inflate_mono_method): Reuse method instantiation
1889         from the generic method, if available.
1890
1891 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1892
1893         * marshal.c (emit_marshal_variant): Fix conv_arg
1894         type in last commit, based on whether parameter is byref.
1895         
1896 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1897
1898         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
1899         marshalling.
1900         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
1901         MONO_TYPE_OBJECT back for VARIANT support.
1902
1903 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1904
1905         * marshal.c, marshal.h, icall-def.h: Implement 
1906         Marshal.ReAllocCoTaskMem.
1907
1908 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
1909
1910         * marshal.c: memory retention fixes: use the proper
1911         image cache for runtime_invoke method lookups.
1912
1913 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
1914
1915         * mempool.c: added code to help debug mempool allocations.
1916
1917 2007-01-11  Dick Porter  <dick@ximian.com>
1918
1919         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
1920         support (experimenting with faking it with IP_MTU_DISCOVER for
1921         systems that don't have IP_DONTFRAGMENT.)
1922         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
1923         icall.
1924
1925         * icall-def.h: new System.Net.Sockets.Disconnect icall.
1926
1927         * socket-io.h: Add new fields to MonoSocketAsyncResult
1928         corresponding to the new ones in Socket.cs.
1929
1930 2007-01-11  Raja R Harinath  <rharinath@novell.com>
1931
1932         Fix IronPython regression mentioned in #80249
1933         * metadata.c (do_mono_metadata_parse_generic_class): Clear
1934         'cached_context' field, since it may have been initialized as a
1935         side-effect of metadata parsing.
1936
1937         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
1938         (_MonoGenericClass.cached_class): Move here and rename from lone
1939         remaining field of ...
1940         (_MonoInflatedGenericClass): ... this.  Remove.
1941         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
1942         to changes.
1943
1944         Fix mcs/tests/test-128.cs regression.
1945         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
1946         2007-01-10 change below.
1947         [MONO_TYPE_OBJECT]: Recurse into array case.
1948
1949 2007-01-11  Raja R Harinath  <harinath@gmail.com>
1950
1951         * class-internals.h (mono_get_inflated_generic_class): Remove.
1952         * class.c (mono_get_inflated_generic_class): Remove.
1953         (mono_generic_class_get_class): Rename from
1954         mono_class_create_generic.
1955         (mono_class_from_mono_type) [GENERICINST]: Use it.
1956         * reflection.c, metadata.c: Update to changes.  Use
1957         'mono_class_from_mono_type'.
1958
1959 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
1960
1961         * reflection.c: use passed type when encoding an array element
1962         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
1963
1964 2007-01-09  Robert Jordan  <robertj@gmx.net>
1965
1966         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
1967         result arguments (someDelegate.EndInvoke (unrelatedAres)).
1968         Fixes bug #80392.
1969
1970 2007-01-09  Raja R Harinath  <rharinath@novell.com>
1971
1972         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
1973
1974         * object.c (set_value): Avoid aliasing between type->data.klass
1975         and type->data.generic_class.
1976
1977         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
1978
1979 2007-01-08  Raja R Harinath  <rharinath@novell.com>
1980
1981         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
1982         between type->data.klass and type->data.generic_class.
1983
1984 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
1985
1986         * marshal.c: In MS.NET, StringBuilder objects are not copied by
1987         value in out parameters.
1988
1989 2007-01-08  Raja R Harinath  <rharinath@novell.com>
1990
1991         Simplify invariant for MonoGenericClass::klass field.
1992         * class.c (mono_class_create_generic): Verify 'klass' is null.
1993         * metadata.c (do_mono_metadata_parse_generic_class): Don't
1994         initialize 'klass' field.
1995
1996 2007-01-05  Raja R Harinath  <rharinath@novell.com>
1997
1998         Ongoing work to avoid redundant data and simplify invariants.
1999         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
2000         'generic_class', and change type to a GenericInst.
2001         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
2002         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2003
2004 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
2005
2006         * class.c : skip io-layer under PLATFORM_WIN32.
2007
2008 2007-01-03  Tor Lillqvist  <tml@novell.com>
2009
2010         Fix #80305: In a bundled executable, look in the bundled exe
2011         assembly to determine the runtime version. Add the possibility to
2012         bundle also the machine.config file.
2013         
2014         * assembly.c (mono_assembly_open_from_bundle): Make
2015         non-static. Allow being called even if we have no bundled
2016         assemblies, and return NULL right away in that case.
2017
2018         * domain-internals.h: Declare mono_assembly_open_from_bundle()
2019         here.
2020
2021         * domain.c (app_config_parse): Take an assembly exe file name as
2022         parameter instead of a config file name. Check for a bundled
2023         config file for that assembly by calling
2024         mono_config_string_for_assembly_file() (see below) before looking
2025         for one in the file system.
2026         (get_runtimes_from_exe): Corrsponding change to call of
2027         app_config_parse().
2028         (get_runtimes_from_exe): Check for bundled assembly exe file first
2029         by calling mono_assembly_open_from_bundle(). If no bundled
2030         assembly exe file is found, call mono_image_open() as before to
2031         look it up in the file system.
2032
2033         * mono-config.c: Add variable bundled_machinec_onfig.
2034         (mono_config_string_for_assembly_file): New function.
2035         (mono_config_for_assembly): Move code snippet that looks for a
2036         bundled assembly .config file into the above new function. Call
2037         it.
2038         (mono_register_machine_config, mono_get_machine_config): New
2039         functions to set and retrieve
2040
2041         * assembly.h: Declare mono_register_machine_config().
2042
2043         * mono-config.h: Declare mono_get_machine_config() and
2044         mono_config_string_for_assembly_file().
2045
2046         * icall.c: No declaration of environ necessary on Win32. It is
2047         declared (as a macro expanding to a function call) in stdlib.h.
2048         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
2049         New internal mono function. Returns the value of
2050         mono_get_machine_config() as a Mono string.
2051
2052         * icall-def.h: Add get_bundled_machine_config().
2053
2054 2007-01-04  Raja R Harinath  <rharinath@novell.com>
2055
2056         Remove redundant field
2057         * class-internals.h (_MonoGenericContext.container): Remove field.
2058         * loader.c (mono_method_get_signature_full): Don't parse a
2059         "container" for a signature parse when the signature is inflated
2060         immediately.
2061         (method_from_methodspec): Likewise, for a generic_inst.
2062         * class.c, metadata.c, reflection.c: Update to changes.
2063
2064 2006-01-04  Raja R Harinath  <rharinath@novell.com>
2065
2066         * class-internals.h (_MonoGenericClass): Rename 'context' field to
2067         'cached_context', and change semantics -- it starts off NULL, and
2068         is initialized on demand.
2069         * class.c (mono_generic_class_get_context): New accessor to
2070         replace 'context' field accesses.
2071         (mono_class_get_context): New helper.
2072         (*): Update to changes.
2073         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
2074
2075 2007-01-03  Miguel de Icaza  <miguel@novell.com>
2076
2077         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
2078         before the memcpy.   Fixes Marshal2 regression.
2079
2080 2007-01-02  Jb Evain  <jbevain@gmail.com>
2081
2082         * blob.h: add a MONO_TYPE_ENUM definition
2083         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
2084         fix the encoding of arrays of enums in custom attributes.
2085
2086         Fixes #79666.
2087
2088 2007-01-01  Miguel de Icaza  <miguel@novell.com>
2089
2090         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
2091         string is null terminated, but only cut the string short if it
2092         overflows the buffer.   
2093         
2094         (mono_string_to_byvalstr): Also fix this routine.   The code here
2095         was not properly terminating a string (it was only terminated
2096         because of the previous catch-all memset). 
2097
2098         I left the memset, because I do not know if applications expect
2099         the runtime to clear this region. 
2100
2101         Fixes #79944.
2102
2103         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
2104         Clear the error before returning to unmanaged code to prevent the
2105         runtime from being confused later on (fixes  80420).
2106         (ves_icall_type_from_name): Always call mono_loader_clear_error
2107         after parsing a type that could have failed.
2108         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
2109
2110         * loader.c (mono_loader_clear_error): Fix indentation.
2111
2112 2006-12-28  Martin Baulig  <martin@ximian.com>
2113
2114         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
2115
2116 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2117
2118         * reflection.c: patch from Rolf Bjarne Kvinge to fix
2119         getting a token for an EnumBuilder.
2120
2121 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2122
2123         * reflection.c: be more careful in case resource generation
2124         fails to create the data array.
2125
2126 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2127
2128         * sgen-gc.c: write barrier for clone and fix unregister handles.
2129
2130 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2131
2132         * reflection.c: some fixes needed in the generics code for the moving GC.
2133
2134 2006-12-22  Robert Jordan  <robertj@gmx.net>
2135
2136         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
2137         account. Fixes bug #80299.
2138
2139 2006-12-21  Raja R Harinath  <rharinath@novell.com>
2140
2141         Fix WaitHandle usage in delegates.
2142         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
2143         * object.c (mono_wait_handle_new): Use the property set method to
2144         initialize the handle.
2145         (mono_wait_handle_get_handle): New.
2146         * threadpool.c (mono_async_invoke): Use it.
2147         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
2148         Likewise.
2149         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
2150
2151 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
2152
2153         * marshal.c (emit_marshal): Call emit_marshal_variant and
2154         emit_marshal_com_interface when applicable.
2155         (emit_marshal_variant, emit_marshal_com_interface): Add
2156         methods for this case and remove if's from emit_marshal_object.
2157         
2158 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
2159
2160         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
2161
2162 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
2163
2164         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
2165         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
2166         and GlobalFree on Windows. Remove FIXME.
2167
2168 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2169
2170         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
2171         implementation for managed objects.
2172
2173 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
2174
2175         * object.c: implemented code to be used for checking
2176         that no reference field overlaps with non-references.
2177
2178 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2179
2180         * threadpool.c: fix queue code to be compatible with the
2181         moving GC.
2182
2183 2006-12-18  Miguel de Icaza  <miguel@novell.com>
2184
2185         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
2186         in structures by throwing ArgumentNullException.
2187
2188         (emit_marshal_safehandle): Also when they are null parameters.
2189
2190         (emit_marshal_safehandle): Add support for ref
2191         SafeHandles parameters
2192
2193 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2194
2195         * profiler.c: updated to use the mono-dl API instead of
2196         gmodule.
2197
2198 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2199
2200         * profiler.c: updated to use the mono-dl dynamic loading
2201         API instead of gmodule.
2202
2203 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2204
2205         * profiler.c: use readlink, older versions of glib don't have
2206         g_file_read_link ().
2207
2208 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2209
2210         * profiler.c: try to detect the path to mono if libc fails to provide
2211         a useful name (bug #80286).
2212
2213 2006-12-16  Raja R Harinath  <rharinath@novell.com>
2214
2215         Fix #80242
2216         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
2217         instance, use the generic type definition instead.
2218         (ves_icall_Type_GetNestedTypes): Likewise.
2219         * class.c (mono_class_create_generic): Always set the
2220         nested_classes of a generic instance to NULL, even if the generic
2221         type definition has nested types.
2222
2223 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2224
2225         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2226         and fix on Linux.
2227         
2228 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2229
2230         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2231         my arguments were in the wrong order.   I also fixed the Windows
2232         version which seems to have had the same issue.
2233
2234         (mono_free_bstr): On Unix, this is g_free.
2235         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2236         conversions (for the tests in corlib to pass).
2237
2238 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2239
2240         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2241         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2242         exception if a ref SafeHandle in a struct has changed).
2243         
2244         (emit_struct_conv): Do not perform layout checks for classes
2245         derived from SafeHandle, as those are specially handled. 
2246
2247         (emit_object_to_ptr_conv): Add support for
2248         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2249
2250         (emit_marshal_safehandle): Implement conversion of return values
2251         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2252         
2253         * threads.c: WaitHandle now is compiled with two different handles
2254         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2255         for 2.0.
2256         
2257         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2258         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2259         these routines to cope with both kinds of fields.
2260
2261 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2262
2263         * metadata.c (mono_type_to_unmanaged): Handle the case where
2264         type->data.klass is a SafeHandle, and in that case, return the
2265         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2266         MONO_MARSHAL_CONV_SAFEHANDLE. 
2267
2268 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2269
2270         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2271         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2272         calling emit_marshal_object.
2273
2274         (emit_marshal_safehandle): Implement marshalling of
2275         SafeHandle parameters (no ref support yet).
2276
2277         (MarshalAction): Document the defines as I implement
2278         them for SafeHandle.
2279
2280         (emit_marshal_object): indentation police.
2281
2282         * class-internals.h: Define MonoSafeHandle.
2283         Add safehandle_class to MonoDefaults type.
2284
2285         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2286         list of classes to check for fields. 
2287
2288         * domain.c (mono_init_internal): Add SafeHandle to the list of
2289         mono_defaults loaded.
2290
2291 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2292
2293         Fix #80253
2294         * reflection.c (mono_reflection_bind_generic_parameters): If the
2295         generic type definition is a type builder, ensure that it is fully
2296         initialized before instantiating it.  Kill some dead code.
2297
2298 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2299
2300         * object.c: clear the loader_error () before loading
2301         more metadata stuff (bug #80258).
2302
2303 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2304
2305         * icall.c, icall-defs.h: type modifiers icalls for
2306         parameters and properties.
2307
2308 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2309
2310         * object.c, icall.c: fixed warnings.
2311
2312 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2313
2314         * marshal.c: fixed a couple of leaks and coding style in a few places.
2315
2316 2006-12-08  Dick Porter  <dick@ximian.com>
2317
2318         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2319         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2320         80173.
2321
2322 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2323
2324         * process.c: ProcessStartInfo may have only filename set and
2325         arguments can be NULL.
2326
2327 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2328
2329         * icall.c: fix leak found by Robert Jordan.
2330
2331 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2332
2333         * marshal.c, marshal.h: generate managed method to access an element
2334         of a multi-dimensional array.
2335
2336 2006-11-30  Paolo Molaro (lupus@ximian.com)
2337
2338         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2339
2340 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2341
2342         * icall.c: back out GetFields () fix until the serialization code is
2343         fixed to not depend on the incorrect behaviour.
2344
2345 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2346
2347         * profiler.c: provide defaults if none are set.
2348
2349 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2350
2351         * Makefile.am, attrdefs.h: new public header file with
2352         constants for attributes for use by embedders.
2353
2354 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2355
2356         * icall.c: GetFields () fix for bug #80064.
2357
2358 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
2359
2360         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
2361         removed long unused icalls.
2362
2363 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2364   
2365         * marshal.c: 
2366                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2367                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2368                 can be generated without a delegate class.
2369                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2370         
2371         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2372
2373 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2374
2375         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2376         #80069.
2377
2378 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2379
2380         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2381         icall-def.h: added icalls needed by System.GC.
2382
2383 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2384
2385         * loader.c: ensure the class in catch clauses is handled
2386         correctly for generics methods (fixes bug#79980).
2387
2388 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2389
2390         * monitor.h, monitor.c: added mono_locks_dump () function
2391         to help debug deadlocks involving managed locks.
2392
2393 2006-11-13  Dick Porter  <dick@ximian.com>
2394
2395         * file-io.c (get_file_attributes): If the file is a symlink try
2396         and get the stat data for the target, but also add the
2397         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2398         the specs for the windows symlink support, but will probably have
2399         to be reworked when I have test data from a vista machine.  Fixes
2400         bug 79887.
2401
2402 2006-11-13  Dick Porter  <dick@ximian.com>
2403
2404         * gc.c (mono_domain_finalize): 
2405         * marshal.c (mono_delegate_begin_invoke): 
2406         * threadpool.c (socket_io_init, mono_thread_pool_init)
2407         (mono_thread_pool_finish): 
2408         * monitor.c (mono_monitor_try_enter_internal): 
2409         * threads.c (mono_thread_resume, mono_thread_init)
2410         (mono_thread_suspend_all_other_threads)
2411         (mono_thread_execute_interruption): 
2412         * appdomain.c (mono_domain_unload): Check for NULL error returns
2413         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2414         75733.
2415
2416 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2417
2418         * process.c
2419         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2420         Only close the handle if the value of the handle is not
2421         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2422         robust.
2423
2424         Improvement for #75733, so that we do not run into this problem. 
2425
2426         
2427         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2428         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2429         internal variables.  Fixes #79462 
2430         
2431
2432 2006-11-09  Dick Porter  <dick@ximian.com>
2433
2434         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2435         Use poll() not select().  Fixes bug 79397.
2436
2437 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2438
2439         Fix #79872
2440         * assembly.c (mono_assembly_load_from_full): Check that the given
2441         image has an assembly manifest.
2442
2443 2006-11-09  Ankit Jain  <jankit@novell.com>
2444
2445         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2446         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2447         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2448
2449 2006-11-07  Dick Porter  <dick@ximian.com>
2450
2451         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2452         Put the old resolver behaviour back for pre-2.0 profiles.
2453
2454 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2455
2456         * threadpool.c: precise GC and locking fixes.
2457
2458 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2459
2460         * class.c: don't load types that have an explicit unaligned
2461         managed reference. Provide better info in the TypeLoad exception.
2462         Part of the fix for bug #79744.
2463         * object.c: use the correct check for class type load issues.
2464
2465 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2466
2467         * class.c: enforce alignment of fields with managed references
2468         even when Pack=1 is forced by the user (bug #77788).
2469
2470 2006-11-03  Dick Porter  <dick@ximian.com>
2471
2472         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2473         If the address reverse lookup fails, return it as the hostname
2474         anyway.  Fixes bug 79721.
2475
2476 2006-11-03  Dick Porter  <dick@ximian.com>
2477
2478         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
2479         Fix build on Windows.
2480
2481 2006-11-02  Dick Porter  <dick@ximian.com>
2482
2483         * icall-def.h: 
2484         * object-internals.h: 
2485         * exception.c (mono_get_exception_thread_interrupted): 
2486         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
2487         Fixes bug 74525.
2488
2489         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
2490         Check for pending Thread.Interrupt.
2491
2492 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
2493         * loader.c: Fixed bug 79684.
2494
2495 2006-10-27  Dick Porter  <dick@ximian.com>
2496
2497         * file-io.c (get_file_attributes): Force symlinks to directories
2498         to be returned as a regular file.  Fixes bug 79733.
2499 2006-10-26  Dick Porter  <dick@ximian.com>
2500
2501         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
2502         CreateFile to open a directory then we need to set the
2503         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
2504
2505 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
2506
2507         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
2508         friends.
2509
2510 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2511
2512         * sgengc.c: small cleanup of timer code.
2513
2514 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2515
2516         * sgen-gc.c: fix some warnings and start adding support for
2517         complete object removal on domain unload.
2518
2519 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
2520
2521         * assembly.c: build_assembly_name should not consider a version
2522         number without build or revision number invalid. Fixes bug #79715.
2523
2524 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
2525
2526         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
2527         call kernel32 function OutputDebugString directly.
2528         
2529         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2530         
2531 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
2532
2533         * reflection.c: small cleanup, using a function to insert a MonoString
2534         in the string heap.
2535
2536 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
2537
2538         * reflection.c: moving GC fixes.
2539
2540 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
2541
2542         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
2543         all the objects with finalizers belonging to an unloading appdomain.
2544
2545 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
2546
2547         * sgen-gc.c: added ability to allocate even when the nursery is fully
2548         pinned and fixed a couple of bugs.
2549
2550 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2551
2552         * threads.h: Revert the last change for now.
2553
2554         * threads.h (mono_thread_get_pending_exception): Rename this to
2555         mono_thread_get_undeniable_exception ().
2556
2557 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
2558
2559         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
2560         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
2561         when fname does not refer to valid assembly. This result in a more
2562         meaningful error message.
2563         * exception.c: added mono_get_exception_bad_image_format2 which 
2564         constructs a BadImageFormatException using the ctor taking a custom
2565         message and the file name. Passing in a NULL msg results in a default
2566         message.
2567         * exception.h: define mono_get_exception_bad_image_format2 function.
2568         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
2569         when file name pointed to an invalid IL image. Use 
2570         mono_get_exception_file_not_found2 to construct FileNotFoundException,
2571         as this results in a more meaningful error message.
2572
2573 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2574
2575         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
2576         #79465.
2577
2578 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
2579
2580         * metadata.c (mono_type_size): Change the align parameter to guint32 for
2581         consistency with the other _size functions.
2582         (mono_type_stack_size): Ditto.
2583
2584         * class.c object.c icall.c: Fix warnings caused by the above change.
2585
2586         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
2587
2588         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
2589
2590         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
2591
2592 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2593
2594         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
2595         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
2596         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
2597         threadpool.h, threads-types.h: mark more internal functions.
2598
2599 2006-10-11  Dick Porter  <dick@ximian.com>
2600
2601         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2602         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
2603         reproduce the bug even before applying the fix.)
2604
2605 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
2606
2607         * reflection.c: allow retrieving attributes for arguments in generic
2608         methods (bug #79241).
2609
2610 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
2611
2612         * debug-mono-symfile.c: properly check fopen () result (found by
2613         coverity).
2614
2615 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
2616
2617         * reflection.c: make error message clearer and fixed two
2618         issuelets found by Coverity.
2619
2620 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
2621
2622         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
2623
2624 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2625
2626         * object-internals.h, gc-internal.h, profiler-private.h:
2627         mark internal functions.
2628
2629 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2630
2631         * reflection.c: put data in the text section.
2632         * icall.c: recognize more types in type_from_typename ().
2633         * process.c, marshal.c: added some GC FIXMEs.
2634
2635 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2636
2637         * loader.c: check for NULL before initializing.
2638
2639 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
2640
2641         * gc.c (finalizer_thread): Use a non-alertable wait here.
2642
2643         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
2644         until the correct solution is found.
2645
2646 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2647
2648         * reflection.c (mono_module_get_object): Avoid an assert when operating on
2649         modules with no metadata. Fixes #79596.
2650
2651         * image.c (load_metadata_ptrs): Put back the error message when
2652         the #- heap is encountered since the support is not complete yet.
2653
2654 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2655
2656         * gc.c: do not allow the user to SuppressFinalize () a
2657         delegate because it would leak the trampoline if present.
2658
2659 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2660
2661         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
2662         PropertyPtr table.
2663
2664 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
2665
2666         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
2667
2668         * metadata.c (mono_metadata_get_param_attrs): Ditto.
2669
2670         * row-indexes.h: Add definitions for *Ptr tables.
2671
2672         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
2673
2674         * metadata.c (mono_metadata_translate_token_index): New helper function to
2675         translate table indexes used in uncompressed metadata.
2676         (mono_metadata_decode_table_row): Ditto.
2677         (mono_metadata_decode_table_row_col): Ditto.
2678
2679         * metadata.c: Add table schema for *Ptr tables.
2680
2681         * class.c loader.c: Use the new helper function to access the affected metadata
2682         tables.
2683         
2684         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
2685         #38532.
2686         
2687 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
2688
2689         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
2690         sequences which can be unbounded in size. Fixes #79583.
2691
2692 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
2693
2694         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
2695         static initialization.
2696
2697         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
2698
2699         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
2700
2701         * domain.c (mono_domain_free): Free up type_init_exception_hash.
2702
2703         * object.c (mono_runtime_class_init): Implement correct semantics when a static
2704         ctor fails, i.e. throw the same exception on subsequent accesses.
2705         
2706 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
2707
2708         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
2709         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
2710         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
2711         Handle marshalling of interfaces and VARIANTs contained in structs.
2712         
2713         Code is contributed under MIT/X11 license.
2714         
2715 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
2716
2717         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
2718         
2719         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
2720         mempool.
2721
2722 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2723
2724         * console-io.c: ignore previous SIGINT handler.
2725
2726 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
2727
2728         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
2729         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
2730         #79460, #79461, #79485.
2731
2732         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
2733
2734         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
2735         #79217.
2736
2737 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
2738
2739         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
2740         could be generated from it.
2741
2742 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
2743
2744         * rand.c: fix read loop to correctly handle EINTR.
2745
2746 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2747
2748         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
2749         internal calls are defined to keep methods closer to the declaring
2750         type and allow a significant reduction in runtime relocations and
2751         memory usage.
2752
2753 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
2754
2755         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
2756         exception message to have FileNotFoundException use the default
2757         assembly load error message. Fixes bug #79426.
2758         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
2759
2760 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2761
2762         * threadpool.c: (start_thread_or_queue) use the root domain when
2763         creating the thread instead of the async object one.
2764
2765 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
2766
2767         * class.c, object.c, class-internals.h, reflection.c:
2768         for arrays, store element_size inside MonoClass (speedup
2769         for array object creation).
2770
2771 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
2772
2773         * icall.c: fixed CodeBase to use the file name and not the module
2774         name (bug #79365).
2775
2776 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
2777
2778         * mono-debug.c, mono-debug.h: export find_method as
2779         mono_debug_find_method ().
2780
2781 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2782
2783         * debug-helpers.c, class-internals.h: added a few functions useful
2784         when debugging under gdb.
2785
2786 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2787
2788         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
2789         characters that need special handling.
2790
2791 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
2792
2793         * mono-config.c: make the os/cpu specification more flexible,
2794         allowing lists and negation.
2795
2796 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
2797
2798         * marshal.c: COM Interop fixes. Handle case where method->klass.
2799         is interface. Handle BSTR/MonoString when null. Use CDECL as 
2800         calling convention on non-windows platforms. This is for
2801         compatibility with XPCOM and MainWin COM.
2802         
2803         Code is contributed under MIT/X11 license.
2804         
2805
2806 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
2807
2808         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
2809         correctly. Fixes #79217.
2810
2811         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
2812
2813 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
2814
2815         * mono-config.c: allow both an os and cpu attribute for dllmap
2816         and dllentry elemnets to enable a single config file to be used
2817         for multiple architectures.
2818
2819 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
2820
2821         * loader.c: MonoLoaderError was cleared too soon on load failure.
2822         Fixes bug #79424.
2823
2824 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
2825
2826         * icall.c: use the defining class vtable when accessing a
2827         static field, not a pobblibly derived class.
2828
2829 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
2830
2831         * icall.c string-icalls.c: Remove references to unicode.h.
2832
2833         * unicode.h unicode.c Makefile.am: Remove these unused source files.
2834
2835         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
2836
2837         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
2838         indicating the image where custom marshaller types should be looked up.
2839         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
2840         custom marshallers, instead of corlib. Fixes #79425.
2841
2842 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
2843
2844         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
2845
2846 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
2847
2848         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
2849         Implement Environment.ProcessorCount.
2850         
2851         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
2852         Implement Environment.ProcessorCount.
2853         
2854         * icall.c: 
2855         Add Environment.ProcessorCount icall.
2856         
2857         Patch by Jason McFall.
2858
2859 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2860
2861         * assembly.c: don't append .exe/.dll when the filename already contains
2862         one of those extensions.
2863
2864 2006-09-12  Martin Baulig  <martin@ximian.com>
2865
2866         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
2867         to array interfaces.
2868
2869 2006-09-11  Martin Baulig  <martin@ximian.com>
2870
2871         * reflection.c (mono_image_build_metadata): Create the
2872         MethodImpl's after emitting all types and methods, so we don't
2873         need another fixup pass for them.
2874
2875 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
2876
2877         * class.c (mono_class_from_name_case): Fix regression introduced by the last
2878         change.
2879
2880 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
2881
2882         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
2883         unload.
2884
2885 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
2886
2887         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
2888         args is not set. Fixes #78926.
2889
2890 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
2891
2892         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
2893
2894         * image.c (load_class_names): Move this to class.c, and rename it to 
2895         'mono_image_init_name_cache'.
2896         (load_modules): Fix a warning.
2897
2898         * class.c icall.c image.c: Initialize image->name_cache lazily.
2899
2900         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
2901         on its name using information in the AOT file.
2902
2903         * class.c (mono_class_from_name): Use the new hook function.
2904
2905 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
2906
2907         * reflection.c (mono_param_get_objects): Handle enum default parameter values
2908         correctly.
2909
2910         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
2911         Fixes #79289.
2912         
2913 2006-09-06  Martin Baulig  <martin@ximian.com>
2914
2915         * icall.c (mono_lookup_internal_call): Small fix.
2916
2917 2006-09-05  Raja R Harinath  <rharinath@novell.com>
2918
2919         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
2920         double g_free.
2921
2922 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
2923
2924         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
2925         when --debug is specified.
2926
2927 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
2928
2929         * class.c (setup_generic_array_ifaces): Fix a warning.
2930
2931 2006-09-04  Miguel de Icaza  <miguel@novell.com>
2932
2933         * Temporarily remove the patch to assemly.c that checks the
2934         assembly versions as it breaks our gacutil.
2935
2936 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
2937
2938         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
2939
2940         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
2941         a net 1.0 runtime.
2942
2943         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
2944         created using the default ctor. Fixes #79152.
2945         (mono_string_builder_to_utf16): Ditto.
2946
2947 2006-09-01  Martin Baulig  <martin@ximian.com>
2948
2949         Fix handling of the generic array interfaces.
2950
2951         * class-internals.h
2952         (MonoDefaults): Removed `generic_array_class' and added
2953         `generic_ilist' class.
2954
2955         * class.c
2956         (mono_bounded_array_class_get): Add the new generic array interfaces.
2957         (setup_generic_array_ifaces): New static method; create vtable
2958         entries for each method in the generic array interfaces.
2959
2960         * metadata.c
2961         (select_container): Allow "parent-less" generic methods.
2962
2963         * marshal.c
2964         (mono_marshal_get_generic_array_helper): New public method.
2965
2966         * icall.c
2967         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
2968         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
2969         moved the interncall into System.Array.
2970
2971 2006-09-01  Raja R Harinath  <rharinath@novell.com>
2972
2973         A few more cases of avoiding work on types with ->byref set.
2974         Has the real fix for #79238
2975         * icall.c (is_generic_parameter): New helper.
2976         (ves_icall_Type_GetGenericParameterPosition): Use it.
2977         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
2978         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
2979         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
2980         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
2981         reference types.
2982         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
2983         reference types.
2984         (ves_icall_Type_get_IsGenericInstance): Likewise.
2985         (ves_icall_Type_get_IsGenericType): Likewise.
2986
2987 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
2988
2989         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
2990         class if possible.
2991
2992         * mempool.h (mono_mempool_get_allocated): New helper function.
2993
2994         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
2995         change.
2996
2997         * mempool.c: Fix warnings and the calculation of stats.
2998
2999         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
3000
3001         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
3002
3003         * loader.c (mono_get_method_from_token): Update method_count stat.
3004
3005         * class-internals.h (MonoStats): Add some stats.
3006
3007 2006-08-31 Robert Jordan  <robertj@gmx.net>
3008
3009         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
3010         with managed variants.
3011         All code is contributed under the MIT/X11 license.
3012         
3013 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
3014
3015         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
3016         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
3017
3018         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
3019
3020         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
3021         with cycles in classes.
3022
3023         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
3024
3025         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
3026         missing a [MarshalAs] directive. Fixes #79203.
3027
3028         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
3029         klass->marshal_info. Fixes #79217.
3030
3031 2006-08-30  Martin Baulig  <martin@ximian.com>
3032
3033         Committing a patch from Joachim Ante <joe@otee.dk>:
3034         Add support for binary data symbol stores.
3035
3036         * debug-mono-symfile.c
3037         (mono_debug_open_mono_symbol_file): Renamed into
3038         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
3039         arguments.
3040
3041         * mono-debug.c
3042         (mono_debug_open_image): Added `raw_contents' and `size' args.
3043         (mono_debug_init_2_memory): New public function.
3044
3045 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
3046
3047         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
3048
3049 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3050
3051         * appdomain.c: implement support for ShadowCopyFiles.
3052
3053 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3054
3055         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
3056         when value is NULL (and should remove CID #51).
3057
3058 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3059
3060         * image.c: moved 2 functions to ../utils.
3061
3062 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3063
3064         * gc.c: cope with the target object of a GC handle being NULL
3065         (bug #78877).
3066
3067 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
3068
3069         * class.c: recursively check parent's explicit implementations
3070         of interface methods (fixes bug #79125).
3071
3072 2006-08-19  Miguel de Icaza  <miguel@novell.com>
3073
3074         * filewatcher.c: Avoid warnings when building, do not redefine
3075         constants that are defined.
3076
3077         Remove warnings.
3078
3079 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3080
3081         * image.c: don't fail when the link points to an absolute path.
3082
3083 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
3084
3085         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
3086         Fix CID #3.
3087
3088 2006-08-17  Miguel de Icaza  <miguel@novell.com>
3089
3090         * image.c (full_path): A new method used to obtain the actual path
3091         of an assembly even in the presence of symbolic links.  
3092
3093         This is necessary for the case where we are running a binary that
3094         has been GACed, but we are using the "published" path name
3095         ($prefix/mono/1.0/blah.exe) which happens to point to the real
3096         file in the GAC.
3097
3098         This was the source of the failure for the `xsp' command with the
3099         recent AppDomain changes, as far as the runtime was concerned,
3100         there were two different assemblies: $prefix/mono/1.0/blah.exe and
3101         $prefix/mono/gac/blah/version/blah.exe.
3102
3103         (do_mono_image_open): use full path
3104
3105 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3106
3107         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
3108
3109 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
3110
3111         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
3112         domain_id is supplied. Fix CID #241 and corlib's unit tests.
3113
3114 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3115
3116         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
3117         small structures. Fixes #78990.
3118
3119 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3120
3121         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
3122
3123         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
3124
3125 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3126
3127         * appdomain.c:
3128         * marshal.c: don't load all the assemblies from a domain into newly
3129         created ones. The new domains might have different rules and load
3130         assemblies from different locations. Fixes bug #76757.
3131
3132         Patch by Lluis. Conflicts resolved by Brian Crowell.
3133
3134 2006-08-16  Alp Toker  <alp@atoker.com>
3135
3136         * socket-io.c: First half of the fix for #79084.
3137         Set sa_size to the length of the content, not that of the struct.
3138         Don't add NULL suffix to the content, this should be done in
3139         managed code if needed.
3140
3141 2006-08-14  Raja R Harinath  <rharinath@novell.com>
3142
3143         Fix part of #79012
3144         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
3145         mono_metadata_parse_type returns NULL.
3146
3147 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
3148
3149         * normalization-tables.h : new file for string normalization data.
3150         * locales.c, locales.h, icall.c :
3151           added load_normalization_resource() for string normalization,
3152           and icall as well.
3153         * Makefile.am : added normalization-tables.h to the sources.
3154
3155 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
3156
3157         * marshal.c: Add more helper functions to reduce code duplication and use them
3158         everywhere.
3159
3160 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
3161
3162         * marshal.c: Fix non-x86 stdcall warnings.
3163         
3164         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
3165         them everywhere.
3166
3167 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
3168
3169         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
3170         type check on multi-dimensional arrays. Fixes #79000.
3171
3172 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
3173
3174         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
3175         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
3176         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
3177         * class-internals.h: add is_com_object to class structure.
3178         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
3179         null checks to COM object marshalling. Fix .ctor call on RCW.
3180         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
3181         
3182         All code is contributed under the MIT/X11 license.
3183
3184 2006-08-09  Dick Porter  <dick@ximian.com>
3185
3186         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
3187         racing mono_monitor_allocator_lock() somewhere, so don't delete
3188         the critical section for now.  Found by running and exiting
3189         monodevelop.
3190
3191 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
3192
3193         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
3194         (ves_icall_System_ComObject_FindInterface): Ditto.
3195         (ves_icall_System_ComObject_CacheInterface): Ditto.
3196
3197         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
3198         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
3199
3200 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3201
3202         * threadpool.c: treat pipes from process asynchronous reads as sockets
3203         when reading from them, so we get select/poll or epoll to wait for
3204         data.
3205
3206 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
3207
3208         * loader.c: Fix a typo (CID #233) in the null check.
3209
3210 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
3211
3212         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
3213         Hopefully fixes #78949.
3214         
3215         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
3216         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
3217         bytes. Fixes #78972.
3218
3219 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3220
3221         * filewatcher.c: we need to set errno here.
3222
3223 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3224
3225         * filewatcher.c: let Win32Exception get the error value.
3226
3227 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3228
3229         * filewatcher.c: translate errno into win32 errors for Win32Exception
3230         to know what happened.
3231
3232 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3233
3234         * threadpool.c: Fix more warnings.
3235
3236         * assembly.c (search_loaded): Fix warnings.
3237
3238         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3239         (mono_async_invoke): Ditto.
3240
3241 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3242
3243         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3244         entries for __ComObject type in addition to ComImport types.
3245         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3246         about hash table.
3247         
3248         All code is contributed under the MIT/X11 license.
3249
3250 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3251
3252         * image.c: avoid tentative loading of modulerefs that contain
3253         no metadata (P/Invoke library names).
3254
3255 2006-07-28  Dick Porter  <dick@ximian.com>
3256
3257         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3258         mono_loader_lock() somewhere, so don't delete the critical section
3259         for now.  Found by running and exiting monodevelop.
3260
3261 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3262
3263         * filewatcher.c: define the inotify syscalls when we're building on
3264         linux and have sys/syscall.h. The build system might not have support
3265         for inotify but the target system might have it.
3266
3267 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3268
3269         * domain.c: Documentation updates.
3270
3271         * loader.c (mono_free_method): Do not release the method
3272         information if we are being profiled, as profilers will use this
3273         information at shut down to present some data to the user.
3274
3275         This is needed so that the profiler does not crash, as the
3276         profiler tends to keep MonoMethods around, and they might become
3277         invalid if we free these.
3278
3279         (mono_get_method_constrained): Return the original CIL stream
3280         method as well, so verification can be performed against it.
3281
3282 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3283
3284         * filewatcher.[ch]: support for inotify file system watcher.
3285         * icall.c: add new internal calls for the inotify file system watcher.
3286
3287 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3288
3289         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3290         #78888.
3291
3292 2006-07-20  Dick Porter  <dick@ximian.com>
3293
3294         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3295         warning.
3296
3297 2006-07-20  Dick Porter  <dick@ximian.com>
3298
3299         * threads.c (start_wrapper): Do the thread cleanup while we still
3300         hold a reference to its object.  Fixes bug 78123.
3301
3302 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3303
3304         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3305         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3306           "managed-to-managed".
3307         * icall.c: Redirect string constructors that take sbyte* to
3308           ves_icall_System_String_ctor_RedirectToCreateString.
3309         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3310           to CreateString () methods with matching signature.
3311         * reflection.c: Use original security informations for
3312           MONO_WRAPPER_MANAGED_TO_MANAGED.
3313         * security-manager.c: Use original security informations for
3314           MONO_WRAPPER_MANAGED_TO_MANAGED.
3315         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3316           that is a placeholder and only its address should be used.
3317         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3318           that is a placeholder and only its address should be used.
3319
3320 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3321
3322         Begin implementing COM Interop.
3323         * appdomain.c: Increment corlib version.
3324         * class.c: Set ComImport classes' parent to __ComObject.
3325         * loader.c: Mark cominterop methods as such.
3326         * domain.c: Add __ComObject class to MonoDefaults structure.
3327         * image.c: Add 2 hashtables to the image for COM Interop related methods
3328         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3329         using the mempool allocator
3330         
3331         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3332         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3333         declaration for mono_metadata_type_dup_mp.
3334         
3335         * debug-helpers.c: Added strings for two additional wrapper types
3336         * object.c: Create proxy objects for ComImport classes
3337         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3338         and added __ComObject class to MonoDefaults structure.
3339         
3340         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3341         MonoComInteropProxy and MonoComObject.
3342         
3343         * marshal.c: Added support for COM Interop
3344         (signature_cominterop): Converts managed signature to corresponding
3345         unmanaged COM signature.
3346         (cominterop_get_function_pointer): gets unmanaged function pointer via
3347         COM object vtable
3348         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3349         (cominterop_get_method_interface): returns interface type that method is defined on
3350         (mono_mb_emit_cominterop_call): emits native call to function pointer
3351         gotten from vtable
3352         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
3353         that matches signature of unmanaged function.
3354         (cominterop_get_native_wrapper): wrapper around adjusted method call.
3355         (cominterop_get_invoke): forwards call from proxy to __ComObject
3356         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
3357         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
3358         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
3359         
3360         * marshal.h: Added Marshal icall declarations.
3361         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
3362         so we can access them in finalizer
3363         
3364 2006-07-14  Dick Porter  <dick@ximian.com>
3365
3366         * object.c (mono_type_initialization_cleanup): Fix a race
3367         condition by temporarily commenting out the critical section
3368         deletion.
3369
3370 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3371
3372         * reflection.c (create_custom_attr): Fix some warnings.
3373         (create_custom_attr_data): Ditto.
3374         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3375         types. Fixes #78855.
3376
3377 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3378
3379         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3380
3381         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3382
3383 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3384
3385         * reflection.c (resolve_object): Add support for DynamicMethod.
3386
3387         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3388         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3389
3390 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3391
3392         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3393         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3394
3395 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3396
3397         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3398         Fixes #77888.
3399
3400 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3401
3402         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3403         slightly: remove a shadow local variable.
3404
3405 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3406
3407         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3408         definition that introduces the virtual function slot.
3409         Also fix Coverity #105.
3410
3411 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3412
3413         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3414         for dynamic assemblies. Fixes #78724.
3415
3416 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3417
3418         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3419         Fixes #78722.
3420
3421 2006-06-21  Martin Baulig  <martin@ximian.com>
3422
3423         * reflection.c
3424         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3425         fixes #76484.
3426
3427 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3428
3429         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3430
3431 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3432
3433         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3434         nor TYPEREFs.
3435         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3436         Inflate result if necessary.
3437         (mono_class_get_full): Remove old version.  Rename from
3438         'mono_class_get' and add 'context' argument.  Pass it to
3439         ..._create_from_typespec.
3440         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3441         (mono_ldtoken): Revert change below.
3442
3443 2006-06-20  Martin Baulig  <martin@ximian.com>
3444
3445         * class.c (mono_ldtoken): Don't pass the generic context to
3446         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3447
3448 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3449
3450         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3451         and later freeing it. Fixes #78638.
3452
3453 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3454
3455         * icall.c (mono_class_get_throw): Revert over-zealous error
3456         throwing, the caller for mono_class_get_throw will cope with
3457         errors when classes are not properly initialized already.
3458
3459         The code still copes with loader exceptions though.
3460
3461         Fixes the regression in reftype1 and reftype3 from the CAS tests.
3462         
3463 2006-06-14  Miguel de Icaza  <miguel@novell.com>
3464
3465         Fixes the `make run1' version of RuntimeAbort (to be commited,
3466         source is in Bugzilla).
3467         
3468         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
3469         FALSE on class loading failure instead of returning true.
3470
3471         * class.c (mono_class_create_from_typedef): It is possible for
3472         mono_metadata_interfaces_from_typedef_full to fail if a class is
3473         not found, cope with this.
3474         
3475
3476 2006-06-14  Dick Porter  <dick@ximian.com>
3477
3478         * socket-io.c: 
3479         * process.c: Fix a bunch of signed/unsigned warnings from gcc
3480         4.1.1
3481
3482 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
3483
3484         * culture-info-table.h : oops, forgot to make it nsync with r61548.
3485
3486 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3487
3488         * icall.c: Another fix for building mono in Visual Studio.
3489
3490 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3491
3492         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
3493         
3494 2006-06-09  Martin Baulig  <martin@ximian.com>
3495
3496         * debug-mono-symfile.c: Put this back and really fix it this
3497         time. Sorry for all the trouble.
3498
3499 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
3500
3501         * icall.c (mono_class_get_throw): Fix a warning.
3502         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
3503         ReflectionTypeLoadException if needed. Fixes #78606.
3504
3505         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
3506         (mono_class_init): Ditto.
3507
3508         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
3509         ref_only exceptions.
3510         (mono_loader_clear_error): Make this work even if there is no error.
3511
3512 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
3513
3514         * object-internals.h marshal.c marshal.h icall.c: Implement method 
3515         Marshal.GetComSlotForMethodInfo using internal call.
3516
3517 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
3518
3519         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
3520         a function for signalling it.
3521
3522         * class.c (mono_class_from_typeref): Use the new kind of loader error when
3523         a referenced assembly is not found.
3524
3525         * loader.c (mono_loader_error_prepare_exception): Add support for 
3526         LOADER_ERROR_ASSEMBLY. Fix formatting.
3527
3528 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3529
3530         * domain.c appdomain.c class-internals.h marshal.c: Add support 
3531         for VARIANT marshalling on windows and increment corlib version
3532         since Variant struct was added.
3533
3534 2006-06-03  Miguel de Icaza  <miguel@novell.com>
3535
3536         * debug-mono-symfile.c: Revert Martin's previous patch which broke
3537         stack trace line information:
3538
3539         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
3540         (Martin) when looking up B which is between A and C, return A not C.
3541
3542         Bug is #78573.
3543
3544         Thanks to Alexander Olk for tracking this down.
3545
3546 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
3547
3548         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
3549         
3550         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
3551         avoid clobbering its value.
3552         (mono_string_to_lpstr): Fix a warning on windows.
3553
3554 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3555
3556         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
3557
3558         * reflection.c loader.c: Removed references to 'dummy' flag.
3559
3560         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
3561
3562         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
3563         it gets GC tracking.
3564
3565         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
3566         GC tracking.
3567         
3568         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
3569
3570         * marshal.c threadpool.c: Update callers of mono_async_result_new.
3571
3572         * appdomain.c: Bump corlib version.
3573
3574 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3575
3576         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3577         CEE_STIND_REF when working with object references.
3578
3579 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3580
3581         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
3582         Fixes #78539.
3583
3584 2006-05-30  Miguel de Icaza  <miguel@novell.com>
3585
3586         * loader.c (method_from_memberref): Fix argument value for
3587         mono_loader_set_error_method_load (I was passing the MonoClass
3588         instead of the class name char *).
3589
3590 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3591
3592         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3593         CEE_STIND_REF when working with object references.
3594
3595 2006-05-30  Martin Baulig  <martin@ximian.com>
3596
3597         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
3598         mono_method_full_name() change and replace the ':' with a '.'
3599         here.
3600
3601 2006-05-30  Martin Baulig  <martin@ximian.com>
3602
3603         * debug-mono-symfile.c
3604         (mono_debug_symfile_lookup_location): Fix the algorithm:
3605         when looking up B which is between A and C, return A not C.
3606
3607 2006-05-29  Martin Baulig  <martin@ximian.com>
3608
3609         * mono-debug.h
3610         (MonoDebugMethodInfo): Make the typedef public.
3611         (MonoDebugSourceLocation): New public struct.
3612
3613         * mono-debug.c
3614         (mono_debug_source_location_from_address): Removed.
3615         (mono_debug_source_location_from_il_offset): Removed.
3616         (mono_debug_il_offset_from_address): Removed.
3617         (mono_debug_address_from_il_offset): Removed.
3618         (mono_debug_lookup_method): New public function.
3619         (mono_debug_lookup_source_location): New public function; replaces
3620         the old mono_debug_source_location_from_*() functions; see the
3621         inline documentation.
3622         (mono_debug_free_source_location): New public function.
3623         (mono_debug_print_stack_frame): New public function; see the
3624         inline documentation.
3625
3626         * debug-mono-symfile.c
3627         (mono_debug_find_source_location): Renamed into
3628         mono_debug_symfile_lookup_location(); only take a
3629         `MonoDebugMethodInfo *' and an `offset' argument; added inline
3630         documentation.
3631         (mono_debug_find_method): Renamed into
3632         mono_debug_symfile_lookup_method().
3633
3634 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
3635
3636         * assembly.c (mono_assembly_open_full): Dont overwrite the status
3637         returned by mono_image_open_full ().
3638
3639         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
3640         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
3641         #78517.
3642
3643         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
3644         #78518.
3645
3646 2006-05-27  Miguel de Icaza  <miguel@novell.com>
3647
3648         * class.c (mono_class_from_typeref): handle missing images
3649         earlier, deals with bug #78418.   Refactor code; 
3650
3651         Fix a warning introduced in my previous commit (some stale code
3652         from before I revisited my patch).
3653
3654         * class.c (mono_class_create_from_typedef): On failure, remove the
3655         class from the MonoImage->class_cache as the class is not
3656         initialized;   Fixes the leak pointed out by Paolo.
3657
3658 2006-05-25  Dick Porter  <dick@ximian.com>
3659
3660         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
3661         DeleteCriticalSections until I figure out which one may still be
3662         sometimes locked when mono_thread_cleanup is called.
3663
3664 2006-05-24  Dick Porter  <dick@ximian.com>
3665
3666         * threads.c (mono_thread_cleanup): Move the threading cleanup out
3667         of mono_thread_manage and back into its own function, so it can be
3668         called after the finalizer thread has finished.
3669
3670         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
3671
3672 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
3673
3674         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
3675         Fixes #78495.
3676
3677         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
3678         with non-blittable elements.
3679         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
3680
3681 2006-05-24  Martin Baulig  <martin@ximian.com>
3682
3683         * mono-debug-debugger.h (MonoDebuggerEvent): Added
3684         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
3685
3686         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
3687         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
3688         `mono_debugger_event_handler' to NULL.
3689
3690 2006-05-24  Martin Baulig  <martin@ximian.com>
3691
3692         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
3693
3694 2006-05-24  Martin Baulig  <martin@ximian.com>
3695
3696         * mono-debug-debugger.h
3697         (mono_debugger_create_notification_function): Added
3698         `MonoCodeManager *' argument.
3699
3700 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
3701
3702         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
3703
3704 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
3705
3706         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
3707         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
3708         implementation.
3709
3710 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
3711
3712         * icall.c: precise GC support: objects can't be stored in unmanaged
3713         memory anymore, even if they are kept alive by other references: since
3714         they can move the GC needs to be able to always find them.
3715
3716 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
3717
3718         * object.c: precise GC support for static fields. Support
3719         for moving GCs: write barriers and pinned allocation for interned
3720         strings.
3721
3722 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3723
3724         * domain.c, domain-internals.h: precise GC support for the MonoDomain
3725         structure.
3726
3727 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3728
3729         * class.c, gc.c: sgen and precise GC updates.
3730
3731 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
3732
3733         * marshal.h, marshal.c: added write barrier wrapper and precise type
3734         fixes.
3735
3736 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
3737
3738         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
3739         support.
3740
3741 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
3742
3743         * reflection.c: precise and sgen GC updates.
3744
3745 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
3746
3747         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
3748
3749 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
3750
3751         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
3752
3753 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
3754
3755         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
3756         MONO_TYPE_OBJECT. Fixes #78462.
3757
3758 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
3759
3760         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
3761         and blittable types.
3762
3763 2006-05-17  Miguel de Icaza  <miguel@novell.com>
3764
3765         * class.c (mono_class_get_exception_for_failure): Implement parts
3766         of a TODO: if the loader error is set (instead of the class
3767         error), we return a Loader exception that can be properly thrown
3768         elsewhere.
3769
3770         This was exposed by some Winforms 2.0 code that I tried to run
3771         (Atsushi pointed me to it).
3772
3773 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
3774
3775         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
3776         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
3777         
3778         * marshal.c (emit_marshal_vtype): Add limited support for 
3779         UnmanagedType.LPStruct. Fixes #78427.
3780
3781         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
3782         Applied a patch from kangaroo to fix #77523.
3783
3784 2006-05-17  Martin Baulig  <martin@ximian.com>
3785
3786         * threads.c
3787         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
3788         (debugger_thread_created): Removed.
3789         (debugger_thread_exited): Removed.
3790
3791 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
3792
3793         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3794
3795         * object-internals.h (MonoReflectionResource): Sync with managed version.
3796
3797 2006-05-12  Wade Berrier <wberrier@novell.com>
3798
3799         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
3800
3801 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
3802
3803         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
3804         functions try to allocate from the image mempool.
3805
3806 2006-05-12  Dick Porter  <dick@ximian.com>
3807
3808         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
3809
3810 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
3811
3812         * object.c: The FieldGetter and FieldSetter methods require the full
3813         name of the class, not only the name. Fixes bug #78277.
3814
3815 2006-05-11  Miguel de Icaza  <miguel@novell.com>
3816
3817         * loader.c (method_from_memberref): Do not pass the NULL klass to
3818         mono_loader_set_error_() methods.  Pass the non-NULL value
3819         (class). 
3820
3821 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
3822
3823         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
3824         (mono_assembly_close): Null out assembly->image->references after freeing it.
3825
3826         * image.c (mono_image_close): Free image->references.
3827         
3828         * reflection.c (mono_image_basic_init): Fix a small memory leak.
3829
3830 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3831
3832         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
3833         before checking if it's NULL (g_assert).
3834
3835 2006-05-10  Martin Baulig  <martin@ximian.com>
3836
3837         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
3838         I thought I already killed that two months ago, but now it somehow reappeared.
3839
3840 2006-05-10  Martin Baulig  <martin@ximian.com>
3841
3842         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
3843
3844 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
3845
3846         * reflection.c: Allocate memory for dynamically created methods in the image
3847         mempools.
3848
3849 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3850
3851         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
3852         don't use the ad pointer before checking if it's NULL (g_assert).
3853
3854 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
3855
3856         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
3857         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
3858
3859         * marshal.c: Allocate all signatures from mempools.
3860
3861         * marshal.c: Allocate some more signatures from mempools.
3862
3863 2006-05-09  Miguel de Icaza  <miguel@novell.com>
3864
3865         * object.c (mono_load_remote_field): The code used to provide a
3866         temporary variable for returning results if the user did not
3867         provide a result pointer.  But our temporary variable was allocted
3868         on the satck.
3869
3870         Fix calling code to always pass a result area.   Coverity ID 103.
3871
3872 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
3873
3874         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
3875         value, not the old. Fixes #78312.
3876         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
3877
3878         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
3879         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
3880         per-image cache.
3881
3882         * assembly.c (mono_assembly_close): Free image->references.
3883
3884         * assembly.c (mono_assembly_names_equal): Fix a warning.
3885         (mono_assemblies_cleanup): Cleanup more global data.
3886
3887         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
3888
3889         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
3890         ptr_cache and image->modules.
3891
3892         * image.c (mono_image_init): Allocate array_cache lazily.
3893         
3894 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3895
3896         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
3897         behavior was changed recently and has bad side effects.
3898
3899 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
3900
3901         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
3902         
3903         * assembly.c (mono_assembly_close): Remove a debug printf.
3904
3905         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
3906
3907         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
3908         to also allow for temporary references between mono_image_open ()/close ().
3909
3910         * domain.c (get_runtimes_from_exe): Add a FIXME.        
3911
3912 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
3913
3914         * marshal.c: Fix support for dynamic methods.
3915
3916         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
3917
3918         * marshal.c (mono_marshal_cleanup): New cleanup function.
3919
3920         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
3921         image mempools.
3922
3923         * class.c (mono_class_init): Fix leaking class->nested_classes.
3924
3925         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
3926
3927         * image.c (mono_image_init): Initialize the new cashes.
3928
3929         * image.c (mono_image_close): Destroy the new cashes.
3930
3931         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
3932
3933         * mempool.c (mono_mempool_strdup): New helper function.
3934
3935         * class-internals.h: Add prototype for mono_loader_unlock ().
3936
3937         * domain.c (mono_jit_info_table_find): Fix a warning.
3938         (mono_debugger_check_runtime_version): Ditto.
3939
3940         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
3941         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
3942         functions to these modules.
3943
3944         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
3945         metadata modules.
3946         
3947         * marshal.c (mono_free_bstr): Fix a warning.
3948
3949         * assembly.c (mono_assembly_open_full): Fix another small leak.
3950
3951         * object.c: Fix some unload leaks in the remoting code.
3952
3953         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
3954         function.
3955
3956         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
3957
3958         * reflection.c: Fix some unload leaks in dynamic assemblies.
3959
3960 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
3961
3962         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
3963         * marshal.h: Add BSTR support on Win32
3964         * icall.c: Add BSTR icalls
3965         * metadata.h: Add BSTR enums
3966
3967 2006-04-28  Miguel de Icaza  <miguel@novell.com>
3968
3969         Work to catch the crash from #76795 and turn it into an
3970         exception.   As I stubbed out pieces of the VisualBasic support,
3971         I found a number of places where the code was failing and I added
3972         checks to those places. 
3973         
3974         * metadata.c (do_mono_metadata_parse_generic_class): Make this
3975         function return a status code.  If we fail to parse the signature
3976         from mono_metadata_parse_generic_inst, return FALSE.
3977
3978         * loader.c (mono_get_method_from_token): If we fail to load the
3979         method (mono_class_get) return NULL.   
3980
3981         * (method_from_memberref): Return NULL if we are unable to parse
3982         the method signature
3983
3984         (mono_loader_error_prepare_exception): Since we now use the
3985         loader_error flag internally to stop processing, and obtaining
3986         exceptions that might be thrown will walk this code path the
3987         proper way of going from a MonoLoaderError into a
3988         MonoException was convoluted.   This new routine encapsulates the
3989         process of turning the error into an exception and *clearing* the
3990         error afterwards.
3991         
3992 2006-04-27  Miguel de Icaza  <miguel@novell.com>
3993
3994         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
3995         with missing assemblies), and to cope with:
3996
3997                 * Missing fieldref from a non-existing assembly.
3998                 * Missing methodref from a non-existing assembly.
3999
4000         The first batch of work to address *some* of the issues from 76661.
4001         
4002         * object.c (mono_class_create_runtime_vtable): If we fail to
4003         initialize the class raise the exception here. 
4004
4005         * metadata.c (mono_class_get_overrides_full): If any methods fail
4006         to load return the failure to the caller.
4007
4008         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
4009         flagging assemblies that failed to load.   
4010
4011         Do not crash if we are unable to load the assembly.
4012
4013         (mono_assembly_close): Do nothing with REFERENCE_MISSING
4014         assemblies. 
4015
4016         * loader.c (mono_loader_set_error_type_load): Change the
4017         convention to always pass unallocated strings, so we make our own
4018         copies (I know our own code had duplicated strings before, but
4019         this keeps the normal conventions).
4020         (method_from_memberref): Call mono_loader_set_error_method_load
4021         for all possible failures of loading the class. 
4022         Remove assert, turn into a loader error.
4023
4024         (mono_loader_error_to_exception): Move this routine from mini
4025         (mini_loader_error_to_exception) there was no need to have that in
4026         mini. 
4027
4028         * class.c (mono_class_from_typeref): If we were not able to load
4029         the assembly with mono_assembly_load_reference, call the
4030         mono_loader_set_error_type_load to register the problem.
4031
4032         (mono_class_setup_fields): If we fail to load the type from
4033         mono_metadata_parse_type_full, call mono_class_set_failure and
4034         break from the loop.
4035
4036         If class->exception_type is set, we do not layout the fields as
4037         that might crash the runtime, and instead return (from breaking
4038         from the previous loop).
4039
4040         (mono_class_setup_vtable): This now returns a boolean indicating
4041         whether the table was properly setup.   The decision is driven by
4042         mono_class_get_overrides_full which might run into non-existing
4043         methods. 
4044         
4045         (mono_class_init): Returns TRUE on success or FALSE if there was a
4046         problem in loading the type (incorrect assemblies, missing
4047         assemblies, methods, etc).
4048
4049         When we call mono_class_setup_fields we also check for a potential
4050         error inside this call (either a class exception or a general
4051         loader exception).
4052
4053         (mono_class_create_from_typedef): If the parent fails to load
4054         (calling mono_class_get_full) return NULL.
4055         
4056         ** Important **
4057
4058         calls to mono_metadata_parse_type_full should be checked
4059         everywhere and set the mono_class_set_failure
4060         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
4061
4062         The current patch checks the places where my manually constructed
4063         tests show the errors are showing up, but we should do it
4064         everywhere. 
4065
4066         ** Important2 **
4067
4068         mono_class_init return values should be tested everywhere, like
4069         the previous case this is something that we should audit
4070         everywhere and not only on the cases exposed by the tests I
4071         created. 
4072
4073 2006-04-26  Miguel de Icaza  <miguel@novell.com>
4074
4075         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
4076         boolean parameter and instead pass the information on `options'
4077         parameter (FileOptions).
4078
4079         * icall.c: Register the new signature for MonoIO.Open.
4080
4081         * debug-helpers.c (dis_one): Trying to understand how coverity
4082         works.  Fix Run 5, item 78.
4083
4084 2006-04-26  Dick Porter  <dick@ximian.com>
4085
4086         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
4087         dereference.
4088
4089 2006-04-25  Martin Baulig  <martin@ximian.com>
4090
4091         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
4092
4093         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
4094         debugger_thread_created().
4095         (debugger_gc_push_all_stacks): Don't handle the main thread in any
4096         special way.
4097         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
4098         (mono_debugger_finalize_threads): New function; undo the effects
4099         of mono_debugger_init_threads().
4100         (mono_debugger_create_all_threads): Removed.
4101
4102 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
4103
4104         * image.c (mono_image_close): Tidy up trace messages.
4105
4106         * assembly.c (mono_assembly_close): Ditto.
4107
4108         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
4109         no longer references an already freed assembly. Fixes #78168.
4110
4111 2006-04-21  Dick Porter  <dick@ximian.com>
4112
4113         * threads.c (mono_thread_detach): Fix reference counting when
4114         detaching threads.
4115
4116 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
4117
4118         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
4119         #78155.
4120
4121 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
4122
4123         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
4124         (mono_type_to_stind): Ditto.
4125
4126         * marshal.c: Use the new helper functions to simplify code.
4127
4128         * image.c (mono_image_close): Add some code for help debug assembly unloading
4129         problems.
4130
4131         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
4132         image mempool.
4133
4134         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
4135         assembly was already loaded in another appdomain. Fixes #78083.
4136
4137 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
4138
4139         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
4140         referenced assemblies.
4141         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
4142
4143         * domain.c (mono_domain_free): Add a trace message.
4144
4145         * appdomain.c (add_assemblies_to_domain): Ditto.        
4146
4147         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
4148         field.  
4149
4150 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4151
4152         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
4153
4154 2006-04-12  Martin Baulig  <martin@ximian.com>
4155
4156         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
4157         `USE_INCLUDED_LIBGC'.   
4158
4159 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4160
4161         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
4162         the patch contains ../ and a small directory name later. Hopefully fixes
4163         #78035.
4164
4165 2006-04-10  Martin Baulig  <martin@ximian.com>
4166
4167         Clean up the debugger's thread-handling code.
4168
4169         The debugger's thread-handling code has been moved from
4170         ../mini/debug-debugger.c to threads.c.  We now iterate directly
4171         over the `threads' hash, keep track of exiting threads and also
4172         use proper locking.
4173
4174         We can now debug XSP and XSP based applications with the debugger.
4175
4176         * object-internals.h (MonoThread): Added `gpointer end_stack'.
4177
4178         * threads.h
4179         (MonoThreadCallbacks): Removed; this was only used by the debugger.
4180         (mono_install_thread_callbacks): Likewise.      
4181
4182         * threads.c (mono_thread_callbacks): Removed.
4183         (debugger_thread_created, debugger_thread_exited): New static functions.
4184         (start_wrapper): Call debugger_thread_created().
4185         (thread_cleanup): Call debugger_thread_exited().
4186         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
4187         (mono_debugger_init_threads): New public function.
4188         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
4189         iterate directly over the `threads' hash and also use proper locking.
4190
4191         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
4192
4193         * mono-debug-debugger.h
4194         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
4195
4196 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
4197
4198         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
4199         argument type=array. Fixes #78057.
4200
4201 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4202
4203         * culture-info-table.h : regenerated. Fixed bug #69652.
4204
4205 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
4206
4207         * loader.c metadata.c: Reapply a variant r59116.
4208         
4209         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
4210
4211         * class.c (mono_class_setup_interface_offsets): New internal function.
4212
4213         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
4214         interfaces too. Fixes #77398.
4215
4216         * reflection.c (encode_cattr_value): Add support for 
4217         parameter type=object, argument type=array.
4218         (load_cattr_value): Ditto. Fixes #77916.
4219
4220         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4221         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4222
4223         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4224         a byval char array and CharSet is Ansi.
4225
4226         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4227
4228 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4229
4230         * metadata.c: Add some locking comments.
4231         
4232         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4233         mempool.
4234         (mono_metadata_free_method_signature): Don't free the signature itself.
4235
4236         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4237
4238         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4239         reference the same MonoImage.
4240         (mono_assembly_load_from_full): Add an assert.
4241
4242 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4243
4244         * image.c (mono_image_close): Don't put the image we are about to free into the
4245         loaded_images_guid_hash.
4246
4247         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4248         to reduce code duplication.
4249
4250         * marshal.c: Register the native functions called by this module as icalls, to
4251         somewhat centralize the creation of MonoMethodSignature's.
4252
4253         * loader.c (mono_method_signature): Add a cache for method signatures.
4254
4255         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4256         the parameter attributes of a method.
4257         (mono_metadata_parse_method_signature_full): Refactored the computation of
4258         parameter attributes into a separate function. Also avoid one allocation in
4259         most cases.
4260
4261         * assembly.c (mono_assembly_close): Ditto.
4262
4263         * image.c (mono_image_close): Log trace messages with INFO level.
4264
4265         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4266
4267         * image.c reflection.c: Correct reference counting of image modules.
4268         
4269         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4270         of this function from the image mempool.
4271         
4272         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4273         to allow more cached types to be used.
4274
4275         * mono-debug.c (mono_debug_add_method): Appled patch from
4276         David S. Miller  <davem@sunset.davemloft.net>: Access 
4277         minfo->lexical_blocks[] entry elements using read32().
4278
4279 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4280
4281         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4282         methods as it is allocated from the mempool.
4283
4284         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4285         image mempool.
4286
4287         * metadata-internals.h: Add comments describing the reference counting scheme
4288         used for MonoImage and MonoAssembly.
4289
4290         * image.c assembly.c reflection.c: Rework reference counting of images and 
4291         assemblies so they are freed when the runtime is shut down. Free some 
4292         additional memory structures when an image is unloaded.
4293         
4294 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4295
4296         * class.c loader.c reflection.c: Allocate more data structures in
4297         the image mempool.
4298
4299 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4300
4301         * icall.c
4302         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4303         build on pre glib 2.4 systems.
4304
4305 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4306
4307         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4308
4309         * icall.c: Fix some warnings.
4310
4311 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4312
4313         * culture-info-table.h : regenerated.
4314
4315 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4316
4317         * threads.c, object-internals.h, verify.c: changed the culture caching
4318         code to use a normal MonoArray for storage so the GC can keep track of
4319         them easily. Fixed bits of the cache logic, too and simplified the
4320         code.
4321
4322 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4323
4324         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4325         thread for non-Boehm GCs.
4326
4327 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4328
4329         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4330         needed to keep track of the data for static fields.
4331
4332 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4333
4334         Fix #75172
4335         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4336         for interface classes.  Use 'num_methods' instead.
4337         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4338         before using '->vtable_size' field.
4339
4340 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4341
4342         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4343         doesn't contain managed pointers, so use a normal hashtable.
4344
4345 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4346
4347         * reflection.c, class-internals.h, domain.c: fixed handling of types
4348         used as values for objects in custom attributes (bug #77915):
4349
4350 2006-03-24  Martin Baulig  <martin@ximian.com>
4351
4352         * class.c (mono_class_setup_fields): Added support for generic
4353         instances; fixes #77580.
4354
4355 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4356
4357         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
4358
4359 2006-03-24  Dick Porter  <dick@ximian.com>
4360
4361         * file-io.c (get_file_attributes): More stat macro breakage.
4362         Fixes bug 77759.
4363
4364 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4365
4366         * profiler.c: added the file=filename option in the default profiler
4367         to output the profile data to filename.
4368
4369 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4370
4371         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4372         bug #77877.
4373
4374 2006-03-22  Martin Baulig  <martin@ximian.com>
4375
4376         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4377         allocated `MonoClassField *' in `fb->handle'.
4378
4379 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4380
4381         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4382         allocate interface ID to save memory and allow better ID reuse on
4383         appdomain unload. setup_generic_vtable () removal from Martin.
4384
4385 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4386
4387         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4388         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4389         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4390         write barriers for reference stores with managed objects accessed with
4391         C structures in the runtime and in embedding programs.
4392
4393 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4394
4395         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4396         'interface_id' and 'max_interface_id' fields of MonoClasses
4397         representing open generic types.
4398
4399 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4400
4401         * object.h, object.c, icall.c: added functions to deal with
4402         storing valuetypes that contain references in managed objects.
4403         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4404         fixes and comments around uses of mono_array_addr ().
4405
4406 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4407
4408         * object.h, icall.c, monitor.c: object.GetHashCode ()
4409         implementation that supports the moving garbage collector.
4410
4411 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4412
4413         * icall.c, threads-types.h, threads.c: implemented finalizer for
4414         LocalDataStoreSlot.
4415
4416 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4417
4418         * metadata.c (mono_type_size): Add a fixme.
4419         (mono_type_stack_size): Ditto.
4420
4421         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4422         'type_forwarders' field.
4423
4424         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4425         attribute from net 2.0.
4426
4427         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4428         from class.c.
4429
4430         * class.c (mono_class_setup_fields): Fix a warning.
4431         
4432         * class.c (mono_class_from_name): Add support for assemblyref entries
4433         in the EXPORTEDTYPE table.
4434
4435         * reflection.c: Add support for handling type forwarders under net 2.0.
4436
4437         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4438         
4439 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4440
4441         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4442         overwriting entries in ModuleBuild->types, also clean up the code
4443         a little. Fixes #77774.
4444
4445 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4446
4447         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4448         load friend assembly info when present.
4449
4450 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4451
4452         Fix crasher on gtest-158.cs.
4453         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4454         the return value if the MonoClass we want is yet in an
4455         inconsistent state.
4456         * class.c (mono_class_create_from_typedef): Add an comment
4457         explaining an order dependency between mono_class_setup_parent and
4458         mono_class_setup_mono_type.
4459
4460 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
4461
4462         * class.c: documentation updates and events bug fix.
4463
4464 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4465
4466         * class.c: some cleanup, locking fixes.
4467
4468 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
4469
4470         * class.c: fix the generics code to setup nested
4471         type info to the instantiated type (bug #77770).
4472
4473 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4474
4475         * marshal.c: fixed a few type correctness issues.
4476
4477 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4478
4479         * loader.c: the Set/Get/Addrtess array methods should be public.
4480
4481 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
4482
4483         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
4484         
4485         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
4486         info->wrapper.
4487
4488 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
4489
4490         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
4491
4492         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
4493
4494         * mempool.c (mono_mempool_alloc): Speed this up a bit.
4495         (mono_mempool_alloc0): Ditto.
4496
4497 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4498
4499         * socket-io.c:
4500         (create_object_from_sockaddr): it was allocating 4 extra bytes
4501         for the AF_UNIX data. Fixes bug #77747.
4502
4503 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
4504
4505         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
4506
4507 2006-03-09  Dick Porter  <dick@ximian.com>
4508
4509         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
4510         Fixes bug 76966 again.
4511
4512 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
4513
4514         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
4515         names from r57532
4516         * appdomain.c: Bumped corlib version to 48 (due to r57532)
4517
4518 2006-03-07  Martin Baulig  <martin@ximian.com>
4519
4520         * object.c
4521         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
4522
4523 2006-03-07  Martin Baulig  <martin@ximian.com>
4524
4525         * class.c
4526         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
4527         regression introduced in r56970; see gtest-252.cs.
4528
4529         * loader.c (mono_get_method_constrained): Correctly handle generic
4530         methods; see gtest-253.cs.
4531
4532 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
4533
4534         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
4535
4536 2006-03-04  Martin Baulig  <martin@ximian.com>
4537
4538         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
4539         compute the parent type at runtime, just like we're already doing
4540         it for interfaces.
4541
4542         * reflection.c
4543         (mono_reflection_bind_generic_parameters): Don't compute the
4544         parent type anymore.
4545
4546         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
4547
4548 2006-03-04  Martin Baulig  <martin@ximian.com>
4549
4550         * mono-debug-debugger.h
4551         (mono_debugger_create_notification_function): Allocate memory at
4552         runtime and return a pointer to it.
4553
4554 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
4555
4556         * assembly.c: Fix windows build.
4557         
4558         * assembly.c: Fix build.
4559
4560         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
4561
4562         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
4563         
4564 2006-03-03  Dick Porter  <dick@ximian.com>
4565
4566         * process.c
4567         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4568         Check parameters before dereferencing them.  Fixes Aaron's part of
4569         bug 77393.
4570
4571 2006-03-03  Raja R Harinath  <rharinath@novell.com>
4572
4573         Fix performance regression.
4574         * loader.c (find_method_in_class): Add 'from_class' argument.
4575         Rename 'klass' argument to 'in_class'.  The signature is compared
4576         against the method in 'in_class', and the corresponding method is
4577         returned from 'from_class'.
4578         (find_method): Walk both 'in_class' and 'from_class' in parallel.
4579         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
4580         type definition and generic instantiation in parallel.
4581         (mono_get_method_constrained): Update to changes.
4582
4583 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
4584
4585         * threads.c: make sure the domain is correct, too when doing
4586         mono_thread_attach ().
4587
4588 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
4589
4590         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
4591         windows. Fixes #77683.
4592
4593 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
4594
4595         * object.h, *: introduced specific way to set elements of an array
4596         of references to be used as write barrier. Still need to audit the
4597         uses of mono_array_addr.
4598
4599 2006-03-01  Miguel de Icaza  <miguel@novell.com>
4600
4601         * object-internals.h: New field to cache the assmebly name, patch
4602         from Tambet Ingo (tambet@ximian.com)
4603
4604 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4605
4606         * decimal.h, class-internals.h, metadata-internals.h,
4607         file-io.h: mark a few function declarations as internal, to
4608         reduce the number of PLT entries.
4609
4610 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4611
4612         * file-io.c: fix typo in warning message.
4613
4614 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
4615
4616         * loader.c: on unix, lookup the "*A" version of a function
4617         if charset is auto as a second option before failing.
4618
4619 2006-02-28  Raja R Harinath  <rharinath@novell.com>
4620
4621         * class.h (mono_class_inflate_generic_method): Revert to two
4622         argument version.
4623         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
4624         (mono_class_inflate_generic_method_full): Add.
4625         * class.c (mono_class_inflate_generic_method_full): Rename from
4626         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
4627         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
4628         * loader.c, reflection.c: Update to changes.
4629
4630 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
4631
4632         * icall.c: const fixes and small improvements.
4633
4634 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4635
4636         * threadpool.c: for asynchronous connect(), enable the same workaround
4637         for BSD 6 as for the Mac. Fixes bug #77637.
4638
4639 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
4640
4641         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
4642         formatted classes. Fixes #77524.
4643
4644 2006-02-24  Raja R Harinath  <rharinath@novell.com>
4645
4646         * class.c (inflate_generic_type): Add a couple more
4647         micro-optimizations.
4648         (inflate_generic_context): Don't use the 'gmethod' from
4649         'inflate_with'.
4650         (mono_class_inflate_generic_method): If the method has generic
4651         parameters, but the passed-in context doesn't have a 'gmethod',
4652         create one.  Use the possibly simplified generic instantiation
4653         from the declaring class instead of the one passed in.
4654
4655 2006-02-24  Raja R Harinath  <harinath@gmail.com>
4656
4657         Make generic method signature and method header handling lazy.
4658         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
4659         (inflate_generic_header): Likewise.
4660         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
4661         parameter to avoid inflating types.
4662         (mono_get_inflated_method): Empty out.
4663         * class.h (mono_class_inflate_generic_method): Update to changes.
4664         * loader.c (mono_get_method_from_token): Don't parse signature for
4665         generic methods, nor methods of generic classes.
4666         (mono_method_signature): Rename from 'mono_method_signature'.
4667         Inflate signature on demand.
4668         (mono_method_get_header): Inflate method header on demand.
4669         * reflection.c: Update to changes.
4670
4671 2006-02-23  Raja R Harinath  <rharinath@novell.com>
4672
4673         * metadata.c (mono_metadata_inflate_generic_inst): If the
4674         instantiation is closed, don't bother expanding it in the new
4675         context.
4676         * class.c (inflate_generic_class): If the generic instantiation
4677         doesn't change after inflation, return the argument itself.
4678         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
4679         Add bounds checks.
4680         (inflate_generic_context): If neither the generic class nor the
4681         generic method instantiations change, return the original context.
4682         * reflection.c (mono_method_get_object): Do
4683         'mono_get_inflated_method' before accessing the ->klass field.
4684         (inflate_mono_method): Don't create a MonoGenericMethod unless
4685         necessary.
4686         (inflate_method): Don't pass a constructed type as the declaring
4687         type of a methodbuilder.
4688
4689 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
4690
4691         * object.c: fix memory overwrite.
4692
4693 2006-02-22  Dick Porter  <dick@ximian.com>
4694
4695         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
4696         it doesn't work any more.
4697         (mono_threads_request_thread_dump): Fix unused variable warnings.
4698
4699 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4700
4701         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
4702         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
4703         the public header file.
4704
4705 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
4706
4707         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
4708
4709 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
4710
4711         * class-internals.h, object.c: reduce the size of MonoVTable
4712         and store the interface_offsets array at negative offsets.
4713
4714 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
4715
4716         * metadata.c: tweak table descriptors data structures to reduce
4717         size and runtime relocations.
4718
4719 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4720
4721         * marshal.c: fix some types and opcodes to be type-safe
4722         in marshaling wrappers.
4723
4724 2006-02-21  Ankit Jain  <jankit@novell.com>
4725
4726         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
4727
4728 2006-02-21  Raja R Harinath  <rharinath@novell.com>
4729
4730         * metadata.c (get_constraints): Relax debugging checks for monodis.
4731
4732 2006-02-21  Ankit Jain  <jankit@novell.com>
4733
4734         * metadata.c (mono_metadata_load_generic_params): Move the code
4735         checking for ambiguous generic params from here to mono/dis/get.c
4736         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
4737
4738 2006-02-21  Raja R Harinath  <harinath@gmail.com>
4739
4740         Fix assertion triggered when compiling nemerle.
4741         * class.c (mono_get_shared_generic_inst): Rename from
4742         get_shared_inst and make non-static.
4743         * loader.c (mono_get_shared_generic_method): New.  Used to create
4744         the MonoGenericContext-equivalent of a MonoGenericContainer.
4745         (mono_get_method_from_token): Initialize the 'context' field of
4746         the created MonoGenericContainer.
4747         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
4748         * metadata.c (get_constraints): Add sanity check.
4749         * class-internals.h: Add new internal methods.
4750
4751         * reflection.c (verify_safe_for_managed_space): New sanity check.
4752         Currently checks that owner-less generic parameters aren't allowed
4753         in managed space.
4754         (mono_type_get_object): Use it.
4755         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
4756         that are now in mono_type_get_object.
4757         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
4758
4759 2006-02-19  Raja R Harinath  <harinath@gmail.com>
4760
4761         * metadata.c (mono_type_create_from_typespec): Rename from
4762         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
4763         argument and caching of types in the generic container.
4764         (unwrap_arrays, find_generic_param): Remove.
4765         * metadata-internals.h: Update.
4766         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
4767
4768 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
4769
4770         * class.c (mono_class_get_exception_for_failure): Fix a warning.
4771
4772         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
4773         return values. Fixes #77581.
4774
4775         * class.c (mono_fnptr_class_get): Switch name and name_space.
4776
4777         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
4778         classes and add support for [In, Out] attributes.
4779         (mono_marshal_free_asany): Ditto. Fixes #77524.
4780
4781 2006-02-18  Raja R Harinath  <harinath@gmail.com>
4782
4783         * class.c (mono_class_from_generic_parameter): Make more robust to
4784         incomplete MonoGenericContainers from monodis.
4785
4786 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4787
4788         * class-internals.h: added some more exception types.
4789         * class.c, metadata.c: added a few checks to handle missing
4790         types.
4791
4792 2006-02-17  Raja R Harinath  <rharinath@novell.com>
4793
4794         Use owner-less generic-params some more.
4795         * class.c (my_mono_class_from_generic_parameter): Remove.
4796         (mono_class_from_generic_parameter): Handle null image,
4797         param->name and param->owner.
4798         (mono_class_from_mono_type): Update.
4799         (mono_class_create_from_typespec): Remove 'container' parameter.
4800         If that parameter is non-null, the result is always inflated by
4801         'mono_class_get_full' anyway.
4802         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
4803         parameter.
4804         (mono_class_get_full): Update.
4805
4806         * class.c (inflate_generic_type) [GENERICINST]: If the generic
4807         instance is not open, don't bother inflating.
4808         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
4809         parse metadata for inflated classes.
4810         (_mono_class_get): Change GenericContext* parameter to
4811         GenericContainer*.
4812         (mono_class_create_from_typespec): Likewise.  Simplify, and
4813         implement trivially.  All the cases are handled in
4814         mono_class_from_mono_type.  Don't inflate returned class.
4815         (mono_class_get_full): Delegate GENERICINST optimization to
4816         inflate_generic_type.
4817         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
4818
4819 2006-02-16  Dick Porter  <dick@ximian.com>
4820
4821         * socket-io.c (create_object_from_sockaddr): Fix typo.
4822         (create_sockaddr_from_object): Check array lengths before
4823         potentially accessing items off the end.
4824         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
4825         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
4826         (ves_icall_System_Net_Sockets_Socket_Send_internal)
4827         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
4828         length checks to avoid wraparound overflows.
4829         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
4830         contents of the array of sockets
4831         (hostent_to_IPHostEntry2)
4832         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
4833         Check return value of inet_ntop ().
4834         (addrinfo_to_IPHostEntry): Fix typo
4835
4836 2006-02-16  Raja R Harinath  <rharinath@novell.com>
4837
4838         Type metadata parsing doesn't use generic-instantiation information.
4839         * metadata.c (mono_metadata_parse_array_full): Change
4840         MonoGenericContext* parameter to MonoGenericContainer*.
4841         (mono_metadata_parse_type_full): Likewise.
4842         (mono_type_create_from_typespec_full): Likewise.
4843         (mono_metadata_parse_mh_full): Likewise.
4844         (mono_metadata_parse_generic_inst): Likewise.
4845         (do_mono_metadata_parse_generic_class): Likewise.
4846         (do_mono_metadata_parse_type): Likewise.
4847         * metadata-internals.h: Update to changes.
4848         * class.c (mono_class_find_enum_basetype): Likewise.
4849         (mono_class_setup_fields): Likewise.
4850         (mono_class_create_from_typespec): Likewise.
4851         * loader.c (method_from_methodspec): Likewise.
4852         (mono_get_method_from_token): Likewise.
4853         (mono_method_get_header): Likewise.
4854
4855 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4856
4857         * marshal.c: handle additional GENERICINST case (patch from
4858         Thong Nguyen <tum@veridicus.com>).
4859         Fix a few cases where LDIND_I/STIND_I was used for references.
4860
4861 2006-02-16  Raja R Harinath  <rharinath@novell.com>
4862
4863         * reflection.c (mono_reflection_get_token): Remove unused variable.
4864
4865 2006-02-16  Martin Baulig  <martin@ximian.com>
4866
4867         * reflection.c (mono_reflection_get_token): Add support for fields
4868         in instantiated generic types.
4869
4870         * icall.c
4871         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
4872
4873 2006-02-15  Martin Baulig  <martin@ximian.com>
4874
4875         * icall.c
4876         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
4877         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
4878         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
4879         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
4880
4881 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
4882
4883         * class.c, metadata.c, metadata.h, object.c, icall.c,
4884         marshal.c: changed mono_type_get_underlying_type () to do
4885         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
4886         Fixed handling of instantiated generic valuetypes (bug #75479).
4887
4888 2006-02-15  Raja R Harinath  <rharinath@novell.com>
4889
4890         * metadata.c (mono_metadata_decode_signed_value): Simplify.
4891         Delegate to mono_metadata_decode_value, and work on the returned value.
4892
4893         * icall.c (ves_icall_MonoType_GetGenericArguments):
4894         Add consistency check here too.
4895         
4896 2006-02-15  Ankit Jain  <jankit@novell.com>
4897
4898         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
4899         char/short etc.
4900
4901 2006-02-15  Ankit Jain  <jankit@novell.com>
4902
4903         * metadata.c (mono_metadata_decode_signed_value): New function to decode
4904         signed values, used only for representing lower bounds of arrays.
4905         (mono_metadata_parse_array_full): Use new
4906         mono_metadata_decode_signed_value to decode lower bounds.
4907
4908 2006-02-14  Martin Baulig  <martin@ximian.com>
4909
4910         * reflection.c
4911         (mono_reflection_get_token): Support "MonoGenericMethod" and
4912         "MonoGenericCMethod" and allow generic instances / methods.
4913
4914 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
4915
4916         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
4917         to obtain the terminal size using an ioctl.
4918
4919         * object.c (mono_nullable_init): Revert this as nullable reference
4920         types are not valid.
4921         (mono_nullable_box): Ditto.
4922
4923 2006-02-09  Dick Porter  <dick@ximian.com>
4924
4925         * threads.c (mono_thread_detach): Drop a reference to the thread
4926         we're detaching.
4927
4928 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
4929
4930         * object.c (mono_nullable_init): Handle nullable reference types.
4931         (mono_nullable_box): Ditto. Fixes #77446.
4932
4933 2006-02-07  Martin Baulig  <martin@ximian.com>
4934
4935         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
4936
4937 2006-02-07  Ankit Jain  <jankit@novell.com>
4938
4939         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
4940         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
4941         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
4942         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
4943         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
4944         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
4945
4946 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
4947
4948         * class.c (mono_class_create_generic): Set type_token as well.
4949
4950         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
4951         compatible with MS.
4952
4953 2006-02-02  Martin Baulig  <martin@ximian.com>
4954
4955         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
4956         has never been used so far.
4957
4958 2006-02-02  Martin Baulig  <martin@ximian.com>
4959
4960         * mono-debug-debugger.h: Changed comment at the top of this file;
4961         the header is not installed, but it's safe to #include it from
4962         within the JIT.
4963
4964         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
4965         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
4966
4967 2006-02-02  Martin Baulig  <martin@ximian.com>
4968
4969         * mono-debug.h
4970         (MonoSymbolTable): Removed the `metadata_info' field.
4971
4972         * mono-debug.c
4973         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
4974
4975         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
4976         (mono_debugger_add_builtin_types): Removed.
4977         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
4978         (mono_debugger_create_notification_function): We now operate on a
4979         pre-allocated area; take a `gpointer' and return `void'.
4980
4981         * mono-debug-debugger.c
4982         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
4983         (mono_debugger_add_builtin_types): Removed.
4984
4985 2006-02-02  Martin Baulig  <martin@ximian.com>
4986
4987         * threads.c (mono_debugger_create_all_threads): New public method.
4988
4989 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4990
4991         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
4992         breaks on several platforms.
4993
4994 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
4995
4996         * assembly.c: the VS.NET build doesn't supply default values for
4997         MONO_ASSEMBLIES and MONO_CFG_DIR.
4998
4999 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
5000
5001         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
5002         helper function.
5003
5004         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
5005
5006         * loader.c (method_from_memberref): Fix a warning.
5007
5008         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
5009
5010         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
5011         with explicit layout. Fixes #77433.
5012
5013 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
5014
5015         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
5016         max_interface_id is initialized before using it. Fixes #77398.
5017         (ves_icall_Type_GetInterfaces): Ditto.
5018
5019 2006-01-30  Raja R Harinath  <rharinath@novell.com>
5020
5021         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5022         allocate memory for parameter attributes when parsing memberref
5023         signatures.
5024         * loader.c (mono_loader_set_error_method_load): Don't warn.
5025         (method_from_memberref): Ensure MissingMethodException gets thrown
5026         if method is not found.  Make warning more informative.
5027
5028 2006-01-29  Raja R Harinath  <harinath@gmail.com>
5029
5030         Fix #77397
5031         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
5032         return true if is byref.
5033         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5034         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
5035         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
5036
5037 2006-01-27  Raja R Harinath  <rharinath@novell.com>
5038
5039         Fix tests/find-method.2.il
5040         * loader.c (find_method, find_method_in_class): Remove is_inflated
5041         argument.  Revert 2006-01-18 change.
5042         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
5043         is generic, search for method in its generic definition.
5044         * class.c (mono_class_setup_vtable_general): Print generic
5045         arguments of generic types in debugging printf.
5046
5047 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
5048
5049         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
5050
5051         * threads.c (mono_threads_request_thread_dump): New helper function.
5052
5053 2006-01-25  Raja R Harinath  <rharinath@novell.com>
5054
5055         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
5056
5057 2006-01-25  Ankit Jain  <jankit@novell.com>
5058
5059         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
5060         move definition to ..
5061         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
5062         
5063 2006-01-25  Ankit Jain  <jankit@novell.com>
5064             Raja R Harinath  <rharinath@novell.com>
5065
5066         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
5067         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
5068         as necessary.
5069
5070 2006-01-25  Martin Baulig  <martin@ximian.com>
5071
5072         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
5073         `MonoDebuggerThread' into debug-debugger.c.
5074
5075 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
5076
5077         * profiler.c: fix printing of data.
5078
5079 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
5080
5081         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
5082           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
5083
5084 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5085
5086         * object.c: fix deadlock related to string interning.
5087
5088 2006-01-23  Martin Baulig  <martin@ximian.com>
5089
5090         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5091
5092         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
5093
5094 2006-01-23  Martin Baulig  <martin@ximian.com>
5095
5096         * mono-debug.h: Moved the prototypes of some functions which are
5097         used by the JIT here from mono-debug-debugger.h.
5098
5099 2006-01-21  Martin Baulig  <martin@ximian.com>
5100
5101         * Makefile.am: Don't install mono-debug-debugger.h.
5102
5103 2006-01-21  Martin Baulig  <martin@ximian.com>
5104
5105         * mono-debug-debugger.h: Enforce the private status of this header
5106         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
5107         Moved some stuff from mono-debugger-jit-wrapper.h here.
5108
5109 2006-01-20  Raja R Harinath  <rharinath@novell.com>
5110
5111         * class.c (mono_class_from_typeref): Add a sanity test to help
5112         catch lack of assembly load/search hooks.
5113
5114 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
5115
5116         * marshal.c (emit_struct_conv): Relax the fields with same offset
5117         check even more. Fixes #77230.
5118
5119 2006-01-18  Martin Baulig  <martin@ximian.com>
5120
5121         * loader.c (find_method_in_class): Added `gboolean is_inflated'
5122         argument; if false, we compare the uninstantiated signatures.
5123         (method_from_memberref): Compare the uninstantiated signatures;
5124         fixes #76417.
5125
5126 2006-01-18  Robert Jordan  <robertj@gmx.net>
5127
5128         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
5129         Clear the weak link. Fixes bug #77170.
5130
5131         * gc.c (mono_gchandle_free):
5132         Reflect *-gc.c changes (tiny optimization).
5133
5134 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
5135
5136         * metadata.c (mono_metadata_signature_dup): Applied patch from
5137         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
5138         Fixes #77288.
5139
5140 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
5141
5142         * marshal.c (emit_struct_conv): Allow fields with the same offset when
5143         marshalling from native to managed code. Fixes #77230.
5144
5145 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5146
5147         * threadpool.c: fix problem (Mac only) when more than one asynchronous
5148         connect. Fixes bug #77020.
5149
5150 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5151
5152         * class.c: fixed id assignement for nested interfaces (bug #77275).
5153         Added also better info for --print-vtable debugging.
5154
5155 2006-01-12  Martin Baulig  <martin@ximian.com>
5156
5157         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
5158         interfaces on-the-fly; fixes #76625.
5159
5160         * class-internals.h
5161         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
5162         don't need that anymore.
5163
5164 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5165
5166         * socket-io.c
5167         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5168         To avoid initing the nested_classes when not needed I turned the
5169         PeerCredData as a toplevel internal class, as it has to be shared
5170         anyways. 
5171
5172         Fixes the CASA issue.
5173
5174 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
5175
5176         * domain.c: Accessors for MonoJitInfo
5177
5178         * profiler-private.h: Add jitinfo to the end jit hook
5179
5180         * profiler.[ch]: Define new hooks, called after jitting which give
5181         the MonoJitInfo that was compiled
5182
5183 2006-01-10  Martin Baulig  <martin@ximian.com>
5184
5185         * class.c (mono_class_setup_events): Add support for generic
5186         classes; fixes #76440.
5187
5188 2006-01-06  Raja R Harinath  <rharinath@novell.com>
5189
5190         Fix #77160.
5191         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
5192         on passed-in method.
5193
5194 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5195
5196         * object.c (mono_runtime_invoke_array): Add Nullable support.
5197
5198         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
5199
5200 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
5201
5202         * file-io.c: Don't consider sockets as directory and avoid an endless
5203         loop. Fix bug #76966.
5204
5205 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5206
5207         * object.c (mono_nullable_init): New helper function.
5208         (mono_nullable_box): Ditto.
5209
5210         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
5211
5212         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
5213
5214         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
5215         
5216 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
5217
5218         * class.c (mono_class_is_assignable_from): Make T assignable to 
5219         Nullable<T>.
5220
5221 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5222
5223         * appdomain.c: Bump corlib version to 46.
5224         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5225         serialization purpose) and changed ves_icall_System_Reflection_
5226         Assembly_get_code_base signature to accept a boolean (to escape, or 
5227         not, the assembly code base).
5228
5229 2005-12-23  Dick Porter  <dick@ximian.com>
5230
5231         * icall.c: 
5232         * threads-types.h: 
5233         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5234         CreateEvent icall now returns "created" boolean parameter.
5235
5236 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5237
5238         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5239         #76967.
5240
5241         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5242         when attr_klass is an interface. Fixes #77045.
5243
5244 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5245
5246         * marshal.c (emit_struct_conv): Fix previous patch.
5247         
5248         * marshal.c (emit_struct_conv): Add a check for fields with the same
5249         offset.
5250
5251 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5252
5253         Fix regression in Mono.C5.
5254         * class.c (mono_class_create_generic): If 'klass' is an interface
5255         set up the interface offsets.
5256         (mono_class_is_assignable_from): Don't throw away generic arguments.
5257
5258 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5259
5260         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5261         type parameters.
5262
5263 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5264
5265         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5266         dead store.
5267         (do_mono_metadata_parse_generic_class): Don't pass the current
5268         generic context when parsing the type being instantiated: it
5269         cannot use it, anyway.
5270
5271         * loader.c (method_from_memberref): Don't inflate a signature if
5272         it doesn't contain any type parameters.
5273
5274 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5275
5276         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5277
5278 2005-12-14  Martin Baulig  <martin@ximian.com>
5279
5280         * class.c
5281         (mono_type_get_name_recurse): Don't return null for type
5282         parameters and open generic classes.
5283         (mono_class_setup_methods): Don't exclude generic instances.
5284         (mono_get_unique_iid): Use different IDs for different
5285         instantiations of the same generic type.
5286         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5287         open generic instances; create a normal vtable for closed generic
5288         instances.
5289         (mono_class_setup_vtable_general): We're now also called for
5290         closed generic instances.
5291
5292         * reflection.c
5293         (mono_reflection_bind_generic_parameters): Correctly use
5294         mono_metadata_lookup_generic_inst() everywhere.
5295
5296 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5297
5298         * object.c (mono_class_create_runtime_vtable): Call 
5299         mono_class_setup_vtable ().
5300
5301         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5302         function.
5303         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5304         #76959.
5305
5306         * loader.c (mono_loader_set_error_type_load): Print the type load
5307         warnings to the console so they are more visible to the user.
5308         (mono_loader_set_error_method_load): Ditto.
5309
5310         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5311         is still broken.
5312         
5313         * reflection.c (ensure_runtime_vtable): Fix build.
5314
5315         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5316         doesn't work in all cases.
5317
5318 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5319
5320         * object.c (mono_array_new_full): Treat a single dimensional array
5321         with 0 lower bounds as an szarray. Fixes #76973.
5322
5323         * reflection.c (custom_attr_visible): Really fix this.
5324
5325 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5326
5327         * reflection.c (custom_attr_visible): Allow nested public attributes
5328         as well.
5329
5330         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5331         interface check.
5332
5333 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5334
5335         * class.c (set_generic_param_owner): Delete.
5336         (mono_class_create_from_typedef): Don't set ->owner field of
5337         generic parameters to "param containers" of enclosing classes.
5338         * reflection.c (mono_reflection_initialize_generic_parameter):
5339         Likewise.
5340
5341 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5342
5343         * reflection.c (custom_attr_visible): Fix build.
5344
5345 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5346
5347         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5348         private attributes.
5349         
5350         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
5351         handling of null parameter defaults.
5352
5353 2005-12-09  Raja R Harinath  <rharinath@novell.com>
5354
5355         * class.c (mono_class_from_generic_parameter): Don't set
5356         klass->generic_container.
5357         (my_mono_class_from_generic_parameter): Likewise.
5358
5359 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
5360
5361         * reflection.c (load_public_key): Fix a warning.
5362         (method_encode_code): Fix unaligned accesses.
5363
5364 2005-12-07  Martin Baulig  <martin@ximian.com>
5365
5366         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5367
5368         * reflection.c
5369         (write_generic_param_entry): Encode our custom attrs.
5370
5371         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5372
5373 2005-12-07  Martin Baulig  <martin@ximian.com>
5374
5375         * reflection.c (encode_new_constraint): Removed; we don't use the
5376         `NewConstraintAttribute' anymore.
5377
5378 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5379
5380         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5381         not fire a TypeResolve event when Assembly.GetType () is called.
5382
5383 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5384
5385         Beginning of support for nullable types in the runtime. Parts of
5386         this patch are from Martin.
5387
5388         * appdomain.c (MONO_CORLIB_VERSION): Bump
5389
5390         * domain.c (mono_init_internal): get the nullable type
5391
5392         * class.c (mono_class_is_nullable): New method
5393         (mono_class_get_nullable_param): New mehod
5394         (mono_class_create_generic): In types T? set cast_class to T
5395
5396         * class-internals.h (MonoDefaults): new nullable default class
5397         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5398         new methods.
5399
5400 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5401
5402         * metadata.c (select_container): New.  Refactor code to select the
5403         appropriate GenericContainer given the type of generic parameter
5404         we are looking for.
5405         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5406         not a MonoGenericContext.  Use select_container.  Update parameters.
5407         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5408         and MONO_TYPE_MVAR.
5409         (unwrap_arrays): Remove duplicate tests.
5410         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5411         generic instantiated class to find any arguments that are generic
5412         parameters.
5413         (mono_type_create_from_typespec_full): Use find_generic_param to
5414         avoid evicting some generic instantiations from the typespec
5415         cache.
5416
5417 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5418
5419         * reflection.c: fixed writing of doubles on ARM FPA.
5420
5421 2005-12-02  Robert Jordan  <robertj@gmx.net>
5422
5423         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5424
5425 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5426
5427         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5428         least on SUSE 10 they are not the same (on debian, they are just the
5429         same thing).
5430
5431 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5432
5433         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5434         DeclaringType for VARs and MVARs.
5435         * class.c (set_generic_param_owner): Fix initialization of owner
5436         fields.
5437
5438 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5439
5440         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5441
5442 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5443
5444         * threadpool.c: workaround for a bug that shows up on the Mac:
5445         select()+connect() on a blocking socket is not like it should
5446         be, so we proceed to connect() in that case, wasting the I/O
5447         threadpool thread until connect succeedes. Fixes bug #75436.
5448
5449 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5450
5451         * threadpool.c: fix typo when setting file descriptor states.
5452
5453 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5454
5455         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5456         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5457         create a temporary signature container.
5458         (mono_metadata_parse_generic_param): Update to changes.
5459         (mono_type_create_from_typespec_full): Update to changes.
5460         * loader.c (method_from_memberref): Don't use a
5461         MonoGenericContainer while parsing a memberref signature.
5462         (method_from_methodspec): Remove dead-store of the 'container'
5463         variable.  It's overwritten before use.
5464
5465         * metadata.c (mono_type_create_from_typespec_full): Make debugging
5466         checks tighter.
5467         (mono_metadata_parse_generic_param): Likewise.
5468         * loader.c (find_method_in_class): Does not need a
5469         MonoGenericContainer.  Use 'mono_method_signature' rather than
5470         'mono_method_signature_full'.
5471         (find_method, mono_get_method_constrained, method_from_memberref):
5472         Update to changes.
5473
5474         * metadata.c (mono_type_create_from_typespec_full): Ensure that
5475         owner-less generic-parameters are never evicted from the typespec
5476         cache.
5477
5478         * loader.c (method_from_memberref): Don't use the current context
5479         when parsing signatures.
5480         (method_from_methodspec, mono_get_method_from_token): Update to changes.
5481
5482         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
5483         side-effects in g_assert.
5484         * loader.c (mono_get_method_from_token): Resolve klass earlier so
5485         that we don't potentially lose information.
5486
5487 2005-11-26  Dick Porter  <dick@ximian.com>
5488
5489         * icall.c:
5490         * threads.c: icalls to implement basic (ie, not named)
5491         System.Threading.Semaphore.
5492
5493 2005-11-24  Dick Porter  <dick@ximian.com>
5494
5495         * process.c
5496         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5497         Use GetProcessId() if it's available.
5498
5499 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
5500
5501         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
5502
5503 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5504             Ankit Jain  <jankit@novell.com>
5505
5506         * loader.c (mono_get_method_from_token): Initialize 'method' field
5507         of all generic parameters before parsing the signature.  Remove
5508         code that "fixed"-up MVAR references.
5509
5510 2005-11-23  Ankit Jain  <jankit@novell.com>
5511
5512         * metadata.c (mono_metadata_has_generic_params):
5513         (mono_metadata_load_generic_param_constraints):
5514         (mono_metadata_load_generic_params): Move duplicate code ...
5515         (mono_metadata_get_generic_param_row): ... here. Returns the
5516         first row-id in GenericParam table for a given owner (token).
5517         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
5518         prototype.
5519
5520 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5521             Ankit Jain  <jankit@novell.com>
5522
5523         * metadata.c (mono_metadata_class_equal): Pass signature_only when
5524         comparing VARs too.
5525         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
5526         type->data.generic_param only if the type is an MVAR.
5527         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
5528         leak owner-less VARs and MVARs into managed space.
5529
5530 2005-11-21  Martin Baulig  <martin@ximian.com>
5531
5532         * class-internals.h
5533         (MonoMethod): Moved the `generic_container' here from
5534         `MonoMethodNormal' since we now also need it for
5535         `MonoMethodPInvoke';
5536         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
5537         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
5538         an union containing both `MonoMethodNormal' and
5539         `MonoMethodPInvoke'.
5540
5541         * loader.c
5542         (mono_get_method_from_token): Allow implementing generic methods
5543         as interncalls.
5544
5545         * threads.c
5546         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
5547         icall.
5548
5549 2005-11-17  Dick Porter  <dick@ximian.com>
5550
5551         * icall.c: 
5552         * process.h: 
5553         * process.c: Split the Process Start_internal icall into
5554         ShellExecuteEx_internal and CreateProcess_internal, which are
5555         called depending on whether UseShellExecute is true.  Fixes bug
5556         76670.
5557
5558         * appdomain.c (MONO_CORLIB_VERSION): Incremented
5559
5560 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
5561
5562         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
5563         'msize' parameters, use the information in 'mspec' instead.
5564         (emit_object_to_ptr_conv): Ditto.
5565
5566         * marshal.c (emit_struct_conv): Handle explicit layout structs with
5567         fields out of order. Fixes #76733.
5568
5569 2005-11-17  Ankit Jain  <jankit@novell.com>
5570
5571         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
5572
5573 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
5574
5575         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
5576           bug #76575.
5577
5578 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5579
5580         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
5581         for types with non-auto layout. Fixes #76717.
5582
5583 2005-11-16  Ankit Jain  <jankit@novell.com>
5584
5585         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
5586         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
5587         if generic_context is null.
5588           (mono_metadata_generic_param_equal): param->owner can be null.
5589           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
5590         null.
5591
5592 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5593
5594         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
5595         the correct value.
5596
5597 2005-11-15  Martin Baulig  <martin@ximian.com>
5598
5599         * object.c (set_value): Use mono_class_from_mono_type() instead of
5600         the hack for generic instances; fixes #76136.
5601
5602 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
5603
5604         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
5605         fields.
5606
5607         * image.c (load_metadata_ptrs): Initialize the new fields.
5608
5609         * reflection.c (create_dynamic_mono_image): Ditto.
5610
5611         * reflection.c (build_compressed_metadata): Use the new fields.
5612
5613         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
5614         icall.
5615
5616         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
5617         icall.
5618         
5619 2005-11-15  Ankit Jain  <jankit@novell.com>
5620             Raja R Harinath  <harinath@gmail.com>
5621
5622         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
5623         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
5624         new per-generic_container cache if the cached MonoType's context matches
5625         the current context.
5626           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
5627         to the expected context.
5628           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
5629
5630 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5631
5632         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
5633         we changed the signature of an icall.
5634         * icall.c: Modify to mono_double_ParseImpl return true/false 
5635         depending on the success, instead of throwing the exception. This will
5636         help us in Double.TryParse methods.
5637         
5638 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
5639
5640         * marshal.c (emit_marshal_object): Throw an exception when
5641         marshalling 'object' instead of crashing. Fixes #76696.
5642
5643 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5644
5645         * class-internals.h: Add prototype for mono_type_get_full_name ().
5646
5647 2005-11-11  Dick Porter  <dick@ximian.com>
5648
5649         * threads.c (mono_thread_manage): Make sure the main thread has
5650         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
5651
5652 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5653
5654         * loader.c (mono_loader_set_error_type_load): Log a warning to the
5655         console about the missing type.
5656         (mono_loader_set_error_method_load): Ditto.
5657
5658 2005-11-09  Miguel de Icaza  <miguel@novell.com>
5659
5660         * mono-config.c (mono_get_config_dir): Set the system defaults if
5661         none is specified.
5662
5663         * assembly.c (mono_set_dirs): New API entry point to set the
5664         assembly and the config directory in one call
5665
5666 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
5667
5668         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
5669         the ftnptr was created from a delegate in a domain other than the
5670         current domain. Fixes #75377.
5671
5672         * exception.h exception.c: Add mono_get_exception_not_supported ().
5673
5674 2005-11-08  Martin Baulig  <martin@ximian.com>
5675
5676         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
5677
5678 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
5679
5680         * security-manager.h: Added definitions to deal with strongname key 
5681         pairs bigger (and smaller) than 1024 bits.
5682         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
5683         adjust wrt the public key length being used.
5684
5685 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
5686
5687         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
5688           Windows build (r51396-51397).
5689
5690 2005-11-03  Martin Baulig  <martin@ximian.com>
5691
5692         * class.c (mono_class_setup_vtable_general): Also add generic
5693         methods to the vtable; fixes #76581.
5694
5695 2005-11-01  Miguel de Icaza  <miguel@novell.com>
5696
5697         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
5698         sure that we lookup GetString method from the System.Text.Encoding
5699         class, not the derived class or we get an empty method.
5700
5701         Fixed class #76612.
5702
5703 2005-10-25  Miguel de Icaza  <miguel@novell.com>
5704
5705         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
5706         if it has been previously set (embedders). 
5707
5708         Make mono_set_rootdir available also on Unix.
5709
5710 005-10-24  Robert Jordan  <robertj@gmx.net>
5711
5712         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
5713
5714 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
5715
5716         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
5717         only calls which are made to native code use this flag.
5718
5719         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
5720
5721 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
5722
5723         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
5724         Add support for FieldBuilders.
5725
5726 2005-10-29  Martin Baulig  <martin@ximian.com>
5727
5728         * mono-debug.c
5729         (mono_debug_using_mono_debugger): New public method; returns
5730         whether we're running inside the debugger.
5731
5732 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
5733
5734         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
5735         for Method/Constructor/FieldBuilders.
5736
5737 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
5738
5739         * reflection.c (module_add_cattrs): Save custom attributes for global methods
5740         and fields as well.
5741
5742 2005-10-26  Martin Baulig  <martin@ximian.com>
5743
5744         * mono-debug-debugger.c
5745         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
5746
5747 2005-10-24  Raja R Harinath  <harinath@gmail.com>
5748
5749         * icall.c (base64_to_byte_array): Don't pass an out-of-range
5750         integer to isspace.
5751
5752 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
5753
5754         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
5755         when passing valuetypes byref. Fixes #76502.
5756
5757 2005-10-19  Jackson Harper  <jackson@ximian.com>
5758
5759         * profiler.c: Don't put a . in front of types that are not in a
5760         namespace.
5761
5762 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
5763
5764         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
5765
5766 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
5767
5768         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
5769         #76436.
5770         (mono_marshal_get_ldflda_wrapper): Fix a warning.
5771
5772 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5773
5774         * assembly.c metadata-internals.h icall.c: Define an additional
5775         parameter for mono_assembly_name_parse_full, so we can avoid creating
5776         S.R.AssemblyName.Version when no version info wasn't passed.
5777         
5778 2005-10-09  Miguel de Icaza  <miguel@novell.com>
5779
5780         * class.c (mono_type_get_full_name): Reimplement method that was
5781         removed. 
5782
5783         * image.c: Some docs
5784
5785 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
5786
5787         * profiler.c (output_newobj_profile): Fix printing of Total memory
5788         on x86.
5789
5790 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5791
5792         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
5793
5794 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
5795
5796         * threads.c: remove debug output.
5797
5798 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5799
5800         * threads.c (mono_thread_manage): Fix crashes if more than 64
5801         threads need to be aborted. Hopefully fixes #75899.
5802
5803         * assembly.c (mono_stringify_assembly_name): New helper function.
5804
5805         * class.c: Use mono_stringify_assembly_name instead of the similar
5806         static function.
5807
5808         * assembly.h assembly.c: Add support for calling a postload search 
5809         hook if an assembly cannot be loaded.
5810
5811         * appdomain.c: Register new search hooks which call the AssemblyResolve
5812         events in AppDomain. Fixes #75231
5813
5814 2005-10-07  Martin Baulig  <martin@ximian.com>
5815
5816         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
5817         methods without debug info.
5818
5819 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
5820
5821         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
5822         wrappers.
5823
5824 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5825
5826         * file-io.c: now that we return symlinks, use lstat and, when the file
5827         is a symbolic link, stat, to get the file attributes. Also avoid the
5828         conversion to/from utf16/external.
5829
5830 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
5831
5832         * class.c (mono_class_layout_fields): Compute klass->has_references
5833         correctly if an embedded valuetype is not yet initialized. Fixes
5834         #76331.
5835
5836 2005-10-04  Martin Baulig  <martin@ximian.com>
5837
5838         * metadata.c
5839         (mono_metadata_load_generic_param_constraints): New public
5840         function; splitted the constraints loading out from
5841         mono_metadata_load_generic_params().
5842
5843         * class.c (mono_class_create_from_typedef): Call
5844         mono_metadata_load_generic_param_constraints() after setting up
5845         the type and creating our parent; fixes #75329.
5846
5847 2005-10-04  Martin Baulig  <martin@ximian.com>
5848
5849         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
5850         non-dynamic parent classes.
5851
5852 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
5853
5854         * file-io.c : win32 build fix (ETXTBSY seems not found).
5855
5856 2005-10-04  Martin Baulig  <martin@ximian.com>
5857
5858         * reflection.c
5859         (mono_image_get_methodspec_token): Make the cache actually work;
5860         fixes #75974.
5861
5862 2005-10-04  Martin Baulig  <martin@ximian.com>
5863
5864         * class.c (mono_class_name_from_token): Removed the unneccessary
5865         `MonoGenericContext *' argument.
5866
5867 2005-10-04  Martin Baulig  <martin@ximian.com>
5868
5869         * loader.c
5870         (method_from_methodspec): Make the caching work again; fixes the
5871         performance regression from #76262.
5872
5873 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5874
5875         * file-io.c:
5876         * file-io.h:
5877         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
5878         GetFileSystemEntries that performs the same work but without going
5879         into io-layer, locking, etc.
5880
5881 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
5882
5883         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
5884         ThreadState_Stopped as well. Fixes #76047.
5885
5886 2005-09-29  Martin Baulig  <martin@ximian.com>
5887
5888         * class.c
5889         (inflate_generic_context): If the new context has a `gmethod', set
5890         its `container' that that gmethod's `container'.
5891
5892         * metadata.c
5893         (mono_metadata_parse_generic_param): Simplify things;
5894         `generic_container = generic_context->container;' is just fine.
5895
5896         * loader.c (method_from_methodspec): Code cleanups.
5897
5898 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
5899
5900         * decimal.c: fix warning (and let gcc generate correct
5901         code on ARM with optimizations).
5902
5903 2005-09-28  Martin Baulig  <martin@ximian.com>
5904
5905         * loader.c
5906         (method_from_memberref): Added `MonoGenericContext *class_context'
5907         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
5908         (method_from_methodspec): If we're a memberref, use the enclosing
5909         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
5910
5911 2005-09-28  Martin Baulig  <martin@ximian.com>
5912
5913         * object.c (mono_runtime_invoke_array): Added support for
5914         MONO_TYPE_GENERICINST; fixes #75917.
5915
5916 2005-09-27  Martin Baulig  <martin@ximian.com>
5917
5918         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
5919         `k->byval_arg.type' to determine the actual type.
5920
5921         * loader.c (method_from_methodspec): Removed some hacks.
5922
5923 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
5924
5925         * class-internals.h (mono_field_is_deleted): Do the test for
5926         rtspecialname before we check the actual name of the field. This
5927         prevents us from dereferencing a pointer into the string table,
5928         saving us from accessing a few pages
5929
5930         * *.c: Replace the use of {Enter,Leave}CriticalSection with
5931         macros. This will allow a deadlock debugger to easily be plugged
5932         in.
5933
5934 2005-09-27  Martin Baulig  <martin@ximian.com>
5935
5936         * loader.c (method_from_methodspec): Create a "signature"
5937         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
5938
5939 2005-09-27  Martin Baulig  <martin@ximian.com>
5940
5941         * class.c
5942         (inflate_generic_class): Correctly set the new context's
5943         container.
5944
5945         * loader.c
5946         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
5947         instead of a `MonoGenericContext *'.
5948         (mono_method_signature_full): Take a `MonoGenericContainer *'
5949         instead of a `MonoGenericContext *'.
5950
5951         * metadata.c
5952         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
5953         instead of a `MonoGenericContext *'.
5954         (mono_metadata_parse_method_signature_full): Likewise.
5955
5956 2005-09-26  Martin Baulig  <martin@ximian.com>
5957
5958         * class.c
5959         (mono_class_from_generic_parameter): Set `klass->generic_container'
5960         (mono_class_from_generic_parameter): Likewise.
5961         (mono_bounded_array_class_get): We inherit the generic container
5962         from the element class.
5963
5964         * loader.c
5965         (find_method, find_method_in_class): Take a `MonoGenericContext *'
5966         argument rather than computing it here.
5967         (method_from_memberref): Correctly set the generic context before
5968         parsing the signature.  Fixes #75681.
5969
5970 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
5971
5972         * object.c (mono_class_has_special_static_fields): Fix warnings.
5973
5974 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5975
5976         * assembly.c: Add parse_public_key function, to
5977         par the public keys. Also added mono_assembly_name_parse_full,
5978         to define it the parsed key should be freed or not.
5979         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
5980         to parse a long format assembly name.
5981         * metadata-internals.h: Keep mono_assembly_name_parse_full as
5982         private, since calling it to preserve the key requires
5983         freeing it manually.
5984         
5985 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
5986
5987         * locales.c : removed HAVE_ICU part.
5988
5989 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
5990
5991         * object.c (mono_class_create_runtime_vtable): Avoid calling 
5992         field_is_special_static if the klass has no special static fields.
5993
5994         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
5995         (MonoCachedClassInfo): Likewise.
5996
5997         * object.c (mono_class_has_special_static_fields): New helper function.
5998
5999 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6000
6001         * class.c (mono_class_create_from_typedef): Don't call 
6002         interfaces_from_typedef_full for enums.
6003         (mono_class_create_from_typedef): Compute the base types of enums directly
6004         without calling mono_class_setup_fields ().
6005         (mono_class_find_enum_basetype): New helper function.
6006
6007         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
6008         one place inside the string heap.
6009         
6010 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
6011
6012         * class.c: locking fixes, code cleanups, some docs added.
6013         Allocate some data structures in the image mempool.
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 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
6021
6022         * class-internals.h, class.c, reflection.c: reduce memory taken by
6023         MonoClass.
6024
6025 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
6026
6027         * metadata.c, metadata.h, loader.h: documentation updates, code and
6028         API cleanups.
6029
6030 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6031
6032         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6033         the example code.
6034
6035         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
6036         page faults caused by the runtime while reading metadata.
6037
6038 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6039
6040         * socket-io.c: the field names were changed 3 months ago and no one
6041         realized until bug #76077 got filed!
6042
6043 2005-09-20  Martin Baulig  <martin@ximian.com>
6044
6045         * icall.c (assembly_icalls): Removed some unused debugger icalls.
6046
6047 2005-09-20  Martin Baulig  <martin@ximian.com>
6048
6049         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
6050         write the rank into the class entry.
6051
6052 2005-09-20  Martin Baulig  <martin@ximian.com>
6053
6054         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
6055
6056 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
6057
6058         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6059
6060         * icall.c (custom_attrs_defined_internal): New icall.
6061
6062         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
6063         function.
6064         (mono_custom_attrs_construct_by_type): New helper function.
6065
6066 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
6067
6068         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
6069         terminate the resulting string. Fixes #76123.
6070
6071 2005-09-16  Martin Baulig  <martin@ximian.com>
6072
6073         * mono-debug.c
6074         (mono_debug_add_method): Ignore inflated methods for the moment.
6075
6076 2005-09-14  Martin Baulig  <martin@ximian.com>
6077
6078         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
6079
6080 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
6081
6082         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
6083         return a success/failure indication.
6084         (mono_metadata_interfaces_from_typedef_full): Ditto.
6085         (get_constraints): Ditto.
6086
6087 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
6088
6089         * marshal.c (emit_marshal_array): Fix handling of null arrays.
6090         
6091         * marshal.c (emit_marshal_array): Add support for returning string
6092         arrays from delegates. Fixes #76063.
6093
6094         * marshal.c: Use the emit_ldloc/stloc macros where possible.
6095
6096 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
6097
6098         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
6099         icall.
6100
6101 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
6102
6103         * reflection.c icall.c: Fix after mono_get_exception_type_load
6104         signature change.
6105
6106         * assembly.c (mono_assembly_get_assemblyref): New helper function.
6107         (mono_assembly_load_reference): Use the new helper.
6108
6109         * class-internals.h (MonoLoaderError): New structure containing 
6110         information about type loading errors.
6111
6112         * class-internals.h loader.c: Add APIs to store per-thread loader
6113         error information.
6114
6115         * loader.c class.c: Set the loader error if needed.
6116
6117         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
6118
6119 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
6120
6121         * decimal.c: fixed to handle the broken ARM fp format.
6122
6123 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
6124
6125         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
6126         broken.
6127
6128 2005-09-06  Martin Baulig  <martin@ximian.com>
6129
6130         * domain.c (supported_runtimes): Added v2.0.50727.
6131
6132 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
6133
6134         * culture-info.h: reduce the size of some structures.
6135
6136 2005-09-05  Martin Baulig  <martin@ximian.com>
6137
6138         Reflect latest API changes in the August CTP.
6139
6140         * icall.c
6141         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
6142         ("MonoType.HasGenericArguments"): Removed.
6143         ("MonoMethod.BindGenericParameters"): Renamed to
6144         "MakeGenericMethod".
6145         ("MethodBuilder.BindGenericParameters"): Renamed to
6146         "MakeGenericMethod".    
6147
6148 2005-09-05  Martin Baulig  <martin@ximian.com>
6149
6150         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
6151
6152 2005-09-05  Martin Baulig  <martin@ximian.com>
6153
6154         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6155
6156         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
6157         generic_container is non-NULL.
6158
6159 2005-09-05  Martin Baulig  <martin@ximian.com>
6160
6161         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6162
6163         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
6164
6165 2005-08-29  Michal Moskal  <malekith@nemerle.org>
6166
6167         * reflection.c (encode_locals,
6168         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
6169         for large generic types.
6170
6171 2005-09-05  Martin Baulig  <martin@ximian.com>
6172
6173         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6174
6175         * class.c (mono_dup_array_type): New public method.
6176         (mono_metadata_signature_deep_dup): New public method.
6177         (dup_type): Correctly duplicate array and function types.
6178
6179 2005-09-05  Martin Baulig  <martin@ximian.com>
6180
6181         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6182
6183         * reflection.c (get_default_param_value_blobs): Handle generic types
6184         and generic methods.
6185
6186 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
6187
6188         * class.c: Fixed error reporting (method/class were inversed) for 
6189         inheritance demands.
6190         * security-manager.c|h: Added the AppDomain when calling the managed
6191         System.Security.SecurityManager.InheritanceDemand method.
6192
6193 2005-09-01  Raja R Harinath  <rharinath@novell.com>
6194
6195         * reflection.c (encode_marshal_blob): 'marshaltype' and
6196         'marshaltyperef' are alternate sources for the custom marshaler
6197         name.
6198
6199 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
6200
6201         * class.c: fix creation of array classes with rank == 1
6202         (patch by Ankit Jain <jankit@novell.com>).
6203
6204 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
6205
6206         * object.c: fix check for creating the bound data for arrays vs
6207         szarrays.
6208
6209 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6210
6211         * object.c: configuration file name is now based on the executable name,
6212         not the image name. Fixes bug #75931.
6213
6214 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
6215
6216         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
6217         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
6218
6219 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
6220
6221         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6222
6223 2005-08-24  Ankit Jain  <jankit@novell.com>
6224             Raja R Harinath  <rharinath@novell.com>
6225
6226         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6227           called by it recursively.
6228           (mono_class_init): Remove special case in pending_init handling, since it's
6229           superseded by the fix to mono_class_from_typeref.
6230
6231 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6232
6233         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6234         BROKEN_THREAD_START stuff.
6235
6236 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6237
6238         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6239         trampoline.
6240
6241         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6242         
6243         * object.c (mono_delegate_ctor): Replace the original function address with
6244         a delegate trampoline.
6245
6246 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6247
6248         * icall.c: add boolean argument to base64_to_byte_array and 
6249         InternalFromBase64String to control whether a whitespace-only string
6250         is allowed (or should casue a FormatException to be thrown). We need
6251         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6252         to match the MS behaviour in both profiles.
6253         * appdomain.c: Bump corlib version.
6254
6255 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6256
6257         This patch implements a big portion of publisher policy
6258         support, used to bind assembly versions and redirect
6259         one assembly from version A to version B.
6260
6261         * assembly.c:
6262         New GSList loaded_assembly_bindings, for storing the cached
6263         assembly bindings.
6264         (assembly_binding_maps_name): New static function for checking if a 
6265         assembly binding information maps an assembly name.
6266         (mono_assembly_binding_info_free): New function for freeing
6267         assembly binding information resources.
6268         (get_publisher_policy_info): New static function for retrieving 
6269         assembly binding information from a MonoImage.
6270         (compare_versions): New static function for comparing an assembly
6271         binding information data and the version of an assembly name.
6272         (check_policy_versions): New static function for checking if an
6273         assembly binding info mapping an assembly name is valid for it.
6274         (mono_assembly_load_publisher_policy): New static function for
6275         loading the 'policy.major.minor.MyAssembly' image for an assembly
6276         with an assembly name 'aname'.
6277         (mono_assembly_bind_version): New static function for updating
6278         assembly redirection.
6279         (mono_assembly_apply_binding): New static function for applying
6280         assembly binding.
6281         (search_binding_loaded): New static function for searching 
6282         loaded assembly binding infos in the cache domain.
6283         (mono_assembly_load_full): Don't apply assembly binding for
6284         reflection only assemblies.
6285
6286         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6287         which contains information about assembly binding. Also
6288         declare signature for mono_config_parse_publisher_policy ()
6289         function, used to retrieve pub policy info.
6290         
6291         * mono-config.c:
6292         (publisher_policy_start): New static function used to parse publisher 
6293         policy config files.
6294         (publisher_policy_parser): New static MonoParseHandler containing 
6295         the functions used when parsing config files.
6296         (mono_config_parse_publisher_policy): New function for parsing
6297         publisher policy files.
6298         
6299 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6300
6301         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6302
6303         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6304
6305         * object.c (mono_get_addr_from_ftnptr): New helper function.
6306
6307         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6308
6309         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6310
6311 2005-08-19  Dick Porter  <dick@ximian.com>
6312
6313         * threads.c, threads.h, appdomain.c, appdomain.h,
6314         profiler-private.h, monitor.c, object.c, object-internals.h,
6315         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6316         store the thread ID, so it can hold a 64 bit value if needed.
6317
6318 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6319
6320         * reflection.c (mono_reflection_create_dynamic_method): Store the
6321         handle class into the method references as well so ldtoken works in
6322         dynamic methods.
6323
6324         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6325         types.
6326
6327 2005-08-19  Ankit Jain <jankit@novell.com>
6328
6329         Fix #75847.
6330         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6331           here rather than using the method signature of a arbitrary function
6332           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6333           two arguments.
6334           Hack done with Harinath.
6335
6336 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6337
6338         * threadpool.c: disable printing stack traces when we get a exception
6339         in a threadpool thread. I need to do more testing to figure out which
6340         cases actually print this. Fixes bug #75828.
6341
6342 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6343
6344         * icall.c: there might be ignored whitespace after the last '='. This
6345         fixes length computation and bug #75840.
6346
6347 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6348
6349         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6350         well. Fixes #75809.
6351
6352         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
6353         #75784.
6354         
6355         * reflection.c (create_custom_attr_data): Ditto.
6356
6357 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
6358
6359         * locales.c, culture-info.h : removed RegionLCIDMap.
6360         * culture-info-tables.h : regenerated.
6361
6362 2005-08-16  Martin Baulig  <martin@ximian.com>
6363
6364         * class.c (mono_type_get_name_recurse): Small fix.
6365
6366 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6367
6368         * locales.c : indentation fixie.
6369
6370 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6371
6372         * object-internals.h,
6373           locales.h,
6374           locales.c,
6375           culture-info.h,
6376           icall.c : added RegionInfo table support.
6377         * culture-info-table.h : regenerated for region support.
6378
6379 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6380
6381         * reflection.c (resolve_object): handle all kinds of MonoMethod
6382         including generic ones
6383
6384 2005-08-12  Ankit Jain <jankit@novell.com>
6385
6386         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6387           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6388
6389 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6390
6391         * process.c: Don't close a thread handle when it's NULL. This is a
6392         workaround for bug #75733.
6393
6394 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6395
6396         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6397
6398 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6399
6400         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6401
6402 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6403
6404         * threadpool.c: if a work item in the thread pool has a callback that
6405         catches a exception, don't propagate it after invoking the callback.
6406         Fixes bug #75336.
6407
6408 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6409
6410         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6411
6412         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6413
6414         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6415
6416         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6417
6418 2005-08-03  Ankit Jain  <jankit@novell.com>
6419
6420         Fix #75683.
6421         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6422           PInvoke calling convention is 0.
6423
6424 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6425
6426         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6427         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6428
6429 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6430
6431         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6432         to handle threads not started by the GC (patch by Michael Meeks
6433         <michael.meeks@novell.com>).
6434
6435 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6436
6437         * reflection.c: Make buffer used in emitting types larger for some
6438         big generic types (patch by Michal Moskal).
6439
6440 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6441
6442         * mono-debug.c: Fix some (not all) alignment problems.
6443
6444 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6445
6446         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6447         Invoke mono_image_load_from_data_full passing the refonly
6448         parameter.
6449
6450         * assembly.c
6451         (mono_assembly_open_from_bundle): Add the refonly argument, 
6452         in order to pass it to other methods it calls to.
6453         (do_mono_assembly_open): Add the refonly argument, in order 
6454         to pass it to other methods it calls to.
6455         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6456         the refonly parameter to it.
6457
6458         * image.c: Add loaded_images_refonly_hash and
6459         loaded_images_refonly_guid_hash to cache the reflection
6460         only loaded images.
6461         (mono_images_init): Initialize the hash tables used for
6462         caching the reflection only images.
6463         (load_modules): Invoke mono_image_open_full passing the refonly
6464         parameter to load the modules the correct way.
6465         (build_guid_table): Add the refonly argument, to re-build the 
6466         correct hash table.
6467         (do_mono_image_open): Added the refonly argument, in order to
6468         define it for the loaded image.
6469         (mono_image_loaded_full): New function, which receives an
6470         additional parameter to look for the image in the refonly or
6471         non-refonly section.
6472         (mono_image_loaded): Updated, using mono_image_loaded_full.
6473         (mono_image_loaded_by_guid_full): The same case that happens
6474         with mono_image_loaded_full.
6475         (mono_image_loaded_by_guid): Likewise.
6476         (register_image): Use the ref_only variable inside MonoImage
6477         to decide in which hash table store the current image.
6478         (mono_image_open_from_data_full): Rename
6479         mono_image_open_from_data to mono_image_open_from_data_full,
6480         adding the refonly argument, to define the ref_only variable 
6481         inside MonoImage.
6482         (mono_image_open_from_data): Return 
6483         mono_image_open_from_data_full.
6484         (mono_image_open_full): Rename mono_image_open to
6485         mono_image_open_full, receiving the new refonly argument,
6486         to pass it to inner methods.
6487         (mono_pe_file_open): Update this function, to open
6488         a MonoImage as a non-refonly image.
6489         (mono_image_close): Use the refonly variable inside
6490         MonoImage to remove the image from the correct caches.
6491
6492         * image.h: Add the signatures of mono_image_open_full,
6493         mono_image_open_from_data_full, mono_image_loaded_full,
6494         mono_image_loaded_by_guid_full.
6495
6496         * metadata-internals.h: Add the ref_only field to 
6497         MonoImage.
6498         
6499 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6500
6501         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
6502         Fix the last behavior, which used to load the assemblies and
6503         extract MonoReflectionAssemblyName information, instead of
6504         extract it from the metadata tables. Needed for Reflection
6505         Only assemblies.
6506         
6507 2005-07-29  Martin Baulig  <martin@ximian.com>
6508
6509         * mono-debug-debugger.c
6510         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
6511         not initialized.
6512
6513         * mono-debug.c
6514         (mono_debug_address_from_il_offset): Check whether we have
6515         debugging support before attempting to take the lock.
6516         (mono_debug_source_location_from_address): Likewise.
6517         (mono_debug_source_location_from_il_offset): Likewise.
6518         (mono_debug_il_offset_from_address): Likewise.
6519         (mono_debug_address_from_il_offset): Likewise.
6520
6521 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
6522
6523         * class.c (mono_class_from_name_case): Add support for dynamic images.
6524         Fixes #75650.
6525
6526         * object.c (mono_class_compute_gc_descriptor): Add a workaround
6527         for #75479.
6528
6529 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6530         
6531         * reflection.c (mono_method_get_object): Fix warning.
6532
6533 2005-07-28  Martin Baulig  <martin@ximian.com>
6534
6535         * mono-debug.c
6536         (mono_debug_add_wrapper): Also write the wrapper type.
6537
6538 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6539
6540         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
6541         
6542         * class.c (mono_class_init): Avoid reading nested classes if the AOT
6543         data indicates the class has none.
6544
6545 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
6546
6547         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
6548         loader lock with the debugger lock. Prevents deadlocks for beagle.
6549
6550         Beagle can now run on an smp box for a weekend without any
6551         issues. Woohoo!
6552
6553 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
6554
6555         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
6556         in a module. Fixes #75629.
6557
6558 2005-07-26  Martin Baulig  <martin@ximian.com>
6559
6560         * mono-debug.c (mono_debug_add_wrapper): New static method.
6561         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
6562         interncall or a wrapper.
6563
6564         * mono-debug.h (MonoDebugWrapperData): New public typedef.
6565         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
6566         (MONO_DEBUGGER_VERSION): Bump to 51.
6567
6568         * mono-debug-debugger.c
6569         (mono_debugger_add_type): Removed this empty function.
6570         (mono_debugger_add_method): Likewise.
6571
6572 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
6573
6574         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
6575         before accessing method->slot.
6576
6577 2005-07-21  Jb Evain  <jbevain@gmail.com>
6578
6579         * reflection.c (method_encode_clauses/class): Handle filters clauses.
6580         Fixes #75010.
6581
6582 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
6583
6584         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
6585         #75587.
6586
6587 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
6588
6589         * image.h image.c: Add mono_image_get_guid () API function.
6590
6591 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
6592
6593         There were issues when multiple threads tried to load
6594         assemblies. A deadlock was created between assemblies_mutex and
6595         mono_domain_assemblies_lock. This fixes the issue by making the
6596         assembly ref counting be lock free. See bug 75586.
6597         
6598         * image.c (mono_image_close): The add ref function here was using
6599         Interlocked operations while the unref was using a mutex and a
6600         --. I don't think this was ever a bug that would be exposed in a
6601         non-pendantic way (ie, by an embedder doing a ref on one thread
6602         and an unref on another), but for the sake of correctness, this is
6603         now Interlocked.
6604
6605         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
6606         (mono_assembly_load_reference): Call mono_assembly_addref rather
6607         than touching the refcount ourselves.
6608         (mono_assembly_close): Use InterlockedDecrement to unref the
6609         assembly. Don't acquire the lock unless it is actually needed.
6610
6611 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6612
6613         * class.c (mono_class_layout_fields): Fix calculation of has_references
6614         for generic types.
6615
6616 2005-07-12  Martin Baulig  <martin@ximian.com>
6617
6618         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6619
6620         * metadata.c
6621         (mono_type_hash): Provide better hashing for generic instances.
6622         (mono_generic_inst_hash): Improve hashing.
6623         (mono_generic_class_hash): Likewise.
6624
6625         * reflection.c (mymono_metadata_type_hash): Improve hashing for
6626         generic instances.
6627
6628 2005-07-12  Martin Baulig  <martin@ximian.com>
6629
6630         * reflection.c (mono_reflection_create_runtime_class): Remove the
6631         hack for generic type definitions and non-`Run' assemblies.
6632         (mono_reflection_bind_generic_parameters): Also use
6633         `klass->wastypebuilder' to check for TypeBuilders.
6634
6635 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6636
6637         * class.c (mono_class_layout_fields): Fix calculation of has_references
6638         for generic types.
6639
6640         * class.c (inflate_generic_class): Fix a leak.
6641         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
6642         for generic types.
6643
6644 2005-07-11  Martin Baulig  <martin@ximian.com>
6645
6646         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
6647         on error.
6648
6649 2005-07-11  Martin Baulig  <martin@ximian.com>
6650
6651         * loader.c (find_method): Also lookup in
6652         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
6653
6654 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6655
6656         * appdomain.c (mono_domain_unload): Don't free the error message
6657         before passing it to mono_get_exception_...
6658
6659         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
6660         
6661 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
6662
6663         * threads.c: try to better guess an available RT signal (bug #75387).
6664
6665 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6666
6667         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
6668         and CACHE_OBJECT.
6669
6670 2005-07-07  Martin Baulig  <martin@ximian.com>
6671
6672         * class.c (mono_type_get_name_full): Return NULL for
6673         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
6674         fixes #75408.
6675
6676 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6677
6678         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
6679         exit the appdomain as well being aborted.
6680
6681         * threadpool.c: Create all threadpool threads inside the root appdomain, and
6682         change back to the root domain after calling managed code. This enables
6683         appdomains using threadpools to be unloaded.
6684
6685 2005-07-07  Martin Baulig  <martin@ximian.com>
6686
6687         * class-internals.h
6688         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
6689         into `MonoDynamicGenericClass' since we only need it for dynamic
6690         types.
6691
6692         * reflection.c (mono_class_bind_generic_parameters): We don't need
6693         to compute the `parent' here.
6694
6695 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
6696
6697         * culture-info-table.h : regenerated.
6698
6699 2005-07-06  Martin Baulig  <martin@ximian.com>
6700
6701         * icall.c
6702         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
6703
6704         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
6705
6706 2005-07-06  Martin Baulig  <martin@ximian.com>
6707
6708         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
6709         we're doing a signature-only comparision; fixes #74945.
6710
6711 2005-07-06  Martin Baulig  <martin@ximian.com>
6712
6713         * class-internals.h (MonoGenericClass): Moved some things out into
6714         a new `MonoInflatedGenericClass' type.  
6715         (MonoInflatedGenericClass): New type; the `klass' of a
6716         `MonoGenericClass' is now computed lazyly in
6717         mono_get_inflated_generic_class().      
6718
6719         * class.c (mono_get_inflated_generic_class): New public function.
6720         (mono_class_inflate_generic_method): Removed the unused
6721         `MonoClass *' argument.
6722         (setup_generic_vtable): Don't call mono_get_inflated_method() on
6723         all the methods.
6724         (mono_class_create_generic): Make this static and merge it with
6725         mono_class_create_generic_2(); we're now called automatically from
6726         mono_get_inflated_generic_class().
6727
6728         * loader.c (mono_method_signature): Call
6729         mono_get_inflated_method() here.
6730
6731 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
6732
6733         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
6734         type of fields with RVA.
6735
6736         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
6737         for this pseudo class.
6738         (my_mono_class_from_generic_parameter): Likewise.
6739         (mono_class_init): Allow interfaces to have cctors.
6740
6741 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6742
6743         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
6744         lazily for AOT methods.
6745
6746 2005-07-05  Martin Baulig  <martin@ximian.com>
6747
6748         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
6749         returns FALSE for a successful match, not TRUE.
6750
6751 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6752
6753         * loader.c (mono_method_get_index): Optimize this a bit.
6754
6755 2005-07-04  Martin Baulig  <martin@ximian.com>
6756
6757         * class.c
6758         (class_compute_field_layout): Move the check for generic type
6759         definitions into mono_class_layout_fields().  Fixes #74684.
6760         (mono_class_from_generic_parameter): Correctly compute
6761         `klass->parent'; fixes #75457.
6762
6763         * reflection.c (register_assembly, register_module): Make sure
6764         `domain->rejobject_hash' is already created.
6765
6766 2005-07-02  Martin Baulig  <martin@ximian.com>
6767
6768         * class-internals.h
6769         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
6770         `MonoDynamicGenericClass'.      
6771
6772 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
6773
6774         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
6775         returned by a field getter is null, since null is a valid value.
6776
6777 2005-07-01  Martin Baulig  <martin@ximian.com>
6778
6779         * reflection.c (mono_reflection_generic_class_initialize): Update
6780         the `dgclass->fields [i].parent' to the correct class.
6781         (mono_image_get_fieldref_token): Use the declaring type, not the
6782         reflected type.
6783
6784 2005-07-01  Martin Baulig  <martin@ximian.com>
6785
6786         * loader.c (find_method): Also look in the interfaces; fixes #75429.
6787
6788 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
6789
6790         * threads.c (thread_cleanup): assert that thread != NULL
6791         (wait_for_tids_or_state_change): We were using the wrong variable
6792         when accessing wait->threads. `i' was always out of the bounds of
6793         the array.
6794
6795 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6796
6797         * loader.c: map user32 and kernel32 to libMonoSupportW
6798
6799 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
6800
6801         * appdomain.c (unload_thread_main): Mark this as WINAPI.
6802
6803 2005-06-28  Martin Baulig  <martin@ximian.com>
6804
6805         * loader.c (method_from_methodspec): Fix #75334.
6806
6807 2005-06-28  Martin Baulig  <martin@ximian.com>
6808
6809         Fix #74953 - Arrays now implement the generic IList<T> interface
6810         on the 2.0 platform.
6811
6812         * class-internals.h (MonoDefaults): Added `generic_array_class'.
6813
6814         * reflection.c (mono_class_bind_generic_parameters): New public
6815         function; similar to mono_reflection_bind_generic_parameters(),
6816         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
6817
6818         * domain.c (mono_init_internal): Try to initialize.
6819         `mono_defaults.generic_array_class' here; this'll only succeed if
6820         we're using the 2.0 corlib.
6821
6822         * icall.c
6823         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
6824         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
6825         (mono_lookup_internal_call): Added support for nested classes.
6826
6827         * loader.c
6828         (mono_get_method_from_token): Set `result->signature->pinvoke' if
6829         we're an interncall and have generic arguments.
6830
6831         * class.c
6832         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
6833         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
6834         instance of System.Array.InternalArray<T> for arrays, so they
6835         implement the generic IList<T> interface.
6836
6837 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
6838
6839         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
6840         (chastamar@yahoo.com). Fixes #75374.    
6841
6842 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
6843
6844         * culture-info-table.h: regenerated.
6845
6846 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6847
6848         * icall.c: handle spaces correctly for base64 strings.
6849
6850 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
6851
6852         * *.c: Kill some warnings.
6853
6854 2005-06-23  Duncan Mak  <duncan@novell.com>
6855
6856         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
6857         that this builds on Solaris 10 (x86).
6858
6859 2005-06-23  Martin Baulig  <martin@ximian.com>
6860
6861         * class.c
6862         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
6863         generic type definitions.
6864
6865 2005-06-23  Martin Baulig  <martin@ximian.com>
6866
6867         Fix #75331.
6868
6869         * metadata.c (mono_class_get_overrides): Renamed to
6870         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
6871         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
6872         pass it to mono_get_method_full().
6873
6874 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
6875
6876         * reflection.c (mono_reflection_create_runtime_class): take the
6877         mono_domain_lock in this method. Prevents deadlocks
6878
6879 2005-06-22  Martin Baulig  <martin@ximian.com>
6880
6881         * loader.c (method_from_methodspec): Fix #75330.
6882
6883 2005-06-22  Martin Baulig  <martin@ximian.com>
6884
6885         * reflection.c (type_get_qualified_name): Use
6886         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
6887         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
6888         argument; use it if we don't have an assembly name.
6889
6890 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
6891
6892         * object.c: In mono_message_init, set "copy out" flag for in
6893         parameters with the [Out] flag.
6894
6895 2005-06-21  Martin Baulig  <martin@ximian.com>
6896
6897         * class.c
6898         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
6899         and MONO_TYPE_PTR.
6900
6901 2005-06-21  Martin Baulig  <martin@ximian.com>
6902
6903         * class.c (mono_class_init): Don't initialize `class->fields' for
6904         generic instances since they're initialized again in
6905         compute_field_layout(). 
6906         (compute_field_layout): Set the field's `generic_info' here; fix
6907         #75320. 
6908
6909 2005-06-21  Martin Baulig  <martin@ximian.com>
6910
6911         * class-internals.h
6912         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
6913
6914         * metadata.c (mono_metadata_generic_method_equal): Also
6915         distinguish the `generic_class'; fixes #75334.
6916
6917 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6918
6919         * domain.c:
6920         * appdomain.c:
6921         * domain-internals.h:
6922         * reflection.c: 'domain_assemblies' field is now protected by its own
6923         lock. Don't call into managed code to run the AssemblyLoad event if we
6924         now there are no registered delegates for it.
6925
6926 2005-06-20  Martin Baulig  <martin@ximian.com>
6927
6928         * class.c (mono_class_is_assignable_from): Use a custom version of
6929         mono_class_has_parent() to make things work for generic instances;
6930         fix #75300.
6931
6932 2005-06-20  Martin Baulig  <martin@ximian.com>
6933
6934         * loader.c (method_from_methodspec): Apply a patch from
6935         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
6936
6937 2005-06-20  Martin Baulig  <martin@ximian.com>
6938
6939         * class.c (mono_class_init): Reverted Zoltan's last change; it
6940         breaks generics.
6941
6942 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
6943
6944         * threads.c (wait_for_tids_or_state_change): Add missing locking.
6945
6946 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6947
6948         * socket-io.c: fix the index in the socket array for writable/error
6949         sockets. Fixes bug #75306.
6950
6951 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
6952
6953         * class.c (mono_class_init): Allow interfaces to have static ctors.
6954
6955 2005-06-17  Martin Baulig  <martin@ximian.com>
6956
6957         * loader.c (method_from_methodspec): Use `context->container' when
6958         parsing the `gmethod->inst'.
6959
6960 2005-06-17  Martin Baulig  <martin@ximian.com>
6961
6962         * class.c (mono_type_get_name_recurse): Don't add the assembly
6963         name for type arguments.
6964
6965 2005-06-15  Martin Baulig  <martin@ximian.com>
6966
6967         * reflection.c (mono_image_get_inflated_method_token): Encode
6968         correct klass; fixes #75260.
6969
6970 2005-06-13 Michal Moskal <malekith@nemerle.org>
6971
6972         * icall.c: Make GetCorrespondingMethod/Constructor take
6973         MonoReflectionMethod method not MonoMethod. Removed
6974         MonoType.GetCorrespondingField, and make
6975         MonoGenericType.GetCorrespondingField take name not
6976         MonoClassField.
6977
6978 2005-06-13  Michal Moskal <malekith@nemerle.org>
6979
6980         * reflection.c (field_encode_signature, encode_locals):
6981          Make sizes of buffers for types larger (for big generic types).
6982          (create_generic_typespec,
6983          mono_reflection_sighelper_get_signature_local,
6984          mono_reflection_sighelper_get_signature_field):
6985          Add asserts for too small buffers.
6986
6987 2005-06-15  Martin Baulig  <martin@ximian.com>
6988
6989         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
6990         if our parent is not a dynamic type.
6991
6992 2005-06-15  Martin Baulig  <martin@ximian.com>
6993
6994         * class-internals.h (MonoTypeNameFormat): New enum.
6995
6996         * class.c
6997         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
6998         (mono_type_get_full_name): Removed.
6999         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
7000         argument instead of the boolean's.
7001
7002         * icall.c (ves_icall_System_MonoType_getFullName):
7003         Added `gboolean assembly_qualified'.    
7004
7005         * reflection.h
7006         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
7007
7008         * reflection.c (mono_reflection_parse_type): Parse the new type
7009         name format.
7010
7011 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7012
7013         * icall.c: no need to convert from utf16 to utf8 and then back again
7014         after the call to GetLogicalDrives.
7015
7016 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7017
7018         * icall.c: frombase64. Fix problems exposed by new tests.
7019
7020 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7021
7022         * icall.c: added internal calls for converting char [] and strings in
7023         base64 into byte [].
7024
7025 2005-06-10  Martin Baulig  <martin@ximian.com>
7026
7027         * class.c (mono_class_create_generic_2): Read the nested classes
7028         from the metadata rather than from `gklass->nested_classes' since
7029         `gklass' might not be initialized yet.
7030
7031 2005-06-09  Duncan Mak  <duncan@novell.com>
7032
7033         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
7034         all public headers. Fixes #74919.
7035
7036 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
7037
7038         * domain.c: The key for proxy_vtable_hash is now a pointer
7039         array. Added new GHashFunc and GCompareFunc functions for this.
7040
7041         * class.h: The list of interfaces in MonoRemoteClass is known in
7042         advance and can't grow (we create a new MonoRemoteClass if needed),
7043         so now the interface array can be allocated together with
7044         MonoRemoteClass.
7045         
7046         * object.c: Added a new method create_remote_class_key.
7047         Fixed mono_remote_class so it does not depend on
7048         mono_upgrade_remote_class.
7049         Removed extend_interface_array.
7050         Added new method clone_remote_class(), which makes a copy of a remote
7051         class and adds a new interface or class to it.
7052         mono_upgrade_remote_class() now creates a new remote class (or gets
7053         it from the cache) if an vtable upgrade is needed. In this way
7054         we make sure that other objects sharing the same remote class
7055         don't get the new vtable with unwanted interfaces.
7056         
7057         * object-internals.h:
7058         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
7059         
7060         * marshal.c: Track changes in mono_upgrade_remote_class().
7061
7062 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
7063         * icall.c: Add runtime methods for obtaining members of inflated
7064         class, which were created from supplied non-inflated members. It
7065         is used in internal Get{Method,Constructor,Field} methods in
7066         System.Type
7067
7068 2005-06-09  Martin Baulig  <martin@ximian.com>
7069
7070         * reflection.c
7071         (mono_reflection_bind_generic_method_parameters): Fix #75169.
7072
7073 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7074         * reflection.c (mono_image_basic_init): Define
7075         Version in MonoDynamicAssembly. 
7076         
7077 2005-06-08  Martin Baulig  <martin@ximian.com>
7078
7079         Fix #75136.
7080
7081         * loader.c
7082         (mono_method_signature_full): New public method; takes a
7083         `MonoGenericContext *'.
7084         (find_method): Use mono_method_signature_full() and pass the
7085         klass'es context to it.
7086
7087         * class.c (mono_class_is_inflated_method): Use
7088         mono_method_signature_full() and pass the context to it.
7089
7090 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
7091
7092         * object.c: add proper locking in mono_remote_class_vtable(),
7093         fixes possible memory corruption.
7094
7095 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
7096
7097         * marshal.c (mono_remoting_marshal_init): set
7098         initialized after initialization.
7099
7100 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
7101
7102         * locales.c : hush.
7103
7104 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
7105
7106         * object.c (extend_interface_array): fix really silly
7107         memory corrupting / comparison bug.
7108
7109 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7110
7111         * reflection.c: Functions added to support the creation
7112         of CustomAttributeData, which includes Attribute data
7113         used by ReflectionOnly methods.
7114
7115         * reflection.h:  mono_reflection_get_custom_attrs_data and
7116          mono_custom_attrs_data_construct added (functions exposed).
7117
7118          * icall.c: Added mono_reflection_get_custom_attrs_data
7119          as icall.
7120         
7121 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
7122
7123         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
7124         lupus's request.
7125
7126 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
7127
7128         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
7129
7130         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
7131         dynamic DllImportAttribute.
7132
7133         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
7134         dynamic DllImportAttribute.
7135
7136         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
7137         Fixes #75162.
7138
7139 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7140
7141         * threads.c: avoid segfault when an unstarted thread is aborted.
7142
7143 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
7144
7145         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
7146         Returns the name and version of the runtime for reporting.
7147
7148 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7149
7150         * appdomain.c: bump corlib version.
7151         * object-internals.h: new field in MonoReflectionAssembly.
7152
7153 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7154
7155         * object-internals.h: Carlos forgot to add this field.
7156
7157 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7158
7159         * icall.c: Added create_version to create instances
7160         of Version of MonoReflectionAssemblyName. This change helps
7161         the AssemblyName tests to keep running fine.
7162         
7163 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
7164   
7165         * object.c (mono_method_return_message_restore): A somehow less
7166         intrusive fix for #75138.
7167
7168 2005-06-03  Raja R Harinath  <rharinath@novell.com>
7169
7170         * object.c (mono_method_return_message_restore): Fix computation
7171         of expected number of out args.
7172
7173 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7174
7175         * reflection.c (mono_image_get_method_info): Fix the case when the
7176         charset is empty.
7177
7178 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
7179
7180         * object.c: Added missing null check in
7181           mono_method_return_message_restore.
7182
7183 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7184
7185         * reflection.c (mono_image_get_method_info): Handle the case when
7186         dllentry is empty.
7187
7188 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
7189
7190         * object.c: When creating the vtable for a proxy, take into account
7191         all inherited interfaces, not only the ones registered in
7192         iclass->interfaces. This fixs bug #74996.
7193         Also, in mono_method_return_message_restore, verify that the array
7194         of out args has the expected lengh.
7195
7196 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7197
7198         * socket-io.c: update the timeout in Poll when the call is interrupte.
7199
7200 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7201
7202         * socket-io.c: support abort/suspend in Select_internal after last
7203         change.
7204
7205 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7206
7207         * threadpool.c: remove warning.
7208
7209 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7210
7211         * icall.c:
7212         * socket-io.[ch]: Select_internal uses poll() now when available, thus
7213         removing the 1024 limit from select(). Runtime part of the fix for
7214         bug #71203.
7215
7216 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7217
7218         * socket-io.c: when resolving the addresses for the same
7219         host returned by gethostname(), get the local IPs from the interface
7220         list. Loopback addresses are discarded if the are interfaces up with
7221         non-loopback ones. Fixes bug #63265.
7222
7223 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7224
7225         * appdomain.c, verify.c, object-internals.h, reflection.c:
7226         bumped corlib number to 36, and added new extra_flags field
7227         to ReflectionMethodBuilder and friends.  Fixes #75060.
7228
7229 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7230
7231         * gc.c: register a new weak link only if the object is non-null
7232         (fixes bug#75047).
7233
7234 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7235
7236         * culture-info.h : short time pattern too.
7237
7238 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7239
7240         * culture-info.h : expand long time pattern string length.
7241
7242 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7243
7244         * culture-info-table.h : update (more French date format; #72788).
7245
7246 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7247
7248         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7249         the method is static. Fixes #75029.
7250
7251 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7252
7253         * reflection.c: Update the table_idx field of method builders after
7254         saving the module, since it can change. This is a workaround for
7255         bug #74914. 
7256
7257 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7258
7259         * culture-info-table.h : update (additional French date format).
7260
7261 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7262
7263         * icall.c (ves_icall_type_Equals): Revert last change.
7264         
7265         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7266
7267         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7268
7269 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7270
7271         * class-internals.h: Added executioncontext_class field to 
7272         MonoDefaults structure.
7273         * domain.c: Cache System.Threading.ExecutionContext class in 
7274         mono_defaults.
7275         * object.c: Capture the ExecutionContext for asynchroneous calls in
7276          mono_async_result_new.
7277         * object-internals.h: Added execution_context and original_context 
7278         fields to MonoAsyncResult. Added execution_context to MonoThread.
7279         * security-manager.c|.h: Added mono_get_context_capture_method to 
7280         return the capture method (if required by the security manager or by
7281         the framework version used).
7282         * threadpool.c: Apply capture (if present) ExecutionContext in 
7283         mono_async_invoke and revert to original context after it completes.
7284
7285 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7286
7287         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7288
7289 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7290
7291         * culture-info-table.h : zh-CHT related workaround.
7292
7293 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7294
7295         * marshal.c (emit_marshal_custom): Add some error checking and call the
7296         methods in the ICustomMarshaler interface. Fixes #74875.
7297         
7298         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7299         native->managed wrappers.
7300
7301 2005-05-12  Martin Baulig  <martin@ximian.com>
7302
7303         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7304         here and use the loader lock.
7305
7306         * mono-debug.c: Properly lock when the debugger is not attached.
7307         (mono_debug_init): Release the initial lock if we're not running
7308         in the debugger.
7309
7310 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7311
7312         * marshal.c (emit_marshal_custom): Pass through NULL values without
7313         calling the custom marshalling routines.
7314
7315         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7316         conversion in structures. Fixes #74882.
7317
7318 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7319
7320         * culture-info-table.h : zh-* cultures were missing.
7321
7322 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7323
7324         * threads.c: Added a new event background_change_event which is signaled
7325         when a thread changes its background mode.
7326         Moved here several checks previously done in managed code. The checks
7327         require the thread lock, and using the thread lock in managed code
7328         can result in deadlocks.
7329         Merged Start_internal and Thread_internal into a single method. Now 
7330         Thread_internal does all work of creating and starting a thread.
7331         Added icalls for setting and getting the state of the object. Moved from
7332         managed code to avoid locking there.
7333         Added wait_for_tids_or_state_change() which is called instad of
7334         wait_for_tids when waiting for non-backround threads to end. This method
7335         will return if one of the threads ends or the background_change_event
7336         is signaled.
7337         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7338         the background mode. This method signals the background_change_event
7339         event.
7340         * icall.c:
7341         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7342         removed Start_internal.
7343         
7344 2005-05-11  Martin Baulig  <martin@ximian.com>
7345
7346         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7347         to order of some fields to get proper alignment on 64-bit machines.
7348
7349 2005-05-11  Martin Baulig  <martin@ximian.com>
7350
7351         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
7352         changes as they're broken and completely fuck up the debugger.
7353
7354         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
7355
7356 2005-05-10  Martin Baulig  <martin@ximian.com>
7357
7358         * reflection.c (mono_reflection_generic_class_initialize): Don't
7359         call mono_class_setup_parent() here.
7360
7361 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7362
7363         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7364         send/receive timeout use an integer in milliseconds. We were using a
7365         struct timeval.
7366
7367 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7368
7369         * locales.c:
7370         (internal_get_cultures): reserve the first slot of the array for the
7371         InvariantCulture, which will be filled in managed code.
7372
7373 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7374
7375         * reflection.c (mono_image_fill_module_table): Initialize the
7376         GENERATION field as well.
7377
7378 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7379
7380         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7381         Monitor.Enter on the object.
7382
7383 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7384
7385         * threads.c: Enable the wait for running threads when exiting.
7386         * icall.c: Suspend all threads before exiting.
7387
7388 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7389
7390         * assembly.c (mono_assembly_load_reference): Fix warning.
7391
7392 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7393
7394         * threadpool.c: changed the default number of threads per cpu. From now
7395         on, the default will be 20 + (5 * number of cpus) instead of 50.
7396
7397 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7398
7399         * loader.c (mono_method_get_signature_full): Add locking here.
7400
7401 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7402
7403         * appdomain.c: Moved methods for parsing and freeing assembly
7404         names to assembly.c.
7405         * assembly.c, domain-internals.h: Created public methods for parsing
7406         assembly names. Fixed mono_assembly_load_with_partial_name:
7407         it now finds the best match, taking into account the version,
7408         token and culture specified in the partial name. Also return
7409         the latest version if no version information is specified.
7410
7411 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7412
7413         * threadpool.c: replace check for SocketAsyncCall class.
7414
7415 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7416
7417         * threadpool-internals.h:
7418         * Makefile.am: added threadpool-internals.h
7419
7420         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7421         that happen in threadpool threads (tested on MS).
7422         (mono_thread_pool_remove_socket): new function that dispatch any pending
7423         AIO call on a socket that is closing. By now only epoll really needs it,
7424         as select/poll wake up when the socket closes.
7425
7426
7427         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7428
7429 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7430
7431         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7432
7433 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7434
7435         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7436
7437 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7438
7439         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7440         has an abort request, convert it into a suspend request.
7441
7442 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7443
7444         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7445         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7446         is not supported yet.
7447
7448 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7449
7450         * image.c: register assemblies loaded from data (bundles) in the loaded
7451         assemblies hash. Fixes bug #74772.
7452
7453 2005-04-29  Martin Baulig  <martin@ximian.com>
7454
7455         * class.c (mono_type_get_name_recurse): Update to the new naming
7456         schema from the latest .NET 2.x beta2.
7457         (mono_class_setup_vtable_general): If we're a generic instance,
7458         copy the vtable from our generic type definition and inflate all
7459         the methods in it.
7460
7461         * loader.c (find_method): Update to the new naming schema from the
7462         latest .NET 2.x beta2.
7463
7464 2005-04-29  Raja R Harinath  <harinath@gmail.com>
7465
7466         * class.c (mono_class_init): Add a mono_loader_unlock to the
7467         #74734 fix.
7468
7469 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
7470
7471         * icall.c (ves_icall_System_Environment_Exit): Remove the 
7472         suspend_all_other_threads () call for the time being, since it can hang.
7473
7474         * threads.c (mono_thread_manage): Similarly, disable the waiting for
7475         the background threads to exit, since it can also hang.
7476
7477         * class.c (mono_class_init): Applied patch from Ankit Jain 
7478         (radical@gmail.com). Avoid pending init errors when a field refers
7479         to a nested class using a typeref. Fixes #74734.
7480
7481         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
7482         this for dynamic modules.
7483
7484 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7485
7486         * threads.c: don't wait for threads that are in the process of aborting
7487         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
7488         and waiting for background threads to finish. This makes xsp and
7489         mod-mono-server exit without random length delays and/or hangs.
7490
7491 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7492
7493         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
7494
7495 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
7496
7497         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
7498         dynamic types to prevent infinite loops. Fixes #74727.
7499
7500         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
7501         ..._is_assignable_to.
7502
7503 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
7504
7505         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
7506
7507 2005-04-25  Martin Baulig  <martin@ximian.com>
7508
7509         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
7510
7511         * domain.c
7512         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
7513
7514         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
7515
7516         * reflection.c (build_compressed_metadata): Set metadata header
7517         version to 2.0.
7518
7519 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
7520
7521         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
7522         number into an integral and a decimal part. Fixes #70473.
7523
7524         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
7525
7526 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
7527
7528         * culture-info-table.h : reflected the latest locale-builder output.
7529
7530 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7531
7532         * threadpool.c: check for SuspendRequested too when deciding if
7533         mono_thread_interruption_checkpoint should be called.
7534
7535 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7536
7537         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
7538         * threads.c: remove interruption_mutex and use Interlocked instead. When
7539         suspending all the threads, wait for all the suspended events at once.
7540         If we're shutting down and get an APC that is going to be queued,
7541         call mono_thread_execute_interruption immediately, as the thread might
7542         be sleeping on a pthread condition or mutex.
7543
7544         * icall.c: call mono_runtime_set_shutting_down before suspending the
7545         threads.
7546
7547         Fixes bug #74693. And now xsp is happier when exiting.
7548
7549 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
7550
7551         * loader.c (mono_stack_walk): Fix #74690.
7552
7553 2005-04-22  Martin Baulig  <martin@ximian.com>
7554
7555         * mono-debug.h (MonoDebugMethodJitInfo): Added
7556         `MonoDebugMethodJitInfo *jit'.
7557
7558         * mono-debug.c (mono_debug_read_method): Cache the
7559         MonoDebugMethodJitInfo in `address->jit'.
7560         (mono_debug_free_method_jit_info): New public method.
7561
7562 2005-04-22  Martin Baulig  <martin@ximian.com>
7563
7564         * class.c (mono_class_is_assignable_from): Disallow
7565         type parameter -> interface.
7566
7567 2005-04-21  Dick Porter  <dick@ximian.com>
7568
7569         * threads.c (mono_thread_create): Turn an assertion into an error.
7570
7571 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
7572
7573         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
7574         
7575         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
7576         Fix some gcc 4.0 warnings.
7577
7578 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
7579
7580         * file-io.c: fix alt dir separator char on unix systems
7581         and cleanup (fixes bug #71214).
7582
7583 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
7584
7585         * marshal.c: Use CALLVIRT instead of CALL when dispatching
7586         a call to a remote domain, since the method may be an
7587         interface method in the client domain. This fixes bug #74192.
7588
7589 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7590
7591         * threadpool.c: recv/send are now performed before going back to managed
7592         code to save one transition.
7593
7594 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7595
7596         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
7597
7598         * metadata/threadpool.c: removed hack to workaround the bug above.
7599
7600         Fixes bug #74618.
7601
7602 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
7603
7604         * reflection.c reflection.h: Fix handling of parameter defaults in
7605         dynamic methods. Also fixes handling of parameter attributes.
7606         Fixes #74609.
7607
7608         * mono-debug.c (mono_debug_close_image): Fix warning.
7609
7610 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7611
7612         * socket-io.h: replaced old unused field with new 'blocking'.
7613         * threadpool.c: restore socket blocking state on windows(tm).
7614
7615 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
7616
7617         * icall.c: don't return the codebase in the AssemblyName[] returned by
7618         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
7619         * object-internals.h: Removed FIXME (fields were presents) and fixed
7620         versioncompat declaration.
7621
7622 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7623
7624         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
7625         not closed, so don't cleanup when it happens.
7626
7627 2005-04-13  Chris Toshok  <toshok@ximian.com>
7628
7629         * mono-debug-debugger.h: change prototype for
7630         mono_debugger_lookup_type.
7631
7632         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
7633         this function, although it should probably be named
7634         mono_debugger_init_type.
7635
7636 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7637
7638         * threadpool.c: fix non-AIO case.
7639
7640 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
7641
7642         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
7643         the built-in profiler to measure just JIT compilation times.
7644
7645 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7646
7647         * threadpool.c: the epollfd might be closed by another thread at
7648         any time, so ignore EBADF at treat it as a "we're closing" sign.
7649
7650 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7651
7652         * threadpool.c: release the semaphores with a count equals to the number
7653         of working threads in both IO and regular pools. Fixed typo that messed
7654         up the count of IO pool threads. Don't initialize the pipe handles if
7655         we're using epoll.
7656
7657 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7658
7659         * threadpool.c: some systems don't like a NULL when deleting the socket
7660         from epoll.
7661
7662 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7663
7664         * threadpool.c: fix semaphore allocation.
7665
7666 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7667
7668         * threadpool.c: added epoll() based implementation for asynchronous IO
7669         that is used instead of the default poll() when available.
7670         It can be disabled by setting MONO_DISABLE_AIO.
7671
7672 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7673
7674         * threadpool.c: windows needs 'closesocket' and instead of returning
7675         0 when the stream is closed while in select, it returns -1. Fixes bug
7676         #74573.
7677
7678 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
7679
7680         * class.c (class_compute_field_layout): Fix the regression caused by
7681         the previous try.
7682
7683 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7684
7685         * threadpool.c: separate pool for socket async. IO.
7686         * threadpool.h: mono_max_worker_threads is not a global any more.
7687
7688 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
7689
7690         * class.c (class_compute_field_layout): Fix #74549.
7691
7692 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7693
7694         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
7695         use 2 connected sockets instead.
7696
7697 2005-04-08  Miguel de Icaza  <miguel@novell.com>
7698
7699         * mono-config.c: Add new entry point for mkbundle
7700         mono_config_parse_memory. 
7701
7702 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7703
7704         * threadpool.c: removed another unused function.
7705
7706 2005-04-08  Ankit Jain  <radical@corewars.org>
7707
7708         * reflection.c (get_default_param_value_blobs): Add 'types'
7709         parameter to get the types encoded in the constant table.
7710         (mono_param_get_objects): Use the type from the constant table,
7711         not the type of the parameter, when creating default values.
7712         Handle null default values correctly.
7713
7714 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7715
7716         * file-io.c:
7717         * file-io.h:
7718         * threadpool.c:
7719         * threadpool.h:
7720         * icall.c:
7721         * socket-io.c: removed dead code for async IO.
7722
7723 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7724
7725         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
7726
7727         * threadpool.c: intercept socket async. calls and pass them to a thread
7728         that is polling and dispatching the job items to the threadpool as
7729         socket become ready. Fixes bugs #71217, #71933.
7730
7731         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
7732         between char and short/ushort arrays.
7733
7734         * socket-io.c: remove dead code.
7735
7736 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7737
7738         * locales.c,
7739           icall.c : removed InternalToUpper_Comp() and
7740           InternalToLower_Comp().
7741
7742 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7743
7744         * char-conversions.h : The tables were incorrectly generated. Should
7745           be generated against invariant culture.
7746
7747 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
7748
7749         * object.c (mono_runtime_invoke_array): Fix return value when 
7750         passing pre-created valuetype objects to ctors.
7751
7752         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
7753         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
7754         Fixes #74338.
7755
7756 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
7757
7758         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
7759         only used with --security and hides the wrong corlib version error.
7760
7761 2005-03-30  Joshua Tauberer  <tauberer@for.net>
7762
7763         * class.c: Changed mono_class_name_from_token so that types
7764         outside of a namespace don't have an initial period.  Improved
7765         the g_warning message used in _mono_class_get when loading
7766         fails.
7767         * assembly.c: In mono_assembly_load_reference, when an assembly
7768         can't be found, "No such file or directory" is misleading and
7769         unhelpful because a few paths were checked for the presence of
7770         the assembly.  When that happens (ENOENT), display a nicer
7771         message indicating the directories that were searched.  In all
7772         cases, the warning is made easier to read for non-hackers.
7773
7774 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
7775
7776         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
7777         project/solution.
7778         * appdomain.h|domain.c: Removed inline from functions.
7779         * appdomain.c: Reduced warnings when compiling on windows.
7780         * icall.c: Fixed output_debug declaration to gunichar2*.
7781         * mono-config.c: Reduced warnings when compiling on windows.
7782         * rand.c: Added missing "windows.h". Added missing return value.
7783         * rawbuffer.c: Added missing winsock2.h for windows.
7784         * sysmath.h: Added mono-compiler.h header to allow/ease 
7785         compilation with non-GCC compilers.
7786         * threads.c: Fixed declarations to compile with VS.NET C compiler.
7787         Removed cast warnings.
7788
7789         Adapted from the work of J Lothian (for VC6).
7790
7791 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
7792
7793         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
7794         from default_path.
7795
7796 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
7797
7798         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
7799         the 2.0 profile.
7800
7801 2005-03-27  Raja R Harinath  <harinath@gmail.com>
7802
7803         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
7804         has to be in $(exec_prefix).  $(prefix) is for arch-independent
7805         stuff, and it would probably use $(prefix)/share rather than
7806         $(prefix)/lib.
7807
7808 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7809
7810         * console-io.c: added 2 includes that might be missing.
7811
7812 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
7813
7814         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
7815         profile.
7816
7817         * reflection.c (create_custom_attr): Allocate the params array using
7818         alloca so it gets GC tracking.
7819
7820 2005-03-23  Chris Toshok  <toshok@ximian.com>
7821
7822         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
7823         out some spew.
7824
7825 2005-03-24  Raja R Harinath  <rharinath@novell.com>
7826
7827         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
7828         changes to pick up any changes in prefix, etc.
7829
7830 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7831
7832         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
7833         
7834         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
7835         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
7836
7837 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7838
7839         * class-internals.h object-internals.h class.c reflection.c: Extend the
7840         mono_lookup_dynamic_token () function to return the class of the
7841         token as well. 
7842
7843         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
7844         well. Fixes #73848.
7845
7846 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
7847
7848         * security-manager.c: Skip inheritance checks for intra-corlib
7849         class inheritance and method overrides. This skips a lot of checks
7850         and (anyway) permissions cannot work until corlib is loaded.
7851
7852 2005-03-23  Martin Baulig  <martin@ximian.com>
7853
7854         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
7855         MONO_TYPE_GENERICINST.  
7856
7857 2005-03-23  Martin Baulig  <martin@ximian.com>
7858
7859         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
7860
7861 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7862
7863         * class.c: added locking comments to some functions.
7864         Cache the interface offsets arrays (saves about 20 KB
7865         of runtime memory in a typical app).
7866         Reduce the time overhead in mono_class_setup_supertypes ().
7867
7868 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
7869
7870         * icall.c: speedup and fix leaks in GetMethodsByName and
7871         GetPropertiesByName.
7872
7873 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7874
7875         * reflection.c: some locking fixes.
7876
7877 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7878
7879         * metadata.c: added missing break in case statement.
7880
7881 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
7882
7883         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
7884         typedbyref return values. Fixes #73941.
7885
7886 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
7887
7888         * security-manager.c|h: Added demandunmanaged method and 
7889         suppressunmanagedcodesecurity class to MonoSecurityManager.
7890         Renamed aptc class to allowpartiallytrustedcallers.
7891
7892 2005-03-17  Martin Baulig  <martin@ximian.com>
7893
7894         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
7895
7896 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7897
7898         * file-io.c: disabled file async. IO using aio_*. It uses the
7899         threadpool now. Workaround for bug #73718.
7900
7901 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7902
7903         * assembly.h, mono-config.c: added code to deal with bundled configs
7904         for bundled assemblies.
7905
7906 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
7907
7908         * *.c, private.h: cleanup, removing old private.h header file.
7909
7910 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
7911
7912         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
7913         and throw_on_unmappable_char attributes.
7914
7915 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
7916
7917         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
7918         _ProcessName_internal.
7919
7920 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
7921
7922         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
7923         #73631.
7924
7925         * icall.c threads.c threads-types.h: Remove slothash icalls as they
7926         are no longer used.
7927
7928 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
7929
7930         * object.c (compute_class_bitmap): Add support for generics. Fixes
7931         #73527.
7932
7933 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
7934
7935         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
7936
7937 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7938
7939         * filewatcher.c: commented out the code for windows watcher, as we don't
7940         use it (we use the managed implementation instead).
7941
7942 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
7943
7944         * object-internals.h (MonoThread): Remove 'unused1' field.
7945
7946         * appdomain.c: Bump corlib version.
7947
7948         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
7949
7950         * reflection.c (mono_reflection_create_runtime_class): Remove the
7951         AssemblyBuilder.Save optimization since it causes too many problems.
7952
7953 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
7954
7955         * exception.c|h: Added mono_get_exception_reflection_type_load to
7956         create a ReflectionTypeLoadException object.
7957         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
7958         to return NULL is a InheritanceDemand fails during reflection. Updated
7959         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
7960         ReflectionTypeLoadException if an InheritanceDemand fails during 
7961         reflection. Added icall mapping for GetLinkDemandSecurity.
7962         * security-manager.c|h: Added ves_icall_System_Security_
7963         SecurityManager_GetLinkDemandSecurity internal call to return the
7964         class and methods permissions set for a LinkDemand. Removed unused
7965         fields in MonoSecurityManager.
7966
7967 2005-03-10  Martin Baulig  <martin@ximian.com>
7968
7969         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
7970         it's a generic instance.
7971
7972 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
7973
7974         * reflection.c (mono_get_object_from_blob): Applied patch from
7975         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
7976
7977         * class.c (mono_class_is_assignable_from): Another try at fixing 
7978         #73469 without breaking anything.
7979
7980 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
7981
7982         * class.c: (mono_class_is_assignable_from): Revert the last changes
7983         since they don't work with generics.
7984         
7985         * class.c (mono_class_is_assignable_from): Fix build bustage.
7986
7987         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
7988         the managed IsAssignableFrom method. Fixes #73469.
7989
7990         * reflection.c (mono_reflection_call_is_assignable_from): New helper
7991         function.
7992
7993 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
7994
7995         * object.c (mono_load_remote_field_new): Fix returning uninitialized
7996         memory when the remoting callback does not sets the out arguments.
7997         Fixes #73007.
7998
7999         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
8000         by mistake.
8001
8002         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
8003
8004         * object-internals.h (MonoStackFrame): Sync with managed object layout.
8005
8006         * appdomain.c: Bump corlib version.
8007
8008 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
8009
8010         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
8011         function.
8012
8013         * threads.c (mono_thread_attach): Detect threads which are not started
8014         by the GC pthread wrappers.
8015
8016 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
8017
8018         * icall.c: Added new icall for RNG.
8019         * rand.c|h: Added new icall to open the RNG. This allows to share a 
8020         single handle on Linux to access /dev/urandom and fix #73183.
8021
8022 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
8023
8024         * object.c: setting the new vtable in a transparent proxy object must
8025         not change the GC descriptor.
8026
8027 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8028
8029         * object.c: fixed compilation without GCJ support.
8030         * reflection.c: for runtime-created types ensure klass->has_references
8031         is correct (bug #73215).
8032
8033 2005-03-02  Martin Baulig  <martin@ximian.com>
8034
8035         * class.c (mono_class_is_assignable_from): Make this work if
8036         `oklass' is a generic instance; fixes #72831.
8037
8038 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8039
8040         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
8041         with hasthis set.
8042         
8043         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
8044
8045         * marshal.c: Reorganize native->managed marshalling code to also use
8046         the emit_marshal_... functions.
8047
8048 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8049
8050         * object.c: typed allocs have issues with bitmap sizes > 30,
8051         so check for max_set >= 30.
8052
8053 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8054
8055         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
8056         managed code. Fixes #73012.
8057
8058         * metadata.h (MonoMarshalSpec): Add elem_mult field.
8059
8060         * metadata.c reflection.c: Load/Emit elem_mult as well.
8061         
8062         * metadata.h (MonoMarshalSpec): Add comment.
8063
8064         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
8065
8066         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
8067         num_elem to -1 if not given.
8068
8069         * object-internals.h (MonoReflectionMarshal): Add has_size field.
8070
8071         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
8072         given values.
8073
8074 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
8075
8076         * null-gc.c (mono_gc_free_fixed): Was not compilable.
8077
8078 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
8079
8080         * reflection.c (encode_marshal_blob): Encode param_num field as well.
8081
8082         * object-internals.h (MonoReflectionMarshal): Add param_num field.
8083
8084 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8085
8086         * object.c: generalized the reference bitmap creation
8087         and added hooks for the new GC.
8088         * class-internals.c: removed the gc_bitmap field from MonoClass.
8089
8090 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8091
8092         * domain.c: help the compiler to produce better code
8093         in mono_jit_info_table_find ().
8094
8095 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8096
8097         * object.c: make all allocations look typed.
8098
8099 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8100
8101         * socket-io.c: load Mono.Posix if it's not loaded already
8102         (fixes bug#73033).
8103
8104 2005-02-24  Martin Baulig  <martin@ximian.com>
8105
8106         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
8107         * reflection.c (dup_type): Likewise.
8108
8109 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
8110
8111         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
8112         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
8113
8114 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8115
8116         * domain.c, threads.c, object-internals.h: make the critical thread
8117         local vars use the fast access mode (even when we're compiled in
8118         a lib). Provide accessors to be used by the jit during codegen.
8119
8120 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8121
8122         * appdomain.c: Changed hook functios behavior to include
8123         support for the reflection only assemblies. Some icalls were changed
8124         to support the mentioned assemblies too. Signatures of static methods
8125         try_assembly_resolve and real_load now have an additional parameter:
8126         refonly.
8127
8128         * assembly.c: General changes to mono_assembly_ methods to support
8129         reflection only api. Functions mono_assembly_open, mono_assembly_load,
8130         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
8131         suffix, to support an additional gbool parameter to specify whether
8132         the assembli is reflection only or not. Created some new hook functions 
8133         to add support for reflection only assemblies. Signatures of static 
8134         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
8135         have now an additional parameter: refonly.
8136
8137         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
8138         indicating whether the assembly is reflection only or not.
8139
8140         * exception.c: Add mono_get_exception_invalid_operation.
8141
8142         * icall.c: Throw an InvalidOperationException when trying to invoke
8143         a property/method/event, or trying to set/get the value of a field.
8144         Also add an icall to retrieve the ref_only flag to the
8145         MonoReflectionAssembly.
8146
8147 2005-02-23  Chris Toshok  <toshok@ximian.com>
8148
8149         Part of fix for #72827.
8150         * mono-debug.c (mono_debug_add_method): add lexical block data to
8151         the info we write.  Kind of a hack at the moment - we copy the
8152         lexical block info from the MonoDebugMethodInfo to the
8153         MonoDebugMethodJitInfo here, before writing it.
8154         (mono_debug_read_method): read the lexical block info.
8155
8156         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
8157
8158         * debug-mono-symfile.h: add lexical block support.
8159
8160         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
8161         support.
8162
8163 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8164
8165         * loader.c (mono_lookup_pinvoke_call): Fix warning.
8166
8167         * object.c (mono_runtime_free_method): Call mono_free_method () and
8168         put the TODOs there.
8169
8170         * loader.c (mono_free_method): Free up most memory allocated for 
8171         dynamic methods.
8172
8173 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8174
8175         * reflection.c: properly flag a Type argument to a
8176         named custom attr value (bug #72248).
8177
8178 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8179
8180         * reflection.c: reduce code duplication in named custom
8181         attribute encoding.
8182
8183 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
8184
8185         * reflection.c: properly encode custom attrs of type object
8186         (bug #72649).
8187
8188 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8189
8190         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
8191
8192 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
8193
8194         * socket-io.c: load System.dll if it's not loaded already
8195         (bug #72850 and #70477).
8196
8197 2005-02-21  Martin Baulig  <martin@ximian.com>
8198
8199         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8200         generic instances.
8201
8202 2005-02-21  Martin Baulig  <martin@ximian.com>
8203
8204         * reflection.c (mono_image_build_metadata): We also need to
8205         "fixup" the MethodImpl table after we computed the final method
8206         indices.  Call fixup_methodimpl() to do that.
8207         (fixup_methodimpl): New private method.
8208
8209 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8210
8211         * assembly.c: special case mscorlib.dll (bug#72536),
8212         patch from Carlos Alberto Cortez.
8213
8214 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
8215
8216         * threads-types.h threads.c: Fix build bustage.
8217
8218         * threads.c: Use a union for long<->double conversions.
8219
8220         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8221         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8222
8223         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8224         containing the checkpoint call with NOT_TAKEN.
8225         
8226         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8227         checkpoint before pushing the arguments, so they won't have to be
8228         spilled to stack.
8229
8230 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8231
8232         * domain.c, assembly.c, domain-internals.h: make some data
8233         const and relocation-free.
8234
8235 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8236
8237         * object.c, appdomain.c, class-internals.h: introduce the
8238         MonoClassRuntimeInfo structure to hold the info needed to
8239         use a class at runtime. Made mono_class_vtable() lock-free
8240         for all the appdomains.
8241
8242 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8243
8244         * metadata-internals.h, image.c: introduce a per-image mempool to
8245         be used for memory that has the same lifetime as the image.
8246
8247 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8248
8249         * domain.c: In mono_init_internal(), instead of selecting the first
8250         runtime version supported by an executable, get a list of all
8251         supported versions and select the one for which an mscorlib exists
8252         (since even if the runtime supports a given version, it doesn't mean
8253         that the framework for that version is installed).
8254         Modified get_runtimes_from_exe to support this behavior.
8255         In supported_runtimes, added information about additional system
8256         assembly versions.
8257         
8258         * assembly.c: Added support for more than one system assembly version
8259         per runtime version. Updated the assembly list.
8260         In mono_assembly_remap_version, removed the initial version check,
8261         since we don't know to which version we need to compare until we
8262         get the version set on which the assembly is based.
8263         Moved the code for loading corlib into the new method
8264         mono_assembly_load_corlib(), so it can be used by the initialization
8265         code.
8266         
8267         * domain-internals.h: Updated data structures and added declaration
8268         for mono_assembly_load_corlib.
8269
8270 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8271
8272         * reflection.c (resolve_object): Fix the creation of the signature in 
8273         the SignatureHelper case.
8274
8275         * assembly.c (mono_assembly_remap_version): Fix binary search.
8276         
8277 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8278  
8279         * class.c: Added inheritance check when a method is overloaded (from a
8280         virtual method or when implementing an interface) and when a class is
8281         inherited. Added functions to set a failure for a class and to 
8282         retreive the exception from a failure.
8283         * class-internals.h: Added fields to MonoClass to keep the exception
8284         information status for inheritance (or other exceptions) to be thrown
8285         later (i.e. not at load time).
8286         * object.c: Throw the inheritance SecurityException when a type is to 
8287         be created with either class or method inheritance violations.
8288         * reflection.c|h: Fix when getting declsec from a class. Removed 
8289         unrequired code for class. Improved sanity in parameter naming.
8290         * security-manager.c|h: Added functions to check for class and method
8291         inheritance.
8292
8293 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8294
8295         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8296         and has_finalize in dynamic types as well.
8297
8298 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8299
8300         * culture-info-table.h : fixed currency format for en-GB (and so on).
8301
8302 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8303
8304         * gc.c: ensure the GC handles never have 0 as a value.
8305
8306 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8307
8308         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8309         a pointer to a struct to unmanaged code. Fixes #72625.
8310
8311 2005-02-16  Martin Baulig  <martin@ximian.com>
8312
8313         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8314
8315 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8316
8317         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8318
8319 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8320
8321         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8322
8323         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8324         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8325         etc. Fixes #71471.
8326
8327         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8328
8329         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8330
8331 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8332
8333         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8334         changes to make the current context a field in MonoThread.
8335
8336 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8337
8338         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8339         the last change.
8340         
8341         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8342         extracted from mono_marshal_get_native_wrapper.
8343
8344         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8345         to create wrappers around native functions.
8346
8347         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8348         delegates for arbitrary function pointers. Fixes #71472.
8349
8350 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8351
8352         * threads.c: cleaned up the code a little.
8353
8354 2005-02-15  Martin Baulig  <martin@ximian.com>
8355
8356         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
8357         the data table.
8358
8359         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
8360         allocate larger chunks if needed.
8361
8362 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8363
8364         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8365         in by mistake.
8366
8367 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8368
8369         * domain.c: keep the domains in an array and ensure the domain ids
8370         are kept small, so they can be used as indexes to domain-specific data
8371         with a small memory overhead.
8372
8373 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8374
8375         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8376
8377 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8378
8379         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8380
8381 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8382
8383         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8384
8385         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8386         values.
8387
8388         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8389         
8390 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8391
8392         * domain-internals.h: add the hashtable here.
8393
8394         * class-internals.h: Remove `info' from MonoMethod
8395
8396         * domain.c: Add a new hashtable, jit_trampoline_hash
8397
8398 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8399
8400         * object.c: don't set the value of static fields
8401         (fixes bug#72494).
8402
8403 2005-02-11  Martin Baulig  <martin@ximian.com>
8404
8405         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8406         (mono_debug_add_method): Silently ignore the method if it's too big.
8407         (mono_debug_add_type): Likewise.
8408
8409 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8410
8411         * threads.c, appdomain.c: remove #ifdefs from the code.
8412
8413 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8414
8415         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8416         common security informations. This allows us to stay in unmanaged code
8417         when doing LinkDemand and it's special cases (except for the first 
8418         time for initialization). The flags a very much used with --security.
8419         * reflection.c|h: Added code to get declarative security attributes 
8420         for LinkDemand and InheritanceDemand. This required to refactor the
8421         existing code for Demand.
8422         * security-manager.c|h: Added new method fields for the special cases
8423         of LinkDemand.
8424
8425 2005-02-10  Martin Baulig  <martin@ximian.com>
8426
8427         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8428         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8429
8430 2005-02-10  Martin Baulig  <martin@ximian.com>
8431
8432         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8433         debugging code; this is almost a complete rewrite.
8434
8435         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8436
8437 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8438
8439         * domain.c, object.h: expose mono_string_equal () and 
8440         mono_string_hash ().
8441         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8442         it's implemented in managed code.
8443
8444 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8445
8446         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8447         lo leak objects between appdomains.
8448
8449 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8450
8451         * assembly.c: old compilers compilation fix from 
8452         robertj@gmx.net (Robert Jordan).
8453
8454 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8455
8456         * class-internals.h: Little reminder for the future.
8457
8458         * debug-helpers.c: Fix up wrapper_type_names
8459
8460 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8461
8462         * image.c, metadata-internals.h: when loading an image from a file,
8463         mmap all of it and use the same codepaths as when using a
8464         in-memory image: the code is simpler and we use less memory
8465         (both writable and readonly).
8466
8467 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8468
8469         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
8470         API to alloc runtime data structures that need to be tracked by the
8471         GC and contain pointers.
8472         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
8473         make the code more readable and eventually use a different GC.
8474
8475 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
8476
8477         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
8478         for out arguments.
8479         
8480 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
8481
8482         * object.c: In release_type_locks(), don't release the cctor lock
8483         if it has already been released. This fixes a crash in the
8484         thread5 test.
8485
8486 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8487
8488         * gc.c, marshal.c, icall.c: register a delegate for finalization
8489         only when the native function pointer has been allocated for it.
8490
8491 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8492
8493         * object.c: cleaned up some code, allocate objects that are
8494         pointer free with the atomic malloc variant. Allocate memory
8495         for static data from the mempool if it's pointer-free.
8496         Allocate the bounds array at the end of the array data, when needed.
8497         * object-internals.h, object.h: move a private function in a private
8498         header.
8499         * class.c: handle missing case in tracking references in fields.
8500
8501 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8502
8503         * class.c, class-internals.h: keep track if a type has
8504         reference fields in either the instance or static fields.
8505
8506 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
8507
8508         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
8509         and renamed to MonoRuntimeInfo. Added fields to store the expected
8510         framework assembly version. Changed mono_get_framework_version and
8511         mono_get_runtime_version for a single mono_get_runtime_info method.
8512         
8513         * assembly.c: Added method to remap system assembly versions to the
8514         current executing runtime version. Removed old mapping code.
8515         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
8516         
8517         * icall.c, reflection.c: Track api changes.
8518
8519 2005-02-06  Miguel de Icaza  <miguel@novell.com>
8520
8521         * loader.c (method_from_memberref): Improve error reporting,
8522         produce the class name instead of the typeref/typedef index. 
8523
8524 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
8525
8526         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
8527
8528 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8529
8530         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
8531         stdcall and charset name mangling.  Reorganize the code and add
8532         some tracing stuff.
8533
8534 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8535
8536         * monodiet.c: More iters!
8537
8538         * marshal.c: Iter usage.
8539
8540         * icall.c: Iter usage.
8541
8542         * object.c: Use iters.
8543
8544         * debug-helpers.c: More iters
8545
8546 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8547
8548         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
8549         under win32.
8550
8551 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8552
8553         * mono-debug-debugger.c: use iters
8554
8555         * class.c, class-internals.h: mono_class_setup_events is static
8556         now
8557
8558         * All callers: use iters
8559
8560 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8561
8562         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
8563         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
8564
8565 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8566
8567         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
8568
8569         * marshal.h: Add prototypes for ldfld/stfld_remote.
8570
8571         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
8572         this is called during startup.
8573         
8574 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
8575
8576         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
8577         MonoThreadsSync struct private in monitor.c. Changed the way
8578         MonoThreadsSync is allocated so it's faster and there is no
8579         need to keep track of it with a finalizer and it uses less memory.
8580         This also finally allows us to allocate mono objects as ptrfree when
8581         there are no reference fields.
8582
8583 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
8584
8585         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
8586         disappearing link to the GC interface and use them to simplify
8587         the gchandles code.
8588
8589 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8590
8591         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
8592         stfld_remote which call mono_load/store_field_new. This allows methods
8593         calling ldfld/stfld wrappers to be AOTed.
8594
8595         * console-io.c: Include sys/filio.h under solaris.
8596         
8597         * console-io.c: Include curses.h if needed correctly.
8598
8599 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8600         
8601         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
8602         method->klass as well.
8603
8604         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
8605
8606         * class.c (mono_class_init): Switch on lazy initialization of 
8607         methods.
8608
8609         * class.c (mono_class_get_finalizer): Handle the case when the 
8610         finalizer is inherited.
8611
8612 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8613
8614         * console-io.c: <curses.h> is needed by term.h on solaris.
8615
8616 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
8617
8618         * icall.c, class-internals.h, monodiet.c, class.c: Remove
8619         mono_class_setup_properties where possible. Remove this ftn from
8620         the header file, and make it static.
8621
8622 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8623
8624         * loader.c: Add missing setup_... call.
8625
8626         * class.c: Add missing setup_... calls.
8627
8628         * class.c (mono_class_init): Switch on lazy initialization of 
8629         the generic vtable.
8630         
8631         * class.c (mono_class_init): Fix generics broken by the recent changes.
8632
8633         * monodiet.c (handle_type): Add missing setup_... calls.
8634
8635         * class.c: Back out garbage in previous patch.
8636         
8637         * class.c: Add missing setup_... calls.
8638
8639         * class.c (mono_class_get_method_from_name_flags): Avoid calling
8640         mono_class_setup_methods () if possible.
8641
8642         * class-internals.h (MonoClass): Add 'has_cctor' flag.
8643
8644         * class-internals.h (MonoCachedClassInfo): New structure.
8645
8646         * class.c: Initialize properties and events fields of MonoClass lazily.
8647
8648         * class.c: Add infrastructure for lazily initializing the methods and
8649         vtable fields of MonoClass. Not yet used.
8650
8651         * class.c (mono_class_get_finalizer): New helper function.
8652
8653         * class.c: Add infrastructure for loading some class related data from
8654         an AOT file.
8655
8656         * object.c: Add infrastructure for initializing the vtable from data
8657         in the AOT file.
8658
8659         * gc.c (run_finalize): Use mono_class_get_finalizer ().
8660
8661         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
8662         appropriate initialization function before accessing parts of the
8663         MonoClass structure.
8664
8665         * marshal.c: Fix warnings.
8666         
8667         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
8668
8669         * mono-debug-debugger.c (get_exception_message): Use 
8670         mono_class_get_method_from_name_flags ().
8671
8672 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
8673
8674         * reflection.c, appdomain.c: Replace a few manual searches that
8675         Zoltan missed. (Paolo approved this part of my initial patch).
8676
8677 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
8678
8679         * profiler.c: disable recording statistical events at report time.
8680
8681 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8682
8683         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
8684         to byteswap arrays of enum values, too (bug #72080).
8685
8686 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
8687
8688         * appdomain.c (set_domain_search_path): Allow this to be called if
8689         domain->setup is not yet set.
8690
8691         * loader.c (mono_method_get_index): New helper function.
8692
8693         * loader.c reflection.c: Use mono_method_get_index ().
8694
8695         * class.c (mono_class_get_method_from_name_flags): New helper method.
8696
8697         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
8698         this.
8699
8700         * class.c (mono_class_get_cctor): New helper method.
8701
8702         * string-icalls.c object.c class.c marshal.c reflection.c: Use
8703         mono_class_get_method () to look up methods.
8704
8705 2005-02-01  Miguel de Icaza  <miguel@novell.com>
8706
8707         * console-io.c: Fix the build, this should work on Windows.
8708
8709 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
8710
8711         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
8712         be set to null to keep things valid
8713
8714 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8715
8716         * icall.c: added Console 2.0 icalls.
8717         * Makefile.am: added console-io.[ch]
8718         * console-io.[ch]: internal calls for Console 2.0 API.
8719
8720 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8721
8722         * class.c: make sure we consider all the interfaces
8723         when calculating max_interface_id (bug found by
8724         Jeroen Frijters running ikvm).
8725
8726 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
8727
8728         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
8729         valuetype fields to null.
8730
8731         * object.c (set_value): Ditto. Fixes #71669.    
8732
8733 2005-01-31  Martin Baulig  <martin@ximian.com>
8734
8735         * metadata.c (mono_metadata_has_generic_params): New public
8736         function; checks whether something is a generic method.
8737
8738 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
8739
8740         * appdomain.c: fix infinite recursion when adding assemblies.
8741
8742 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
8743
8744         * object.c: Fix small typo to return all items for Environment.
8745         GetCommandLineArgs.
8746
8747 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8748
8749         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
8750         reflection.c: more domain and assembly-unload related fixes
8751         and memory leaks plugs.
8752
8753 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
8754
8755         * 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.
8756
8757 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
8758
8759         * loader.c (mono_method_signature): Make this method lazy
8760         (mono_get_method_from_token): Don't computate the signature here.
8761
8762         Doing this saves quite a bit of memory. I got 90 kb on starting up
8763         monodoc. It should also save some disk reads on startup.
8764
8765         * *: MonoMethod->signature might be NULL now. You *MUST* use
8766         mono_method_signature.
8767
8768 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
8769
8770         * object.c (mono_runtime_get_main_args): Return an array from the
8771         current domain here. Fixes #71938.
8772
8773 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
8774
8775         * monitor.c: formatting changes to comply with the
8776         mono coding style and remove #ifdefs from the code.
8777
8778 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8779
8780         * metadata.c, private.h: remove some unneeded data
8781         and use a more compact representation for table schemas.
8782
8783 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
8784
8785         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
8786         to get a better distribution in hash tables.
8787         * *.c: use mono_aligned_addr_hash() where appropriate.
8788         * assembly.c: make var static.
8789
8790 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
8791
8792         * domain-internals.h: Put MonoJitInfo on a diet.
8793
8794         * domain.c: Fix a warning.
8795
8796 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8797
8798         * gc.c: rework the gc handles code to reuse handles
8799         when freed.
8800
8801 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8802
8803         * domain.c: fixed long standing bug in mono_string_equal() which
8804         was brought to light with the ldstr changes.
8805
8806 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
8807
8808         * reflection.c: Remove warning by adding missing include for marshal.h
8809
8810 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8811
8812         * domain.c, object.c: change the ldstr_table to hold
8813         MonoString* as keys: makes the runtime isinterned lookup
8814         faster and simplifies memory management.
8815
8816 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
8817  
8818         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
8819         possible to add imperative security checks before calling the icall.
8820         * reflection.c: Return security attributes on the original MonoMethod
8821         (and not the wrapped one). This fix permissions on icalls.
8822
8823 2005-01-25  Dick Porter  <dick@ximian.com>
8824
8825         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
8826         the check for mktime() support actually test the mktime() return
8827         value.  "Fixes" bug 71682, though the output is still different to
8828         MS.
8829
8830 2005-01-25  Martin Baulig  <martin@ximian.com>
8831
8832         * class.c (mono_class_is_assignable_from): Make this work for
8833         generic instances.
8834
8835 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
8836
8837         * marshal.c (mono_string_utf8_to_builder)
8838         (mono_string_builder_to_utf16): We might not have ownership of the
8839         string. In thise case, we need to create a new buffer.
8840
8841         * object-internals.h (mono_stringbuilder_capacity): sb->str might
8842         be null, in which case, use the default capacity.
8843
8844 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8845
8846         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
8847         GC events to the profiler.
8848
8849 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8850
8851         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
8852         if you don't want the GC to run.
8853
8854 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
8855
8856         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
8857         start providing a GC API and keeping different implementations in
8858         their own file.
8859         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
8860
8861 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
8862
8863         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
8864         mmap rather than allocating a huge buffer.
8865         (mono_debug_close_mono_symbol_file): Free the buffer allocated
8866         above.
8867
8868 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
8869
8870         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
8871         and CheckExecutionRights.
8872         * reflection.c|h: Keep the index of the declarative security to be 
8873         used, instead of the pointer, when AOT compiler is used. Also add 
8874         class initialization when requesting demands.
8875         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
8876         CheckExecutionRights. Both properties are now FALSE by default, and
8877         unmodifiable, unless the --security option is used.
8878
8879 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8880
8881         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
8882         reflection.c: properly refcount images and assemblies, many leaks fixed.
8883
8884 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8885
8886         * threadpool.c: increase the timeout for threads in the thread pool to
8887         10s.  Fixes bug #67159.
8888
8889 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
8890
8891         * class-internals.h: Sun's compiler insists on explicit
8892         signed on bit fields to handle then correctly.
8893
8894 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
8895
8896         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
8897         Make the size of the array fit only the number of invalid path
8898         chars that we have.
8899
8900         * class.c (_mono_class_get): Improve the error reporting when a
8901         class referenced is not found, to assist debugging. 
8902
8903 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
8904
8905         * threads.c: fix off-by-one error.
8906         * domain.c: free data allocated in the domain.
8907
8908 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
8909
8910         * reflection.c (mono_method_body_get_object): Fill out exception info
8911         as well.
8912
8913         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
8914         structure.
8915         
8916 2005-01-19  Martin Baulig  <martin@ximian.com>
8917
8918         * loader.c (mono_get_method_constrained): Make this work again.
8919
8920 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
8921
8922         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
8923         guint16 to match the managed side.
8924
8925         * reflection.c (mono_reflection_body_get_object): Fill out local
8926         variables array.
8927
8928         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
8929         as well.
8930
8931         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
8932         'local_var_sig_token'.
8933
8934 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
8935
8936         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
8937         System.Drawing.
8938
8939         * reflection.c (mono_method_body_get_object): Handle abstract and
8940         runtime methods.
8941
8942 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
8943
8944         * marshal.c, loader.c, class-internals.h, reflection.c:
8945         store the emthod data for a wrapper in an array instead of a list.
8946
8947 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
8948
8949         * marshal.c: change the code to allocate memory more
8950         conservatively for method wrappers.
8951
8952 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
8953
8954         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
8955         fields from MonoClass to the marshal info structure where they belong.
8956
8957 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8958
8959         * class.c, object.c, class-internals.h, marshal.c: rearrange
8960         some fields and tweak some types to lower memory usage.
8961
8962 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
8963
8964         * threads.c (signal_thread_state_change): Handle the case when the
8965         target thread is the current thread.
8966
8967         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
8968
8969         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
8970         emit_ptr_to_object_conv. 
8971
8972         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
8973         marshalling. Fixes #71352.
8974
8975 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8976
8977         * metadata.h, blob.h: move table enum to blob.h so it can be included
8978         in any header.
8979         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
8980         cut the size of MonoImage/MonoDynamicImage.
8981
8982 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
8983
8984         * profiler.c (mono_profiler_install_simple): Fix default arguments.
8985
8986 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
8987
8988         * reflection.c, reflection.h, icall.c: add a function to check
8989         if an attribute type is defined for a metadata object.
8990
8991 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
8992
8993         * object-internals.h: Added some needed fields from StringBuilder class.
8994         * marshal.c: Set the maxCapacity when creating a StringBuilder.
8995
8996 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
8997
8998         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
8999         threads before shutting down the runtime.
9000
9001         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
9002
9003 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9004
9005         * object-internal.h, threads.c: implement stacksize and 
9006         parameterized thread start functionality (requires
9007         matching corlib). Marked broken code for later removal.
9008
9009 2005-01-12  Martin Baulig  <martin@ximian.com>
9010
9011         * class-internals.h (MonoGenericClass): Moved the `initialized'
9012         flag to MonoDynamicGenericClass, removed `init_pending'.
9013         (MonoGenericInst): Added `is_reference' flag.
9014
9015 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
9016
9017         * reflection.c (mono_image_create_pefile): Only set the pe_offset
9018         inside the MSDOS header. Fixes #71201.
9019
9020         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
9021         gc thread.
9022         (mono_domain_finalize): Ditto.
9023
9024 2005-01-12  Martin Baulig  <martin@ximian.com>
9025
9026         * class.c (mono_get_shared_generic_class): Use the cache for
9027         non-dynamic generic classes.
9028
9029         * class-internals.h (mono_class_create_generic_2): Removed
9030         function prototype, this function is now static inside class.c.
9031
9032         * class.c (mono_class_create_generic_2): Made this static, only
9033         call it from mono_class_init() and mono_class_setup_parent().
9034         (collect_implemented_interfaces_aux): Call mono_class_init() on
9035         the interfaces we collect.
9036         (mono_class_setup_vtable): Call mono_class_init (class->parent).
9037
9038 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9039
9040         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
9041         it a real thread handle.
9042
9043         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
9044         MonoJitExceptionInfo, since each catch clause needs its own variable.
9045         
9046 2005-01-11  Dick Porter  <dick@ximian.com>
9047
9048         * image.c (mono_pe_file_open): New variant on mono_image_open()
9049         that does not set up the CLI metadata; used for FileVersionInfo so
9050         it can get the data for windows binaries too.
9051         
9052         * process.c (process_read_string_block): Don't read off the end of
9053         the StringTable block.
9054
9055         These both fix bug 70766.
9056
9057 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
9058
9059         * gc.c: set some fields to NULL at GC cleanup time.
9060         * threads.c: if we quit the main thread, call exit ().
9061
9062 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9063
9064         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
9065
9066 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
9067
9068         * threads.h, threads.c, object.c: added accessor and settor for
9069         main_thread. Handle it specially when exiting from it: wait
9070         for other foreground threads to exit.
9071
9072 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
9073
9074         * process.c, verify.c: remove some bloat.
9075
9076 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
9077
9078         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
9079         the calling convention to cdecl under win32.
9080
9081 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
9082
9083         * object.c (mono_object_get_size): New function to get the size of
9084         an object instance.
9085
9086         * profiler.c (simple_allocation): Use above.
9087
9088 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9089
9090         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
9091         ves_icall_System_AppDomain_getRootDomain (as it's not required to
9092         get an appdomain by it's id and we can't assume the root's id is 0).
9093         * domain-internals.h: Change the function prototype to match.
9094         * icall.c: Change the icall table for AppDomain.
9095
9096 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
9097
9098         * locales.c (string_invariant_compare_char): Only compute
9099         GUnicodeTypes in the case where we need them.  Test for ordinality
9100         first and return if so.
9101
9102         From the commit:
9103
9104                 /*
9105                  * FIXME: here we must use the information from c1type and c2type
9106                  * to find out the proper collation, even on the InvariantCulture, the
9107                  * sorting is not done by computing the unicode values, but their
9108                  * actual sort order.
9109                  */
9110
9111 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9112
9113         * loader.c: for P/Invoke methods, allow the "Internal" shared
9114         library name to refer to the calling process symbol namespace.
9115
9116 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
9117
9118         * Makefile.am: Add the security manager to the build.
9119         * security-manager.c|h: New. Initialization of the security manager.
9120
9121 2005-01-07  Dick Porter  <dick@ximian.com>
9122
9123         * threads.c: 
9124         * monitor.c: Update thread state during Monitor and WaitHandle
9125         waits.  Fixes bug 71031.
9126
9127 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
9128
9129         * reflection.c (property_encode_signature): Correctly handle when the
9130         property has no methods.
9131
9132 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
9133
9134         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
9135         
9136         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
9137         fields from mb, not rmb. Fixes #71017.
9138
9139         * marshal.c (emit_ptr_to_str_conv): Add support for 
9140         ByValTStr -> string conversion. Fixes #71015.
9141
9142         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
9143
9144         * mempool.c (mono_mempool_contains_addr): New helper function.
9145
9146 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9147
9148         * metadata.c (mono_metadata_compute_size): Fix size calculation of
9149         HasSematics encoded fields.
9150         
9151         * metadata.c (mono_type_to_unmanaged): Improve error message for 
9152         invalid string marshalling.
9153
9154         * metadata.c: Fix warnings.
9155         
9156 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9157
9158         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
9159         profiler support.
9160
9161 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9162
9163         * domain.c object.c domain-internals.h: Revert part of r38077 since the
9164         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
9165         tests.
9166
9167 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
9168
9169         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
9170         so methods containing these can be AOTed.
9171
9172 2005-01-03  Martin Baulig  <martin@ximian.com>
9173
9174         * loader.c (find_method): Removed the hack for generic instances.
9175         (method_from_memberref): If our parent is a generic instance, pass
9176         its generic type definition to find_method() and then inflate the
9177         method.
9178         (mono_get_method_constrained): Pass the generic type definition to
9179         find_method() and inflate the method later.
9180
9181         * class-internals.h (MonoStats): Added `generic_class_count'.
9182
9183         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
9184         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
9185
9186         * reflection.c (mono_custom_attrs_from_params): Don't ignore
9187         generic type definitions.
9188
9189 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
9190
9191         * loader.c icall.c: Fix warnings.
9192
9193 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
9194
9195         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
9196         blittable types. Fixes #70864.
9197
9198 2004-12-29  Martin Baulig  <martin@ximian.com>
9199
9200         * icall.c
9201         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
9202
9203         * reflection.c (mono_method_get_object): Create a
9204         "System.Reflection.MonoGenericMethod" for inflated methods; don't
9205         call mono_get_inflated_method().
9206
9207         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
9208
9209 2004-12-27  Martin Baulig  <martin@ximian.com>
9210
9211         * class-internals.h (MonoMethod): Added `is_inflated' flag.
9212         (MonoMethodInflated): Added `inflated' field.
9213
9214         * class.c (mono_class_inflate_generic_method): Don't really
9215         inflate the method here; just set the `is_inflated' flag in the
9216         MonoMethod.
9217         (mono_class_get_inflated_method): Actually inflate the method here
9218         if it's not already inflated; we use the MonoMethodInflated's new
9219         `inflated' field as a cache.
9220
9221 2004-12-26  Martin Baulig  <martin@ximian.com>
9222
9223         * class.c
9224         (inflate_generic_class): Moved some code out of inflate_generic_type().
9225         (mono_class_inflate_generic_method): If we're already inflated,
9226         inflate the context and use the declaring method; ie. make sure
9227         the declaring method of an inflated method is always the generic
9228         method definition.
9229         (mono_class_create_from_typedef): Create
9230         `class->generic_container->context->gclass'.
9231
9232 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9233
9234         * metadata-internals.h, marshal.c, reflection.c: More
9235         MonoGHashTable->GHashTable.
9236
9237         * domain-internals.h, class.c: Change MonoGHashTable's into
9238         GHashTables for some cases where no gc stuff is used
9239
9240         All users: update apis
9241
9242 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9243
9244         * metadata.c (builtin_types): Make this `const'. Makes this get
9245         put into the shareable section.
9246         (mono_metadata_init): Casts to make gcc happy.
9247
9248 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9249
9250         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9251
9252 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9253
9254         * icall.c: Added an internal call to retrieve the position and length
9255         of assembly-level declarative security attributes (RequestMinimum, 
9256         RequestOptional and RequestRefuse). This is used by the Assembly class
9257         to re-create the corresponding permission sets.
9258
9259 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9260
9261         * marshal.c: fix the stelemref wrapper to be type correct
9262         (and faster).
9263
9264 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9265
9266         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9267         to do key & 0x7fffffff. Hashtable already does this. It just
9268         results in longer code.
9269
9270 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9271
9272         * appdomain.c: Bump corlib version.
9273         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9274         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9275         * reflection.c|h: Add functions to get declarative security infos
9276         (blob position and length) for assemblies, classes and methods.
9277
9278 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9279
9280         * reflection.c: sort the constant table (bug #70693).
9281
9282 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9283
9284         * object-internals.h, threads.c, domain.c: add accessors for
9285         the MonoThread and MonoDomain tls keys.
9286
9287 2004-12-18  Martin Baulig  <martin@ximian.com>
9288
9289         * class.c (inflate_generic_type): If we're inflating a generic
9290         instance, set `ngclass->context->container = context->container';
9291         ie. the container we inflated into.
9292
9293         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9294         inflate_generic_type() changes.
9295
9296 2004-12-17  Martin Baulig  <martin@ximian.com>
9297
9298         * class-internals.h
9299         (MonoGenericClass): Replaced `MonoType *generic_type' with
9300         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9301         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9302         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9303
9304 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9305
9306         * exception.c (mono_exception_from_token): New helper function.
9307
9308 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9309
9310         * assembly.c (mono_assembly_load_with_partial_name): Call 
9311         mono_assembly_loaded before invoking the preload hooks. Fixes
9312         #70564.
9313
9314         * object-internals.h (MonoThread): Change culture_info and 
9315         ui_culture_info into an array.
9316
9317         * threads.c: Cache culture info objects from more than one appdomain.
9318
9319         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9320         current UI culture.
9321
9322 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9323
9324         * threads.h threads.c appdomain.c: Clear the culture_info field of
9325         all threads during unloading if they point to an object in the dying
9326         appdomain.
9327
9328 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9329
9330         * culture-info.h (TextInfoEntry): New struct
9331         * object-internals.h: sync with managed
9332         * locales.c: fill the `text_info_data' field
9333         * culture-info-tables.h: update
9334
9335 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9336
9337         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9338         collector.
9339
9340 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9341
9342         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9343         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9344
9345 2004-12-12  Martin Baulig  <martin@ximian.com>
9346
9347         * mono-debug-debugger.c (write_type): If we're an enum and the
9348         builtin types have already been initialized, call mono_class_init().
9349
9350 2004-12-11  Martin Baulig  <martin@ximian.com>
9351
9352         * metadata.c (mono_metadata_load_generic_params): Added
9353         `MonoGenericContainer *parent_container' argument; automatically
9354         compute `container->is_method'; pass the correct owner to
9355         get_constraints().      
9356
9357         * reflection.c (compare_genericparam): Sort the GenericParam table
9358         according to increasing owners. 
9359
9360 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
9361
9362         * profiler.c: allow disabling the default profiler.
9363
9364 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9365
9366         * decimal.c, icall.c: allow disabling System.Decimal support.
9367
9368 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9369
9370         * reflection.c: Add support for null attribute arguments.
9371
9372 2004-12-09  Martin Baulig  <martin@ximian.com>
9373
9374         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9375         names to get rid of compiler warnings.
9376
9377 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9378
9379         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9380         mono_marshal_load_type_info (). Fixes #69625.
9381         (mono_marshal_get_ptr_to_struct): Likewise.
9382
9383 2004-12-08  Martin Baulig  <martin@ximian.com>
9384
9385         * mono-debug.h: Bumped version number to 47.
9386
9387         * mono-debug-debugger.c
9388         (mono_debugger_event_handler, mono_debugger_event): Take two
9389         guint64 arguments insteed of a gpointer and a guint32.  
9390
9391 2004-12-08  Martin Baulig  <martin@ximian.com>
9392
9393         * debug-mono-symfile.h
9394         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9395         `address' to `native_offset'.
9396
9397 2004-12-08  Martin Baulig  <martin@ximian.com>
9398
9399         * class.c (mono_class_create_from_typespec): Only inflate if we
9400         either have `context->gclass' or `context->gmethod'.
9401
9402 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9403
9404         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9405
9406         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9407
9408         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9409
9410         * reflection.c (mono_assembly_get_object): Remove the workaround put
9411         in for the release.
9412         
9413         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9414
9415         * appdomain.c: Bump corlib version.
9416
9417         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9418         be visible in other appdomains.
9419
9420 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9421
9422         * threads.c: Interlocked inc and dec for longs were messed up,
9423         use a KISS based impl for this. Fixes 70234
9424
9425 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9426
9427         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9428
9429 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9430
9431         * icall.c: fix to follow policy not to allow struct
9432         arguments in icalls.
9433
9434 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9435
9436         * process.c: make the patch that handles spaces in file paths work
9437         on mono/windows too.
9438
9439 2004-12-06  Martin Baulig  <martin@ximian.com>
9440
9441         * class.c (mono_class_create_generic): Call
9442         mono_class_setup_supertypes() if we're dynamic.
9443         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9444
9445 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9446
9447         * object-internals.h: Add new fields to MonoThread.
9448
9449         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9450
9451         * icall.c threads-types.h threads.c: Add new icalls.
9452
9453         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9454
9455         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9456         managed side.
9457
9458         * appdomain.c: Bump corlib version.
9459
9460         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
9461         internal assemblies. Fixes #69181.
9462
9463 2004-12-05  Martin Baulig  <martin@ximian.com>
9464
9465         * class.c (mono_class_inflate_generic_signature): Make this a
9466         no-op if `context' is NULL or we don't have any type parameters;
9467         also copy `sentinelpos'.        
9468
9469 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
9470
9471         * image.c: Add unbox_wrapper_cache.
9472
9473         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
9474
9475         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
9476         function generator.
9477         
9478         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
9479         Fixes #70173.
9480
9481         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
9482         
9483 2004-12-04  Martin Baulig  <martin@ximian.com>
9484
9485         * loader.c (mono_method_get_signature_full): New public function;
9486         like mono_method_get_signature(), but with an additional
9487         `MonoGenericContext *' argument.
9488
9489         * class.c (mono_class_inflate_generic_signature): Formerly known
9490         as inflate_generic_signature(); make this public.
9491
9492 2004-12-04  Martin Baulig  <martin@ximian.com>
9493
9494         * metadata.c
9495         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
9496         instead of a `MonoGenericContainer *'.  
9497         (mono_metadata_parse_array_full): Likewise.
9498         (mono_metadata_parse_signature_full): Likewise.
9499         (mono_metadata_parse_method_signature_full): Likewise.
9500         (mono_metadata_parse_generic_inst): Likewise.
9501         (mono_metadata_parse_generic_param): Likewise.
9502         (mono_metadata_parse_mh_full): Likewise.
9503         (mono_type_create_from_typespec_full): Likewise.
9504
9505 2004-12-03  Martin Baulig  <martin@ximian.com>
9506
9507         * class-internals.h (MonoGenericContainer): Replaced the
9508         `MonoGenericContext * pointer with a `MonoGenericContext'
9509         structure and made it the first element.
9510
9511 2004-12-03  Martin Baulig  <martin@ximian.com>
9512
9513         * class.c
9514         (inflate_generic_type): Set the `context->container' when creating
9515         a new MonoGenericContext.
9516         (mono_class_inflate_generic_method): Likewise.
9517         (mono_class_create_from_typespec): Just use `context->container'
9518         to get the container.
9519
9520         * loader.c (method_from_methodspec): Set `context->parent' from
9521         `context->container' - and if that's a method container, use its
9522         parent.  Also set the `context->container' when creating a new
9523         MonoGenericContext.
9524         (mono_get_method_from_token): Use just `context->container' to get
9525         the container.
9526
9527         * metadata.c (do_mono_metadata_parse_generic_class): Also set
9528         `gclass->context->container'.
9529
9530         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
9531         the `context->container' when creating a new MonoGenericContext.
9532
9533 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
9534
9535         * reflection.c (compare_genericparam): Sort params with identical
9536         owner by their number. Fixes gen-111 on sparc.
9537
9538 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9539
9540         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
9541         around the domain changes.
9542
9543         * appdomain.c (mono_domain_unload): Handle the case when the thread
9544         calling Unload is itself being aborted during unloading. Fixes #70022.
9545
9546         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
9547
9548         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
9549         checkpoint_func as an icall so it gets a wrapper.
9550         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
9551         in the cross-appdomain wrappers too.
9552
9553         * threads.c (mono_thread_has_appdomain_ref): Make this public.
9554
9555         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
9556
9557         * reflection.c: Fix some memory leaks.
9558         
9559 2004-12-02  Martin Baulig  <martin@ximian.com>
9560
9561         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
9562
9563         * metadata.c (generic_class_cache): New static hashtable.
9564         (mono_metadata_lookup_generic_class): New public method.
9565
9566 2004-12-02  Martin Baulig  <martin@ximian.com>
9567
9568         * class.c (mono_class_create_from_typedef): Call
9569         mono_class_setup_parent() and mono_class_create_mono_type() before
9570         parsing the interfaces.
9571
9572 2004-12-02  Martin Baulig  <martin@ximian.com>
9573
9574         * metadata.c (generic_inst_cache): New static hashtable.
9575         (mono_metadata_lookup_generic_inst): New public function.
9576         (mono_metadata_inflate_generic_inst): New public function.
9577         (mono_metadata_parse_generic_inst): New public function.
9578         (do_mono_metadata_parse_generic_class): Use the new
9579         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
9580         since this'll also use the cache.
9581
9582         * reflection.c (mono_reflection_bind_generic_method_parameters):
9583         Use mono_metadata_lookup_generic_inst() to use the new cache.
9584
9585         * class.c (inflate_mono_type): Use
9586         mono_metadata_inflate_generic_inst() to inflate a generic
9587         instance; this'll also use the new cache.
9588
9589         * loader.c (method_from_methodspec): Use
9590         mono_metadata_parse_generic_inst() and
9591         mono_metadata_inflate_generic_inst() rather than parsing it
9592         manually, so we can use the new cache.
9593
9594 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9595
9596         * threads.c (wait_for_tids): Do not incorrectly free threads when 
9597         the wait times out.
9598
9599 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
9600
9601         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
9602         iter->args based on whether parameters are passed in registers (i.e.
9603         MONO_ARCH_REGPARMS is defined)
9604
9605 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
9606
9607         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
9608         the exception message. Fixes #70070.
9609         (method_from_methodspec): Fix warnings.
9610
9611 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9612
9613         * process.c: (complete_path) return the path quoted
9614
9615 2004-12-01  Martin Baulig  <martin@ximian.com>
9616
9617         * class-internals.h (MonoGenericInst): New structure.
9618         (MonoGenericClass): Replaced `type_argc', `type_argv' and
9619         `is_open' with `MonoGenericInst *inst'.
9620         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
9621         `is_open' with `MonoGenericInst *inst'.
9622
9623 2004-11-30  Martin Baulig  <martin@ximian.com>
9624
9625         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
9626
9627         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
9628         to `generic_class_cache'.
9629
9630         * metadata.c
9631         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
9632         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
9633         (mono_generic_inst_is_valuetype): Renamed to
9634         mono_generic_class_is_valuetype().
9635
9636         * class-internals.h
9637         (MonoGenericInst): Renamed to MonoGenericClass.
9638         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
9639         (MonoClass): Renamed `generic_inst' to `generic_class'.
9640         (MonoGenericContext): Renamed `ginst' to `gclass'.
9641
9642         * object-internals.h
9643         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
9644
9645         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
9646         mono_reflection_generic_class_initialize().
9647
9648         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
9649         now known as "System.Reflection.MonoGenericClass".
9650         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
9651
9652 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
9653
9654         * class-internals.h: Added a flag field to MonoClass to cache the
9655         declarative security attributes actions associated with the class.
9656         * domain-internals.h: Added booleans to MonoJitInfo to cache the
9657         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
9658         applicable to the JITted method.
9659         * reflection.c|h: Added functions to extract (as flags) which security
9660         actions are available (declaratively) for a method, class or assembly.
9661         * metadata.c|h: Added functions to search the declarative security
9662         table in the metadata.
9663         
9664 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
9665
9666         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
9667         EXPORTEDTYPES are already in the class name cache, so there is no
9668         need to add extra code here to look at them. Just removes a bit of
9669         cruft.
9670
9671         (ves_icall_System_Environment_get_TickCount): No need for #if
9672         WINDOWS. We already have the code in io-layer.
9673
9674 2004-11-28  Martin Baulig  <martin@ximian.com>
9675
9676         * loader.c
9677         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
9678         Fixes gen-112.cs.
9679
9680 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
9681
9682         * assembly.c (do_mono_assembly_open): Instead of having a
9683         conditional WITH_BUNDLE, incorporate support for bundles here, by
9684         having a global `bundles' variable holding a pointer to the actual
9685         bundles. 
9686
9687         (mono_register_bundled_assemblies): New API call used by the
9688         bundle code. 
9689
9690         See mkbundle.1 for details.
9691         
9692 2004-11-27  Martin Baulig  <martin@ximian.com>
9693
9694         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
9695         the vtable for generic methods.
9696
9697 2004-11-26  Martin Baulig  <martin@ximian.com>
9698
9699         * metadata.c
9700         (mono_metadata_generic_method_hash): New public function.
9701         (mono_metadata_generic_method_equal): Likewise.
9702
9703         * class-internals.h
9704         (MonoGenericContainer): Added `GHashTable *method_hash'.
9705
9706         * reflection.c (ReflectionMethodBuilder): Added
9707         `MonoGenericContainer *generic_container'.
9708         (reflection_methodbuilder_to_mono_method): Don't create a new
9709         MonoGenericContainer each time we're called.
9710         (mono_reflection_bind_generic_method_parameters): Use
9711         `container->method_hash' to cache the results so we don't create a
9712         different method if we're called several times with the same
9713         arguments.
9714
9715         * loader.c (method_from_methodspec): Use the new
9716         `container->method_hash' here, too.
9717
9718 2004-11-26  Martin Baulig  <martin@ximian.com>
9719
9720         * class.c (inflate_generic_signature): Correctly compute
9721         `res->has_type_parameters'.
9722         (mono_class_vtable): Use the `has_type_parameters' flag to
9723         determine whether we're a generic method.
9724
9725         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
9726
9727 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
9728
9729         * object.c (mono_runtime_run_main): Fix a small memory leak.
9730
9731 2004-11-25  Martin Baulig  <martin@ximian.com>
9732
9733         * class.c (set_generic_param_owner): Fixed the loop.
9734
9735 2004-11-25  Martin Baulig  <martin@ximian.com>
9736
9737         * object.c (mono_class_vtable): Don't create any JIT wrappers for
9738         generic methods.
9739
9740 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
9741
9742         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
9743         names. Fixes #69787.
9744
9745 2004-11-24  Martin Baulig  <martin@ximian.com>
9746
9747         * class.c (mono_class_create_generic_2): If we don't have a
9748         `ginst->parent', inflate `gklass->parent' to get our parent.
9749
9750 2004-11-24  Martin Baulig  <martin@ximian.com>
9751
9752         * reflection.c (compare_genericparam): Correctly sort the
9753         GenericParam table; fixes #69779.
9754
9755 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
9756
9757         * reflection.c: When writing a PE file, don't create a huge
9758         buffer in memory. Just write the arrays we have to the file.
9759         This reduces memory usage.
9760
9761         * metadata-internals.h: MonoDynamicStream pefile is no longer used
9762         globally.
9763
9764 2004-11-17  Martin Baulig  <martin@ximian.com>
9765
9766         * class.c (mono_class_init): Don't setup `class->parent' for
9767         dynamic instances; moved this to mono_class_generic_2().
9768         (mono_class_create_generic): Also set `klass->inited' for dynamic
9769         generic instances.
9770         (mono_class_create_generic_2): Don't do anything for dynamic
9771         generic instances.  Set `klass->parent' here and also call
9772         mono_class_setup_parent() here. 
9773
9774         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
9775         `MonoType *parent' argument; set `ginst->parent' before calling
9776         mono_class_create_generic_2(), so we set the correct parent.
9777
9778 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
9779
9780         * reflection.c: allow getting attributes from ModuleBuilder
9781         (used by ikvm).
9782
9783 2004-11-17  Martin Baulig  <martin@ximian.com>
9784
9785         * class.c (mono_class_create_from_typedef): If a type parameter is
9786         inherited from an outer class, set its owner to that class.
9787
9788 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
9789
9790         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
9791           for (int*) written size. This fixes bug #69592.
9792
9793 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
9794
9795         * icall.c: Added IsAuthenticodePresnet internal call.
9796         * image.c|h: New function that check a MonoImage for an Authenticode
9797         signature in the certificate PE data directory.
9798         * security.c|h: New internal call to ask the runtime if an 
9799         Authenticode signature seems referenced in the PE header.
9800
9801 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
9802
9803         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
9804
9805         * reflection.c (mono_image_create_pefile): Free the assembly streams
9806         after writing out the assembly file.
9807
9808         * object.c (mono_runtime_run_main): Fix small memory leak.
9809
9810         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
9811         property access modifiers. Fixes #69389.
9812
9813 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
9814
9815         * domain.c, object.c, object-internals.h, domain-internals.h,
9816         object.h, marshal.c: keep dynamic code info per domain.
9817
9818 2004-11-15  Martin Baulig  <martin@ximian.com>
9819
9820         * class.c (mono_type_get_name_recurse): Put type arguments in
9821         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
9822         see bug #68387.
9823
9824 2004-11-15  Martin Baulig  <martin@ximian.com>
9825
9826         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
9827         (mono_class_setup_vtable): When computing `the_cname' for a
9828         generic instance, don't include the namespace since we'd otherwise
9829         add it twice.
9830
9831 2004-11-15  Martin Baulig  <martin@ximian.com>
9832
9833         * class.c (mono_class_create_generic): Changed return type to void.
9834         (mono_class_create_generic_2): New public function; setup
9835         `class->method', `class->field' and `class->interfaces' here
9836         instead of in mono_class_init().
9837
9838         * class.h (mono_class_create_generic): Moved to class-internals.h.
9839
9840 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
9841
9842         * reflection.c (mono_image_create_pefile): take a file HANDLE.
9843         rather than writing to memory, write to this file. Right now,
9844         we are just writting into a buffer, and copying that. However
9845         we can avoid the buffer later.
9846
9847         (mono_dynamic_stream_reset): new function
9848
9849         * icall.c, object-internals.h: update for the above.
9850
9851 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
9852
9853         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
9854         have been using gc'd memory. First it is slower, unlikely
9855         the comment in the source code said, secondly, it increases
9856         our footprint to do it in the gc.
9857
9858         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
9859         the method so that it does not have to copy to managed code.
9860
9861 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
9862
9863         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
9864
9865 2004-11-12  Martin Baulig  <martin@localhost>
9866
9867         * reflection.c (mono_image_create_token): Allow generic method
9868         definitions here, since they may appear in an `.override'; see
9869         gen-98/gen-99 for an example.
9870
9871 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
9872
9873         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
9874         #69365.
9875
9876         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
9877         descriptive.
9878
9879 2004-11-11  Martin Baulig  <martin@ximian.com>
9880
9881         * class.c (mono_class_setup_vtable): In an explicit interface
9882         implementation, the method name now includes the arity.
9883
9884 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
9885
9886         * object.c (mono_array_full_copy): Fix warning.
9887
9888 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
9889
9890         * appdomain.c: Removed look_for_method_by_name(). Use the new method
9891         mono_class_get_method_from_name() instead.
9892         
9893         * class-internals.h: Added two new types of wrappers. 
9894         Added MonoRemotingTarget enum. Added new trampoline function type, which
9895         takes an additional MonoRemotingTarget value as parameter, so it is
9896         possible to request a trampoline for a specific target.
9897         
9898         * class.c: Added new mono_class_get_method_from_name() method.
9899         
9900         * class.h: In MonoRemoteClass, we can have now to vtables, one for
9901         general remoting sinks and one specific for cross domain calls.
9902         
9903         * debug-helpers.c: Added new wrapper names.
9904         
9905         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
9906         of a remote class.
9907         
9908         * image.c: Porperly delete value objects form the remoting invoke hashtable.
9909         
9910         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
9911         with several other methods (mono_marshal_get_xappdomain_dispatch,
9912         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
9913         and others) can generate a fast remoting wrapper for cross domain calls.
9914         More information can be found in docs/remoting.
9915         Other changes: Removed mono_find_method_by_name, and used
9916         mono_class_get_method_from_name instead.
9917         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
9918         is stored in the remoting invoke hashtable.
9919         
9920         * marshal.h: published the new method for getting the xdomain wrapper,
9921         and also added a method for getting the adequate wrapper for a given
9922         method and target.
9923         
9924         * object-internals.h, object.c: Added a couple of methods for capying and
9925         cloning arrays.
9926         Modified mono_install_remoting_trampoline, which takes the new remoting
9927         trampoline that has a remoting target as parameter.
9928         mono_class_proxy_vtable now also takes a remoting target as parameter, and
9929         will return the most suitable vtable for the target.
9930         Added mono_remote_class_vtable, which returns the vtable of a remote class
9931         (which can be the normal remoting vtable or the xdomain vtable).
9932         
9933         * threads.c: the xdomain invoke and dispatch wrappers must also be
9934         protected against interruptions.
9935
9936 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9937
9938         * icall.c: use memmove in BlockCopyInternal when the source and
9939         destination arrays are the same.
9940
9941 2004-11-09  Martin Baulig  <martin@ximian.com>
9942
9943         * class-internals.h (MonoGenericContainer): Removed `method' and
9944         `signature', replaced them with `is_method' and `is_signature'
9945         flags.  Added `context'.
9946
9947         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
9948         instead of a `MonoGenericContainer *'.
9949
9950         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
9951         for dynamic type parameters.
9952         (mono_metadata_load_generic_params): Setup `container->context'.
9953
9954         * reflection.c (mono_reflection_setup_generic_class): Setup
9955         `tb->generic_container->context'.
9956         (do_mono_reflection_bind_generic_parameters): Use
9957         mono_class_inflate_generic_type() to correctly inflate types,
9958         rather than using our own hack just for MONO_TYPE_VAR.
9959
9960 2004-11-09  Martin Baulig  <martin@ximian.com>
9961
9962         * class.c (mono_class_inflate_generic_method): Small fix; don't
9963         crash here.
9964
9965         * icall.c
9966         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
9967         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
9968         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
9969         (ves_icall_Type_BindGenericParameters): Likewise.
9970         (ves_icall_Type_get_IsGenericInstance): Likewise.
9971         (ves_icall_Type_GetGenericParameterPosition): Likewise.
9972         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
9973         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
9974         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
9975
9976 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
9977
9978         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
9979         assembly versions and public key tokens. Fixes #69113.
9980
9981 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
9982
9983         * metadata.c: fix bug introduced with the type cache changes
9984         on 2004-11-06.
9985
9986 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
9987
9988         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
9989         the MonoClass pointer instead of the token in exception clauses.
9990         * reflection.c: updates for the above and make the code not depend
9991         on the structure of MonoExceptionClause.
9992
9993 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
9994
9995         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9996         Add support for dynamic assemblies. Fixes #69114.
9997
9998         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
9999
10000 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
10001
10002         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
10003         since most only those methods use it. the code member of
10004         MonoMethodPInvoke was dead, so that can be removed too. Also,
10005         remove inline_count (again, not used), and move slot so that it
10006         can share bits with some other flags. This saves 8 bytes in the
10007         structure and gives us about 50 kb back for mcs helloworld.cs
10008
10009         * *.[ch]: Do naming changes for the above.
10010
10011         * loader.c (mono_method_get_header): Lazily init the header
10012         on first access.
10013         (mono_get_method_from_token): don't init the header here
10014         (mono_free_method): the header may never be allocated
10015
10016         Overall, this saves 150 kb of unmanaged allocations
10017         for mcs helloworld.cs. That accounts for 10% of the unmanaged
10018         memory at runtime.
10019         
10020         * loader.c, loader.h (mono_method_get_header): new accessor.
10021
10022         * *.[ch]: use the above method. Prepares us to lazily load
10023         the header.
10024
10025         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
10026         three warnings, which are actual bugs (see 69206).
10027
10028         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
10029         unused. Saves a cool 4 bytes / method.
10030
10031 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
10032
10033         * metadata.c (builtin_types): Add types for System.Object here.
10034         (mono_metadata_parse_type_full): Cache MonoType*'s that are
10035         for a class or valuetype from klass->this_arg or klass->byval_arg.
10036
10037         On mcs for a hello world, this gets us down from 21836 MonoType's
10038         to 14560.
10039
10040         (mono_metadata_free_type): Account for the above change.
10041
10042 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
10043
10044         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
10045         exception instead of asserting if name is null.
10046         (ves_icall_System_AppDomain_GetData): Ditto.
10047
10048 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
10049
10050         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
10051         EnumBuilder.
10052
10053         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
10054         Return NULL when the domain does not have entry_assembly set.
10055
10056         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
10057         Add a 'resource_modules' argument.
10058         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
10059
10060         * reflection.c (mono_reflection_create_runtime_class): Move setting
10061         of wastypebuilder here, so mono_get_type_object () returns a MonoType
10062         for enums too.
10063
10064         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
10065         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
10066         Throw an ArgumentNullException if 'ptr' is null.
10067
10068         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
10069         assemblies here. Fixes #69020.
10070
10071 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
10072
10073         * reflection.c (build_compressed_metadata): Fix the previous patch for
10074         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
10075         the stack.
10076
10077 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
10078
10079         * assembly.c (mono_assembly_names_equal): Allow a match if one of
10080         the cultures is false. Fixes #69090.
10081
10082         * reflection.c (build_compressed_metadata): Fix invalid memory read 
10083         detected by valgrind.
10084         
10085         * reflection.c (mono_reflection_get_type): Avoid triggering a 
10086         TypeResolve multiple times for the same type. Fixes #65577.
10087
10088 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
10089
10090         * marshal.c: Avoid using ldftn to call managed functions. It is
10091         much slower than just a call.
10092
10093         * reflection.c (mono_module_get_object): free the basename we
10094         allocate here from glib.
10095         
10096         * reflection.c (ensure_runtime_vtable): make sure to free
10097         overrides.  Also, we were allocating an array of MonoMethod not an
10098         array of MonoMethod*.
10099
10100         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
10101
10102         * image.c (mono_image_close): free image->guid here.
10103
10104 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
10105
10106         * reflection.c: Fix some spec conformance issues with the PE file
10107         structures so mcs compiled apps run on the Net 2.0 beta.
10108
10109 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
10110
10111         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
10112         Implement this. Fixes #67264.
10113
10114         * debug-helpers.h debug-helpers.c marshal.c: Move 
10115         mono_find_method_by_name to debug-helpers.c.
10116
10117 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
10118
10119         * object.c (mono_release_type_locks): type_initialization_hash is
10120         a GHashTable.
10121
10122         * reflection.c object.c object-internals.h: Fix warnings.
10123
10124         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
10125         without accessors. Fixes #61561.
10126
10127         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
10128         application base from the root domain if not set. Fixes #65641.
10129         (mono_runtime_init): Fix warning.
10130
10131 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10132
10133         * appdomain.c: call mono_thread_pool_init.
10134         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
10135         of worker threads based on the number of CPUs and the environment
10136         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
10137         for non-windows (windows) systems.
10138
10139 2004-10-27  Chris Toshok  <toshok@ximian.com>
10140
10141         * mono-debug-debugger.c (write_class): don't call mono_class_init
10142         here, as even with the check for (!klass->init_pending), we get
10143         into a situation where we're hitting cycles in class
10144         initialization.  Fixes #68816.
10145
10146 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
10147
10148         * image.c: Avoid overwriting values in the loaded_images_hash when an
10149         assembly is loaded multiple times. Fixes #61152.
10150
10151         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
10152         so multiple satellite assemblies for the same name can be loaded.
10153         Fixes #68259.
10154
10155         * mono_domain_assembly_preload: Actually return the loaded assembly, 
10156         not NULL.
10157
10158         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
10159         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
10160
10161         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
10162         pending finalizers are not invoked after the appdomain has been 
10163         unloaded. Fixes #67862.
10164
10165 2004-10-22  Martin Baulig  <martin@ximian.com>
10166
10167         * mono-debug-debugger.c
10168         (mono_debugger_runtime_invoke): Don't box valuetypes.
10169
10170 2004-10-22  Chris Toshok  <toshok@ximian.com>
10171
10172         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
10173         don't hide private methods.
10174
10175 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
10176
10177         * icall.c: Allows the runtime to "share" (when known) the public key
10178         token of an assembly. This avoid the need to recalculate the token 
10179         (from the public key) in managed code.
10180
10181 2004-10-21  Chris Toshok  <toshok@ximian.com>
10182
10183         * debug-helpers.c (append_class_name): argh, revert last patch.
10184         
10185 2004-10-21  Chris Toshok  <toshok@ximian.com>
10186
10187         * debug-helpers.c (append_class_name): use '+' as the delimiter,
10188         not '/', so that it matches what the debugger uses to look up
10189         methods.
10190
10191 2004-10-21  Martin Baulig  <martin@ximian.com>
10192
10193         * mono-debug-debugger.c (mono_debugger_throw_exception): New
10194         public method; this is called each time an exception is thrown and
10195         allows the debugger to use exception catch points.
10196
10197 2004-10-21  Martin Baulig  <martin@ximian.com>
10198
10199         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
10200         the stack pointer and the exception object in some struct and pass
10201         that to the debugger.
10202
10203 2004-10-21  Chris Toshok  <toshok@ximian.com>
10204
10205         * mono-debug-debugger.c (do_write_class): add instance/static
10206         event support.  We don't expose "raise" or "other" yet.
10207         (event_is_static): new method.
10208
10209 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
10210
10211         * mono-debug-debugger.c
10212         (mono_debugger_handle_exception): Remove
10213         bogus return value for fussy compilers.
10214
10215 2004-10-20  Martin Baulig  <martin@ximian.com>
10216
10217         * mono-debug-debugger.c
10218         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
10219         (mono_debugger_handled_exception): Likewise.
10220
10221 2004-10-20  Martin Baulig  <martin@ximian.com>
10222
10223         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10224         MONO_DEBUGGER_EVENT_EXCEPTION.
10225
10226         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10227         public function to send the debugger a notification for an
10228         exception and inform it about a catch/finally clause.
10229
10230 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10231
10232         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10233         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10234         fix 2.95 build. 
10235
10236         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10237
10238 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10239
10240         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10241         marshalled as [In,Out]. Fixes #58325.
10242
10243 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10244
10245         * reflection.c (mono_method_body_get_object): Implement some fields.
10246
10247 2004-10-12  Martin Baulig  <martin@ximian.com>
10248
10249         * reflection.c (mono_reflection_bind_generic_parameters): Small
10250         fix, correctly retrieve our parent from a generic instance.
10251
10252 2004-10-12  Martin Baulig  <martin@ximian.com>
10253
10254         * metadata.c (mono_metadata_generic_param_equal): We always have
10255         an owner.
10256
10257         * class.c
10258         (mono_class_from_generic_parameter): We need to have an owner.
10259         (my_mono_class_from_generic_parameter): Likewise.
10260
10261         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10262         mono_reflection_create_generic_class() and added a new
10263         mono_reflection_setup_generic_class().  
10264         (mono_reflection_initialize_generic_param): If we're a nested
10265         generic type and inherited from the containing class, set our
10266         owner to the outer class.
10267
10268 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10269
10270         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10271
10272         * reflection.c (mono_method_body_get_object): New function to create
10273         a MethodBody object.
10274
10275         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10276
10277 2004-10-11  Martin Baulig  <martin@ximian.com>
10278
10279         * metadata.c (_mono_metadata_type_equal): Renamed to
10280         do_mono_metadata_type_equal() and made static.
10281
10282 2004-10-11  Martin Baulig  <martin@ximian.com>
10283
10284         * appdomain.c: Bump corlib version number to 28.
10285
10286 2004-10-10  Martin Baulig  <martin@ximian.com>
10287
10288         * class-internals.h
10289         (MonoGenericInst): Added `MonoGenericContainer *container'.
10290         (MonoGenericMethod): Likewise.
10291         (MonoGenericContext): Likewise.
10292         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10293
10294         * metadata.c
10295         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10296         (do_mono_metadata_parse_generic_inst): Likewise.
10297         (mono_metadata_parse_type_full): New public method.  This is the actual
10298         mono_metadata_parse_type() implementation - with an additional
10299         `MonoGenericContainer *' argument.
10300         (mono_metadata_parse_array_full): Likewise.
10301         (mono_metadata_parse_signature_full): Likewise.
10302         (mono_metadata_parse_method_signature_full): Likewise.
10303         (mono_metadata_parse_mh_full): Likewise.
10304         (mono_type_create_from_typespec): Likewise.
10305         (mono_metadata_interfaces_from_typedef_full): New public method;
10306         this is similar to the other _full() methods, but we take a
10307         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10308         (mono_metadata_parse_generic_param): Take an additional
10309         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10310         from that container.
10311         (mono_metadata_generic_param_equal): New static method to compare
10312         two type parameters.
10313         (_mono_metadata_type_equal): New static method; takes an
10314         additional `gboolean signature_only' argument - if true, we don't
10315         compare the owners of generic parameters.
10316         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10317         with a TRUE argument - do a signature-only comparision.
10318
10319         * loader.c: Use the new _full() methods and pass the
10320         MonoGenericContainer to them.
10321
10322         * object-internals.h (MonoReflectionTypeBuilder): Added
10323         `MonoGenericContainer *generic_container' field.
10324         (MonoReflectionMethodBuilder): Likewise.
10325
10326 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10327
10328         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10329         case initial images of dynamic assemblies.
10330
10331         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10332
10333         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10334
10335         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10336         length of event->other array.
10337         (typebuilder_setup_events): Ditto.
10338
10339         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10340         'assembly_by_name' and add an 'assemblies' list.
10341
10342         * assembly.h assembly.c: Add a new search hook for determining whenever
10343         an assembly is already loaded. Use this instead of searching in the
10344         loaded_assemblies list.
10345
10346         * domain.c appdomain.c: Implement the new search hook so loaded 
10347         assemblies are now scoped by appdomain. Fixes #67727.
10348
10349 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10350
10351         * threads.c (mono_thread_attach): Initialize synch_lock field so
10352         mono_thread_detach works again.
10353
10354         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
10355         'lib' too. Fixes #63130.
10356
10357 2004-10-06  Jackson Harper  <jackson@ximian.com>
10358
10359         * culture-info-tables.h: regenerated.
10360
10361 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
10362
10363         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10364         implemented by other interfaces in the result. Fixes #65764.
10365         
10366         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10367         Handle unloadable modules without crashing.
10368
10369         * image.c (load_modules): Revert the previous patch since modules must
10370         have a fixed index inside the array.
10371         
10372         * image.c (load_modules): Don't include native modules in the modules
10373         array.
10374
10375 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10376
10377         * reflection.h: Add param_defaults field.
10378
10379         * reflection.c: Add support for parameter defaults in dynamic methods.
10380         Fixes #64595.
10381
10382         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10383         an empty string when a type has no namespace. Fixes #64230.
10384
10385 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10386
10387         * tabledefs.h: Added "internal" security actions to support non-CAS
10388         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10389         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10390
10391 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10392
10393         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10394         constructor of abstract class. Fixes #61689.
10395
10396 2004-10-04  Martin Baulig  <martin@ximian.com>
10397
10398         * class-internals.h (MonoGenericContainer): New type.
10399         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10400         `MonoGenericContainer *generic_container'.
10401         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10402         `MonoGenericContainer *generic_container'.
10403
10404         * metadata.c (mono_metadata_load_generic_params): Return a
10405         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10406         removed the `num' argument.
10407
10408 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10409
10410         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10411         for dynamic images.
10412
10413         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10414         machine fields.
10415
10416         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10417
10418         * reflection.c: Save pe_kind and machine values into the generated
10419         image file.
10420
10421         * appdomain.c: Bump corlib version number.
10422
10423         * object-internals.h: Reorganize layout of LocalBuilder.
10424
10425         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10426         New helper function.
10427
10428         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10429         created MonoType for dynamic types. Fixes #66180.
10430
10431 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10432
10433         * threadpool.c: the ares hashtable needs a critical section around it.
10434         this prevents some nasty segfaults
10435
10436 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10437
10438         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10439         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10440         bug 67324).
10441         
10442 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10443
10444         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10445         
10446 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10447
10448         * image.c: Always canonicalize image file names, to avoid loading
10449         the same assembly twice when referenced using a relative path.
10450
10451 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10452
10453         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10454
10455         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10456
10457         * marshal.c: Fix warnings.
10458
10459 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
10460
10461         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
10462         attempting to marshal the delegate_trampoline as the method_addr.
10463         This patch has a static hashtable of marshalled delegates so that 
10464         we can map delegate_trampoline addresses back to delegates.  This
10465         allows a delegate passed to managed code to be passed back into native
10466         code.  Fixes #67039
10467
10468 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10469
10470         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
10471
10472         * reflection.c (method_encode_code): Align method headers properly.
10473         Fixes #66025.
10474
10475 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10476
10477         * marshal.c: In the runtime invoke wrapper, reset the abort
10478         exception if it is cached. This avoids the automatic rethrowal of 
10479         the exception after the catch of the wrapper. Also check for pending
10480         interruptions before calling the managed method. This is done using
10481         the new method emit_thread_force_interrupt_checkpoint, since the
10482         normal checkpoint method is ignored when running the invoke wrapper.
10483         * object.c: If the abort exception is rethrown, set the abort_exc
10484         field of the thread, so it will be rethrown aftere every catch.
10485         * threadpool.c: Only run an interruption checkpoint if what has been
10486         requested is a stop of the thread (aborts will be ignored).
10487         * threads.c: By default, a thread will now never be interrumped while
10488         running the runtime invoke wrapper (this ensures that runtime_invoke
10489         will always return to the caller if an exception pointer is provided).
10490         There is a new special method mono_thread_force_interruption_checkpoint()
10491         to force an interruption checkpoint even if running a protected
10492         wrapper, which is used by the same runtime invoke wrapper to do a check
10493         at a safe point.
10494
10495 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10496
10497         * object.c, object-internals.h: Implemented mono_release_type_locks,
10498         which releases the cctor locks held by a thread.
10499         * threads.c, threads.h: In thread_cleanup, release cctor locks held
10500         by a thread. Added mono_thread_exit() method to be used to safely stop
10501         a thread.
10502
10503 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10504
10505         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10506         Move null check before dereference.  Avoid indexing beyond the end
10507         of the 'modules' array.
10508
10509 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10510
10511         * metadata-internals.h (MonoImage): Add module_count field.
10512         * image.c (load_modules): Set image->module_count.
10513         (mono_image_load_file_for_image): Use image->module_count.
10514         * reflection.c (mono_image_load_module): Append to image->modules array 
10515         of dynamic assembly.
10516         (mono_module_get_object): Fix loop to actually increment index.
10517         Use image->module_count.
10518         * assembly.c (mono_assembly_load_references): Use image->module_count.
10519         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
10520         Likewise.
10521
10522 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10523
10524         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
10525         Avoid assert on generic types.
10526
10527 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
10528
10529         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
10530
10531         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
10532
10533         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
10534         function to convert a MarshalSpec structure to its managed counterpart.
10535
10536         * reflection.c: Fix warnings.
10537         
10538         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
10539         field.
10540
10541         * icall.c (mono_create_icall_signature): Fix build.
10542
10543 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
10544
10545         * icall.c: Add MakePointType icall.
10546
10547         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
10548         warnings.
10549
10550 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10551
10552         * threadpool.c: reuse allocated slots in the queue.
10553
10554 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
10555
10556         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
10557
10558         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
10559
10560         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
10561         previous change.
10562
10563         * tabledefs.h: Add constants for pinvoke attributes BestFit and
10564         ThrowOnUnmappableChar.
10565
10566         * icall.c (ves_icall_Type_GetPacking): New icall.
10567
10568 2004-09-24  Martin Baulig  <martin@ximian.com>
10569
10570         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
10571
10572 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10573
10574         * appdomain.c:
10575         (mono_domain_set): allow setting a domain that is being unloaded.
10576         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
10577         being unloaded.
10578
10579 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10580
10581         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
10582         the GetCustomAttributes icall.
10583
10584 2004-09-23  Martin Baulig  <martin@ximian.com>
10585
10586         * object-internals.h (MonoReflectionGenericParam): Replaced
10587         'has_ctor_constraint', `has_reference_type' and `has_value_type'
10588         with `guint32 attrs'.
10589
10590 2004-09-23  Martin Baulig  <martin@ximian.com>
10591
10592         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
10593
10594 2004-09-23  Martin Baulig  <martin@ximian.com>
10595
10596         * object-internals.h (GenericParameterAttributes): New enum.
10597
10598 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10599
10600         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
10601         
10602         * class.c (init_events): Fill out event->other field.
10603
10604         * class.c: Fix warnings.
10605
10606         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
10607
10608 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
10609
10610         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
10611         walk which doesn't supply the IL offset.
10612
10613 2004-09-22  Martin Baulig  <martin@ximian.com>
10614
10615         * reflection.c (mono_reflection_setup_internal_class): If we're
10616         System.ValueType, System.Object or System.Enum, set
10617         `klass->instance_size' and create the vtable.
10618         (mono_reflection_create_internal_class): If we're an enum type,
10619         get the base class from our current corlib.
10620
10621 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
10622
10623         * reflection.h (MonoResolveTokenError): New type.
10624
10625         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
10626         icall.
10627
10628         * icall.c: Add an 'error' argument to the ResolveToken icalls.
10629
10630 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
10631
10632         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
10633         Support also calling constructors, but only for already allocated objects.
10634
10635 2004-09-17  Geoff Norton <gnorton@customerdna.com>
10636
10637         * reflection.c (type_get_qualified_name): If the klass is null
10638         return the typename to avoid a NullRefEx.
10639         (encode_cattr_value): Get the qualified name of the boxed type,
10640         not the underlying enumtype.  Fixes #62984.
10641
10642 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
10643
10644         * marshal.c: Fix problems with previous checkin.
10645
10646 2004-09-21    <vargaz@freemail.hu>
10647
10648         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
10649         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
10650
10651         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
10652
10653 2004-09-21  Geoff Norton <gnorton@customerdna.com>
10654
10655         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
10656         should only return a type for pointers, arrays, and passbyref types.
10657         Fixes bug #63841.
10658
10659 2004-09-21  Martin Baulig  <martin@ximian.com>
10660
10661         * domain.c (mono_debugger_check_runtime_version): New public
10662         function.
10663
10664         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
10665
10666 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
10667
10668         * reflection.c: Added missing sort to the declarative security 
10669         attributes table. MS implementation stops seeing the attributes if the
10670         token number regress in the table (as shown by ildasm and permview).
10671
10672 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
10673
10674         * object-internals.h (MonoReflectionModule): Add 'token' field.
10675         
10676         * reflection.c (mono_reflection_get_token): Add support for Module
10677         and Assembly.
10678         (mono_module_get_object): Set 'token' field.
10679         (mono_module_file_get_object): Set 'token' field.
10680
10681         * icall.c: Add new Assembly and Module icalls.
10682
10683         * appdomain.c: Bump corlib version.
10684
10685 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
10686
10687         * loader.h loader.c class.h class.c: Add helper functions for obtaining
10688         tokens of metadata objects.
10689
10690         * reflection.h reflection.c (mono_reflection_get_token): New function
10691         to obtain the token of a metadata object.
10692
10693         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
10694
10695 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
10696
10697         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
10698         
10699         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
10700
10701 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
10702
10703         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
10704         * object-internals.h: Added 3 MonoArray* members to MonoReflection
10705         AssemblyBuilder to access the permissions set in the class lib.
10706         * reflection.c: Added security attributes encoding step in 
10707         mono_image_build_metadata.
10708         * tabledefs.h: Added new security actions defined in 2.0:
10709         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
10710
10711 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10712
10713         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
10714         macro parameter.
10715
10716 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10717  
10718         * locales.c: nullify the ICU_collator member of CompareInfo when it is
10719           finalized. There where random SIGSEVs at program termination, when
10720           an object being finalized was trying to do a string comparison and
10721           the current culture was already finalized.
10722  
10723 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10724
10725         * threads.c: call thread_cleanup before finishing the thread if we get
10726         there.
10727
10728 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
10729
10730         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
10731         assemblies from the parent. Fixes #65665.
10732
10733 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
10734
10735         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
10736         modifiers.
10737
10738 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
10739
10740         * reflection.h: add prototype for mono_get_dbnull_object
10741         * reflection.c: add prototypes for get_default_param_value_blobs 
10742         and mono_get_object_from_blob for fussier compilers
10743
10744 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
10745  
10746         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
10747         false deadlock checks in class initialization.
10748  
10749 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
10750
10751         * image.c (mono_image_addref): Fix comment.
10752
10753         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
10754         possible.
10755
10756 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
10757
10758         * reflection.c (mono_param_get_objects): Modified to return
10759         ParameterInfo.DefaultValue object.
10760
10761         (get_default_param_value_blobs):
10762         (mono_get_object_from_blob):
10763         (mono_get_dbnull_object): New helper routines. 
10764
10765         * object.c (mono_get_constant_value_from_blob): New helper routine
10766         carved out from get_default_field_value ()
10767
10768         * object-internals.h (mono_get_constant_value_from_blob): Added
10769         function declaration.
10770
10771 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
10772
10773         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
10774         referenced assemblies. Fixes #62135.
10775
10776         * exception.h exception.c (mono_get_exception_file_not_found2): New
10777         helper function.
10778
10779 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
10780
10781         * class.h class.c: Add mono_type_get_underlying_type ().
10782
10783 2004-09-09  Geoff Norton <gnorton@customerndna.com>
10784
10785         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
10786         Fix GetTypes() to support dynamically created assemblies.
10787
10788 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
10789
10790         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
10791         
10792         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
10793         previous patch.
10794
10795         * reflection.h reflection.c loader.c: Allow dynamic construction of
10796         pinvoke methods. Fixes #65571.
10797         
10798         * reflection.c (mono_reflection_get_type): Revert previous change since
10799         it causes regressions.
10800
10801 2004-09-08  Martin Baulig  <martin@ximian.com>
10802
10803         * class.c (class_compute_field_layout): Don't call
10804         mono_class_layout_fields() for open generic instances.
10805
10806 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
10807         * threads.c appdomain.c: fix typo in GC macro
10808
10809 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10810
10811         * threads.c: don't call mono_thread_detach() in start_wrapper(),
10812         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
10813
10814 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
10815
10816         * image.c (mono_image_close): Applied patch from 
10817         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
10818         assembly is loaded multiple times from data.
10819         
10820         * image.c (mono_image_open): Fix warning.
10821
10822 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10823
10824         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
10825         once. Fixes #58334.
10826         
10827         * reflection.c (mono_reflection_create_runtime_class): Initialize
10828         klass->nested_classes. Fixes #61224.
10829
10830 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
10831
10832         * threads.c: sched_yield() on exit, to allow threads to quit.
10833
10834 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10835
10836         * object.c (mono_unhandled_exception): Remove leftover debug code.
10837
10838 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
10839
10840         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
10841
10842 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10843
10844         * marshal.c (emit_marshal_array): Really null terminate string arrays.
10845         
10846         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
10847
10848 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10849
10850         * marshal.c (emit_marshal_array): Null terminate string arrays.
10851         
10852         * marshal.c (raise_auto_layout_exception): Fix warning.
10853
10854         * reflection.c (mono_param_get_objects): Initialize the default value
10855         with DBNull.Value, not null. Fixes #62123.
10856
10857 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
10858
10859         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
10860         throw an exception with a cute explanation.
10861
10862 2004-09-06  Dick Porter  <dick@ximian.com>
10863
10864         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
10865         Close the new process's thread handle, as we don't use it.  The
10866         handle stays around forever otherwise.
10867
10868 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10869
10870         * object.c (arith_overflow): Fix warning.
10871
10872         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
10873         calling conventions in method refs. Fixes #65352.
10874
10875         * reflection.c: Fix warnings.
10876
10877 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
10878
10879         * icall.c: Add a new icall for Array.Clear
10880
10881 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
10882
10883         * object.c: When allocating an array, we have to throw
10884         an overflow exception if any of the lengths are < 0.
10885
10886 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10887
10888         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
10889         properly. Also move implementation of string array marshalling to 
10890         managed code. Fixes #42316.
10891
10892 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10893
10894         * assembly.c: provide more information when loading an assembly fails.
10895
10896 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10897
10898         * filewatcher.c: don't expect the development fam package to be
10899         installed.
10900
10901 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
10902
10903         * marshal.c: Make a copy of the signature cookie since it will be
10904         freed by the caller.
10905         
10906         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
10907
10908         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
10909
10910         * metadata.c (mono_metadata_free_marshal_spec): New function to free
10911         marshal specs.
10912
10913         * marshal.c: More refactoring.
10914         
10915         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
10916         smaller functions.
10917
10918 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
10919
10920         * object.c: In mono_message_invoke, fill the output parameter array after
10921           calling the managed method (it was done before the call). This fixes
10922           bug #59299.
10923
10924 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
10925
10926         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
10927         as well.
10928
10929 2004-09-02  Martin Baulig  <martin@ximian.com>
10930
10931         * class.c (mono_class_instance_size): Don't allow generic type
10932         definitions or open generic instances.
10933         (mono_class_array_element_size): If we're a value type, call
10934         mono_class_instance_size() on the original class.
10935
10936         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
10937         handle generic instances.
10938
10939         * mono-debug-debugger.c (write_type): Handle generic instances
10940         like classes.
10941
10942 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
10943
10944         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
10945         the allocation request fails. Fixes #65089.
10946
10947         * object.c (mono_runtime_free_method): Do not call mono_free_method.
10948         
10949         * object.c (mono_runtime_free_method): New function to free a dynamic
10950         method.
10951
10952         * marshal.c (mono_delegate_free_ftnptr): New function to free the
10953         delegate trampoline.
10954
10955         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
10956         with hasthis as dynamic,
10957
10958         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
10959
10960         * domain.c (mono_jit_info_table_remove): New function to remove an
10961         entry from the jit info table.
10962
10963         * class-internals.h (MonoMethod): Add 'dynamic' field.
10964
10965         * loader.c: Fix warnings.
10966
10967 2004-09-01  Martin Baulig  <martin@ximian.com>
10968
10969         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
10970         instead of mono_debugger_lock() because the latter one is a no-op
10971         unless running in the debugger.
10972
10973 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
10974
10975         * class.c (class_compute_field_layout): Classes with auto-layout or
10976         reference fields are not blittable.
10977         
10978 2004-09-01  Dick Porter  <dick@ximian.com>
10979
10980         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
10981         mono_image_get_filename() to get the assembly location.
10982
10983         * icall.c:
10984         * metadata.h: Fix compile warnings
10985
10986 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
10987
10988         * class.c (class_compute_field_layout): System.Object is blittable.
10989
10990         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
10991         as in/out. Fixes #59909.
10992
10993 2004-09-01  Martin Baulig  <martin@ximian.com>
10994
10995         * metadata.h (MONO_TYPE_ISREFERENCE): Call
10996         mono_metadata_generic_inst_is_valuetype() if we're a generic
10997         instance to check whether our underlying type is a reference type.
10998
10999 2004-09-01  Martin Baulig  <martin@ximian.com>
11000
11001         * metadata.c (mono_type_size): If we're a generic instance, call
11002         mono_class_value_size() for value types.
11003
11004 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
11005
11006         * marshal.c: Implement more custom marshalling functionality. Fixes
11007         #64915.
11008
11009 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11010
11011         * mono-debug.c, debug-mono-symfile.c: add some locking love.
11012
11013 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
11014
11015         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
11016
11017         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
11018
11019         * icall.c: Fix some warnings.
11020
11021         * threads.c (abort_appdomain_thread): Fix unref errors.
11022         (mono_thread_current): Fix THREAD_DEBUG define.
11023
11024 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
11025
11026         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
11027
11028         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
11029
11030 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
11031
11032         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
11033         string arrays.
11034
11035 2004-08-28  Martin Baulig  <martin@ximian.com>
11036
11037         * metadata.c
11038         (mono_metadata_generic_inst_is_valuetype): New public function.
11039
11040         * metadata.h (MONO_TYPE_ISSTRUCT): Call
11041         mono_metadata_generic_inst_is_valuetype() if we're a generic
11042         instance to check whether our underlying type is a valuetype.
11043
11044 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
11045
11046         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
11047         #63768.
11048
11049 2004-08-25  Martin Baulig  <martin@ximian.com>
11050
11051         * loader.c (mono_get_method_from_token): Abstract methods can also
11052         be generic and thus have type parameters.
11053
11054         * metadata-internals.h
11055         (MonoDynamicImage): Added `GPtrArray *gen_params'.
11056
11057         * reflection.c (mono_image_get_generic_param_info): Don't create a
11058         metadata row, just add an entry to the `gen_params' array.
11059         (build_compressed_metadata): Sort the `gen_params' array and then
11060         actually create the metadata.
11061
11062 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11063
11064         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
11065
11066 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
11067
11068         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
11069
11070 2004-08-24  Martin Baulig  <martin@ximian.com>
11071
11072         * class.cs (mono_class_is_subclass_of): Like an interface, a
11073         generic instance also derives from System.Object.
11074
11075 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
11076
11077         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
11078         custom modifiers to be in any order. Fixes #61990.
11079
11080 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
11081
11082         * object.c: Register mono_object_new_fast icall.
11083         
11084         * object.c (mono_class_get_allocation_ftn): Return to calling
11085         mono_object_new_fast, since it seems faster to compute the object 
11086         size in unmanaged code than passing it as a parameter.
11087
11088         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
11089
11090         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
11091         this function with Boehm as the oom handler, so we don't have to check
11092         the result of GC_malloc.
11093
11094         * object.c: Remove checks for oom.
11095
11096         * object.h object.c (mono_class_get_allocation_ftn): New function to
11097         return the icall which can be used to allocate an instance of a given
11098         class. 
11099
11100         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
11101
11102         * class-internals.h: Add 'enabled' field.
11103
11104 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
11105
11106         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
11107
11108 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
11109         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
11110         value 0x0010.
11111
11112 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
11113
11114         * appdomain.c: use the Tls function for appdomain too,
11115         at Zoltan's request. Actually return in mono_context_get
11116
11117         * appdomain.c, profiler.c, threads.c: use __thread
11118
11119 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
11120
11121         * appdomain.c threads.c: Call GC_CreateThread on windows.
11122
11123         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
11124         multiple libraries since this don't work on windows.
11125
11126 2004-08-18  Martin Baulig  <martin@ximian.com>
11127
11128         * class-internals.h
11129         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
11130         MonoMethodHeader.
11131
11132         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
11133         MonoMethodNormal since we also need it for abstract and interface
11134         methods.
11135
11136         * reflection.c
11137         (build_compressed_metadata): Sort the GenericParam table.
11138         (mono_image_create_token): Added `gboolean create_methodspec'
11139         argument; this is false when generating a MethodImpl token.
11140         (reflection_methodbuilder_to_mono_method): Abstract and interface
11141         methods may also have generic parameters.
11142
11143 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
11144
11145         * appdomain.c: thread local alloc
11146
11147 2004-08-17  Martin Baulig  <martin@ximian.com>
11148
11149         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
11150
11151         * icall.c
11152         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
11153         argument.
11154
11155         * class.c (mono_type_get_full_name): New public function.
11156         (mono_type_get_name): Don't include the type arguments.
11157
11158 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
11159
11160         * Makefile.am: Build static versions of libmetadata and libmonoruntime
11161         for inclusion into the mono executable.
11162
11163 2004-08-16  Martin Baulig  <martin@ximian.com>
11164
11165         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
11166         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
11167
11168 2004-08-14  Martin Baulig  <martin@ximian.com>
11169
11170         * class.c (dup_type): Also copy the `byref' field.
11171
11172 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
11173
11174         * reflection.c (create_dynamic_mono_image): Revert the last change 
11175         since it breaks bootstrap.
11176
11177 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
11178
11179         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
11180
11181         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
11182         not free them with g_free.
11183
11184 2004-08-11  Martin Baulig  <martin@ximian.com>
11185
11186         * reflection.c (mono_reflection_setup_internal_class): Also call
11187         mono_class_setup_mono_type() if we already have a `tb->type.type'.
11188
11189 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
11190
11191         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
11192         called during default (first) AppDomain creation. Keep track of
11193         Evidence when loading assemblies.
11194
11195 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11196
11197         * opcodes.c, opcodes.h: reduce runtime relocations.
11198
11199 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
11200
11201         * culture-info.h, locales.c: fixes and chages to sue the new
11202         optimized format of the locale data.
11203         * culture-info-tables.h: regenerated.
11204
11205 2004-08-06  Geoff Norton <gnorton@customerdna.com>
11206         
11207         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
11208
11209 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
11210
11211         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
11212         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
11213         * domain-internals.h: icall declaration.
11214         * icall.c: icall registration.
11215         * object-internals.h: New fields in MonoAssembly for CAS.
11216
11217 2004-08-05  Duncan Mak  <duncan@ximian.com>
11218
11219         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
11220         CEE_LDELEM_ANY.
11221
11222 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11223
11224         * reflection.c: fix to deal with object[] arrays in custom ctors
11225         (bug #62550).
11226
11227 2004-08-05  Martin Baulig  <martin@ximian.com>
11228
11229         * class.c (mono_class_array_element_size): Added support for
11230         generic instances and correctly handle "recursive" types.
11231
11232 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11233
11234         * assembly.c: Fix warnings.
11235
11236 2004-08-04  Martin Baulig  <martin@ximian.com>
11237
11238         * class.c
11239         (mono_type_get_name_recurse): Added `gboolean include_arity'
11240         argument specifying whether or not we should include the generic
11241         arity in the type name.
11242         (_mono_type_get_name): New static function.
11243         (mono_class_setup_vtable): If we're a generic instance, don't
11244         include the generic arity in the names of explicit method
11245         implementations.        
11246
11247 2004-08-03  Martin Baulig  <martin@ximian.com>
11248
11249         * class.c (mono_type_get_name_recurse): Enclose the generic type
11250         arguments in `<', '>'.
11251
11252 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11253
11254         * gc.c: make GC warning messages use the trace API, they are just
11255         noise to most of the users.
11256
11257 2004-08-03  Martin Baulig  <martin@ximian.com>
11258
11259         * debug-mono-symfile.c (read_string): Correctly read the string.
11260
11261 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11262
11263         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11264         
11265         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11266         icalls.
11267         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11268
11269 2004-07-30  Martin Baulig  <martin@ximian.com>
11270
11271         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11272         Reflect latest symbol writer changes.   
11273
11274 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11275
11276         * object.c: always create an object if null is passed
11277         to Invoke() where a valuetype is expected.
11278
11279 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11280
11281         * marshal.c (mono_marshal_init): make managed
11282         signatures match native ones better for 64bits.
11283
11284 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11285
11286         * appdomain.c: hack to build correctly the private bin path on windows.
11287         Fixes bug #61991.
11288
11289 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11290
11291         * assembly.c: Load mscorlib from the correct framework directory
11292           (mono/<version>/mscorlib.dll).
11293         * appdomain.h: Added prototypes for new functions.
11294         * internals.h: Added some prototypes.
11295         * domain.c: When initializing the runtime, get from the executable and
11296           the configuration files the runtime version that the app supports.
11297           Added support methods for reading app.exe.config. Added list of versions
11298           supported by the JIT. Added two new methods: mono_init_from_assembly,
11299           which initializes the runtime and determines the required version from
11300           the provided exe file, and mono_init_version, which initializes
11301           the runtime using the provided version.
11302         * icall.c: Get machine.config from version-specific directory.
11303         * reflection.c: When generating an image, embed the version number
11304           of the current runtime.
11305
11306 2004-07-28  Dick Porter  <dick@ximian.com>
11307
11308         * socket-io.c
11309         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11310         returned sockaddr size before creating the remote address object.
11311         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11312         61608.
11313
11314 2004-07-28  Dick Porter  <dick@ximian.com>
11315
11316         * locales.c (string_invariant_compare_char): Fix invariant char
11317         compares between upper and lower cases.  Fixes bug 61458.
11318
11319 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11320         
11321         * marshal.c: actually cache stelem.ref wrappers.
11322         
11323 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11324
11325         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11326         sections and remove the mono_cli_rva_map () function.
11327
11328 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11329
11330         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11331         by Geoff Norton (<gnorton@customerdna.com>).
11332
11333 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11334
11335         * class.c: fix class loads for pointer types (typeof(int) !=
11336         typeof(int*)).
11337
11338 2004-07-27  Martin Baulig  <martin@ximian.com>
11339
11340         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11341         reading the debugging information from an external ".mdb" file.
11342
11343 2004-07-24  Martin Baulig  <martin@ximian.com>
11344
11345         * reflection.c (mono_image_get_type_info): Only write a class
11346         layout entry if we actually have a size or a packing size.
11347
11348 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11349
11350         * reflection.c (type_get_fully_qualified_name): 
11351         insert cast to get type checking of ?: with non-gcc compilers
11352
11353 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11354
11355         * rand.c: use g_getenv for both lookups of
11356         MONO_EGD_SOCKET
11357
11358 2004-07-17  Martin Baulig  <martin@ximian.com>
11359
11360         * reflection.c (mono_reflection_bind_generic_method_parameters):
11361         Set `gmethod->reflection_info'.
11362
11363 2004-07-17  Martin Baulig  <martin@ximian.com>
11364
11365         * class.c (mono_class_create_from_typedef): Insert the newly
11366         created class into the hash table before computing the interfaces
11367         since we could be called recursively.
11368
11369 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11370
11371         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11372         function to implement stelem.ref in managed code
11373         * class-internals.h, debug-helpers.c: a new wrapper type
11374         for the above.
11375
11376 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11377
11378         * gc.c: allow GC handles to work even when no GC is compiled in.
11379         Fix part of bug #61134 (GetAddrOfPinnedObject).
11380
11381 2004-07-13  Peter Williams  <peter@newton.cx>
11382  
11383         * process.c (complete_path): Make sure we don't attempt to execute
11384         directories.
11385  
11386 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11387
11388         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11389           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11390           and will add/subtract the hour if needed
11391
11392 2004-07-12  Martin Baulig  <martin@ximian.com>
11393
11394         * reflection.c (mono_field_get_object): If we have
11395         `field->generic_info', take the attributes from
11396         `field->generic_info->generic_type'.    
11397
11398 2004-07-12  Martin Baulig  <martin@ximian.com>
11399
11400         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11401         This function must be called before initializing the runtime.
11402         (mono_debug_init_1): New function; call this after initializing
11403         the runtime, but before loading the assembly.  It tells the
11404         debugger to load corlib and the builtin types.
11405
11406         * mono-debug-debugger.c: Did some larger changes in the debugging
11407         code; support recursive class declarations, make sure we actually
11408         add all classes.
11409
11410 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11411
11412         * debug-helpers.c: undo my previous patch and fixed the real issue in
11413         ../mini/exceptions-x86.c
11414
11415 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11416
11417         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11418         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11419         called from other .cctors.
11420
11421 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11422
11423         * loader.c: Removed the mono_loader_wine_init hack now that we are
11424         doing a managed version of Windows.Forms.
11425
11426 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11427
11428         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11429         threadpool.c, threads.c: remove static data from rootset.
11430
11431 2004-07-09  Dick Porter  <dick@ximian.com>
11432
11433         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11434         Don't do any more processing if the matched length was 0.  It was
11435         increasing the size of the string before.  Fixes bug 61167.
11436
11437 2004-07-09  Dick Porter  <dick@ximian.com>
11438
11439         * socket-io.h:
11440         * socket-io.c
11441         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11442         Add support for SO_PEERCRED if its available.
11443
11444 2004-07-09  Peter Bartok <pbartok@novell.com>
11445         * loader.c: winelib.exe.so error message is now only displayed if
11446         MONO_DEBUG is set. To help us avoid questions when people are trying
11447         out the new Managed.Windows.Forms.
11448
11449 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11450
11451         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11452         for isinst and castclass wrappers.
11453
11454         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11455         to libmetadata from the JIT, so they could be used by the marshalling
11456         code and the interpreter.
11457
11458         * marshal.c: Register marshalling related JIT icalls here instead of
11459         in mini.c. Use CEE_MONO_ICALL instead of the family of 
11460         CEE_MONO_PROC<x> opcodes to call marshalling functions.
11461
11462         * metadata.h: Remove unneeded marshalling conversions.
11463
11464         * opcodes.c: Update for new opcodes.
11465         
11466 2004-07-08  Martin Baulig  <martin@ximian.com>
11467
11468         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
11469         (mono_debug_get_domain_data): Make this function static.
11470
11471 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11472
11473         * gc.c, object.h: add nice GC handle API for embedders.
11474
11475 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
11476
11477         * reflection.c: more changes for the new api
11478
11479         * object.c: When we reflect on a field w/ a constant value, it
11480         will not have a memory location, so we must access metadata. Also,
11481         allow easier reading of strings so that we can read them from
11482         the constant data.
11483
11484         * class.c (mono_class_layout_fields): no need for literal fields here.
11485
11486         * class-internals.h: api changes for const fields
11487
11488         * icall.c (ves_icall_get_enum_info): use new apis for const fields
11489
11490 2004-07-06  Martin Baulig  <martin@ximian.com>
11491
11492         * mono-debug.h: Increment version number to 44.
11493
11494         * mono-debug.c (mono_debug_add_wrapper): The second argument is
11495         now a gpointer, rewrote this whole method.
11496
11497         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
11498         function.  Add information about the wrapper in a new "misc table".
11499
11500         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
11501         for the new misc table.
11502
11503 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
11504
11505         * metadata-internals.h image.c: Add a cache for helper signatures.
11506
11507         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
11508
11509 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
11510
11511         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
11512         delegates from a delegate. Fixes #61033.
11513         
11514         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
11515         marshalling of stringbuilder arrays. Fixes #59900.
11516
11517 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
11518
11519         * icall.c: Add EnumBuilder:setup_enum_type icall.
11520
11521 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
11522
11523         * icall.c: Added a new icall for the property version of
11524         OffsetOfStringData.
11525
11526 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
11527
11528         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
11529         it has a constant size across platforms.
11530
11531         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
11532         stack trace.
11533
11534 2004-06-29  Martin Baulig  <martin@ximian.com>
11535
11536         * mono-debug.c (mono_debug_add_method): Protect the whole function
11537         in mono_debugger_lock(), not just parts of it.
11538
11539 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11540
11541         * reflection.c: make sure padding bytes in heaps are zeroed.
11542
11543 2004-06-24  David Waite  <mass@akuma.org>
11544
11545         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
11546         image.c, loader.c, locales.c, marshal.c, metadata.c,
11547         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
11548         string-icalls.c, threads.c: change to C90-style comments from C99 /
11549         C++ -style
11550
11551 2004-06-24  Dick Porter  <dick@ximian.com>
11552
11553         * threads.c
11554         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
11555         return createdNew.  Fixes bug 60412.
11556
11557         * threads-types.h: 
11558         * icall.c: Add createdNew parameter to CreateMutex icall
11559
11560 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11561
11562         * reflection.c, object-internals.h: save default value in params.
11563
11564 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11565
11566         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
11567         no need to build a new path combining that with the application base.
11568         Fixes bug #60442.
11569
11570 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
11571
11572         * reflection.c: fixed minor standard compliance issues.
11573
11574 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11575
11576         * reflection.c: fixed issue with encoding some custom attributes
11577         (arrays in properties and fields, bug #60411).
11578
11579 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11580
11581         * reflection.c: fix start address when copying the public key token.
11582
11583 2004-06-23  Martin Baulig  <martin@ximian.com>
11584
11585         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
11586         the `exc' object in a static object to put it into the GC's root set.
11587
11588 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
11589
11590         * reflection.c: make mono_reflection_setup_internal_class ()
11591         callable a second time to setup a new parent class.
11592
11593 2004-06-23  Dick Porter  <dick@ximian.com>
11594
11595         * threads.c: Check for WAIT_IO_COMPLETION return values.
11596
11597 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
11598
11599         * appdomain.c: Removed the g_free on the public key token. Now copy 
11600         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
11601         * assembly.c: Added public key token string value when loading 
11602         assemblies. Fix bug #60439.
11603         * icall.c: Added missing informations (like public key) in 
11604         GetReferencedAssemblies. Fix #60519.
11605         * image.h: Changed definition for public key token from const char*
11606         public_tok_value to guchar public_key_token [17];
11607         * reflection.c: Updated for changes to public key token.
11608
11609 2004-06-22  Lluis Sanchez Gual
11610
11611         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
11612         for the field in base classes.
11613
11614 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11615
11616         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
11617         mark headers as not supported, they are installed only for use by the
11618         debugger.
11619
11620 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
11621
11622         * *.c, *.h: avoid namespace pollution in public headers.
11623
11624 2004-06-21  Martin Baulig  <martin@ximian.com>
11625
11626         * exception.c (mono_get_exception_security): It's in
11627         "System.Security", not in "System".
11628
11629         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
11630         the exception classes.
11631
11632 2004-06-21  Martin Baulig  <martin@ximian.com>
11633
11634         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
11635         Protect the exception object from being finalized.
11636
11637 2004-06-21  Martin Baulig  <martin@ximian.com>
11638
11639         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
11640         public function.
11641
11642 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
11643
11644         * reflection.c: Load the assembly in mono_reflection_type_from_name,
11645         if it was not loaded before. Fix parts of #60439.
11646
11647 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
11648
11649         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
11650         code that was broken since Ben's change: wrappers are now
11651         dependent on the method signature only again.
11652
11653 2004-06-21  Martin Baulig  <martin@ximian.com>
11654
11655         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
11656         added interface support.
11657
11658 2004-06-21  Martin Baulig  <martin@ximian.com>
11659
11660         * class.c (mono_vtable_get_static_field_data): New public method.
11661
11662 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
11663
11664         * filewatcher.c : Windows build fix to be compliant with API changes.
11665
11666 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11667
11668         * class.h, class.c: more accessors.
11669         * metadata.h, metadata.c: prepare for hiding MonoType and
11670         MonoMethodSignature: people should use the accessors from now on
11671         outside of the tree.
11672
11673 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11674
11675         * *.c, *.h: more API cleanups.
11676
11677 2004-06-18  Jackson Harper  <jackson@ximian.com>
11678
11679         * assembly.c: Trace loading assemblies.
11680         * loader.c: Trace loading native libraries.
11681         * mono-config.c: Trace loading config files.
11682         
11683 2004-06-18  Dick Porter  <dick@ximian.com>
11684
11685         * locales.c: Tell ICU the lengths of strings, it can cope with
11686         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
11687
11688 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
11689
11690         * image.c: swapped name/filename;
11691
11692 2004-06-18  Martin Baulig  <martin@ximian.com>
11693
11694         * mono-debug-debugger.c (write_class): Write the parent class at
11695         the end of the header.
11696
11697 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11698
11699         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
11700
11701 2004-06-17  Raja R Harinath  <rharinath@novell.com>
11702
11703         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
11704         (bundle_obj): New conditional define.
11705         (BUILT_SOURCES): Remove.
11706         ($(bundle_srcs)): Make parallel-make safe.
11707         (libmonoruntime_la_LIBADD): Make unconditional.
11708         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
11709         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
11710
11711 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
11712
11713         * culture-info-tables.h: It was inconsistent with the latest
11714           supp info files.
11715
11716 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
11717
11718         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
11719         be loaded.
11720
11721         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
11722         with gcc 2.95.
11723
11724 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11725
11726         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
11727         cleaned up public header threads.h.
11728
11729 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11730
11731         * Makefile.am, *.c, *.h: more API cleanups.
11732
11733 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
11734
11735         * Makefile.am: removed monosn from compilation.
11736         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
11737         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
11738         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
11739         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
11740         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
11741         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
11742
11743 2004-06-15  Jackson Harper  <jackson@ximian.com>
11744
11745         * assembly.c: Make locales lower case when searching the GAC for
11746         assemblies. gacutil will always make locales lowercase when
11747         installing so this effectively makes them case insensitive.
11748         
11749 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
11750
11751         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
11752         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
11753           parameter which allows to choose whether the wait can be interrupted or 
11754           not. Also added the method mono_monitor_enter(), which locks the monitor
11755           using an infinite wait and without allowing interruption.
11756           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
11757           interrupted.
11758         * object.h: Added new fields in MonoThread. suspend_event holds the event
11759           used to susped/resume the thread. synch_lock is the lock object to use for
11760           modifying the thread state.
11761         * threads.c: Use the new synch_lock object for locking, instead of "this",
11762           which can generate deadlocks.
11763           Moved thread state change in Thread.Sleep and Thread.Join from managed
11764           to unmanaged code. This avoids a deadlock when the thread was suspended
11765           just after acquiring the thread lock.
11766           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
11767           Implemented Thread.Suspend using an event instead of ThreadSuspend,
11768           which is not fully implemented in the io-layer.
11769         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
11770
11771 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
11772
11773         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
11774         threads-types.h: more API cleanups.
11775
11776 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11777
11778         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
11779         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
11780         threadpool.c, threads.c: first pass at the exported API cleanup.
11781
11782 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
11783
11784         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
11785
11786 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11787
11788         * icall.c: added internalGetHome.
11789
11790 2004-06-14  Dick Porter  <dick@ximian.com>
11791
11792         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
11793         possible to return successfully when '.' or '..' were the only
11794         entries in a directory, but were skipped.  The MonoIOStat was not
11795         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
11796         Fixes bug 59574.
11797
11798 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11799
11800         * reflection.c: make binaries run on .Net 1.1 by default.
11801
11802 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11803
11804         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
11805
11806 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
11807
11808         * marshal.c: keep track of struct size with explicit layout
11809         (bug #59979).
11810
11811 2004-06-12  Martin Baulig  <martin@ximian.com>
11812
11813         * mono-debug-debugger.c: Comment out a debugging g_message().
11814
11815 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11816
11817         * reflection.c, reflection.h: do not free custom attrs that are cached.
11818         * icall.c: use braces to make code clearer.
11819
11820 2004-06-11  Martin Baulig  <martin@ximian.com>
11821
11822         * class.h (MonoInflatedField): New type.
11823         (MonoClassField): Replaced `MonoType *generic_type' with
11824         `MonoInflatedField *generic_info'.
11825
11826         * icall.c
11827         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
11828
11829 2004-06-11  Martin Baulig  <martin@ximian.com>
11830
11831         * reflection.c (mono_image_create_method_token): Correctly encode
11832         varargs methods.
11833
11834 2004-06-11  Martin Baulig  <martin@ximian.com>
11835
11836         * metadata.c (mono_metadata_parse_method_signature): When parsing
11837         a MethodDef which has VarArgs, also set sentinelpos if we don't
11838         have any parameters.
11839
11840 2004-06-11  Martin Baulig  <martin@ximian.com>
11841
11842         * verify.c (mono_method_verify): In CEE_CALL, use
11843         mono_method_get_signature() to get the method's signature, unless
11844         we're a PInvoke method.
11845
11846 2004-06-10  Jackson Harper  <jackson@ximian.com>
11847
11848         * assembly.c: Use <path>/lib/mono/gac for the extra paths
11849         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
11850         logical name as the supplied path is just a prefix to the gac not
11851         the direct path to it.
11852         
11853 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
11854
11855         * reflection.c: make the token for a created method match
11856         the token of the MethodBuilder it was created from
11857         (IKVM requires this behaviour now).
11858
11859 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
11860
11861         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
11862         reflection.c, socket-io.c: leak fixes.
11863
11864 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
11865
11866         * icall.c: handle sentinel pos in vararg methods in position different
11867         from 0.
11868
11869 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11870
11871         * culture-info-tables.h: freshly generated.
11872
11873 2004-06-09  Martin Baulig  <martin@ximian.com>
11874
11875         * loader.c (mono_get_method_constrained): Call `mono_class_init
11876         (constrained_class)'.   
11877
11878 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
11879
11880         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
11881         any methods. Fixes #59629.
11882
11883 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11884
11885         * culture-info-tables.h: reflecting locale-builder updates.
11886
11887 2004-06-08  Dick Porter  <dick@ximian.com>
11888
11889         * object.h:
11890         * locales.c: Fixed compile warnings, including a real bug in
11891         CompareInfo_internal_compare.
11892         
11893 2004-06-08  Dick Porter  <dick@ximian.com>
11894
11895         * locales.c
11896         (ves_icall_System_Globalization_CompareInfo_internal_index):
11897         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
11898         Double-check the resuls of usearches, because ICU currently
11899         ignores most of the collator settings here.  Fixes bug 59720.
11900         
11901 2004-06-08  Dick Porter  <dick@ximian.com>
11902
11903         * locales.c
11904         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
11905         Fix memory leak and segfault-causing typo.  No idea how this one
11906         lasted so long without being noticed.
11907
11908 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
11909
11910         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
11911         any methods. Fixes #59629.
11912
11913 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11914
11915         * assembly.c:
11916         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
11917         own the critical section before). Removed dead code (that's done
11918         in the preload hook).
11919
11920         (mono_assembly_load_with_partial_name): call the preload hook.
11921
11922 2004-06-08  Martin Baulig  <martin@ximian.com>
11923
11924         * metadata.c (mono_metadata_signature_alloc): Default
11925         `sentinelpos' to -1.
11926
11927         * reflection.c (mono_image_get_array_token): Likewise.
11928
11929 2004-06-08  Martin Baulig  <martin@ximian.com>
11930
11931         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
11932
11933         * metadata.c (mono_metadata_parse_method_signature): When parsing
11934         a MethodDef which has VarArgs, set sentinelpos.
11935
11936         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
11937         `gint16' since we're using -1 for non-varargs methods.
11938
11939         * reflection.c
11940         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
11941         (method_encode_signature): Added varargs support.
11942         (method_builder_encode_signature): Likewise.
11943         (mono_image_get_varargs_method_token): New static method.
11944         (mono_image_create_method_token): New public method; this is
11945         called via an icall instead of mono_image_create_token() when
11946         calling a varargs method.       
11947
11948 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
11949
11950         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
11951
11952 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11953
11954         * culture-info-tables.h : Reflecting the latest locale-builder that
11955           fixed empty array representation ({} to {0}).
11956
11957 2004-06-07  Jackson Harper  <jackson@ximian.com>
11958
11959         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
11960         looking up extra gac paths. This allows MONO_GAC_PATH to act
11961         exactly like a prefix.
11962         
11963 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
11964
11965         * reflection.c (mono_reflection_type_from_name): Make a copy of the
11966         type name before modifying it. Fixes #59405.
11967
11968 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11969
11970         * culture-info.h: added fields for "all datetime patterns".
11971         * locales.c: (  ves_icall_System_Globalization_CultureInfo
11972           _construct_datetime_format ()): fill xxx_patterns fields.
11973         * object.h: added fields for "all datetime patterns" to
11974           MonoDateTimeFormatInfo.
11975         * culture-info-tables.h: reflecting locale-builder updates.
11976
11977 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
11978
11979         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
11980         the event has no add and remove methods. Fixes #59629.
11981
11982 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
11983
11984         * object.c: Fixed possible integer overflow when allocating large
11985         strings.
11986
11987 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
11988
11989         * culture-info-tables.h: reflecting locale-builder updates.
11990
11991 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
11992
11993         * culture-info-tables.h: reflecting locale-builder updates.
11994
11995 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
11996
11997         * culture-info-tables.h: reflecting locale-builder updates.
11998
11999 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
12000
12001         * threads.c: Made Thread.Sleep abortable.
12002
12003 2004-06-02  Martin Baulig  <martin@ximian.com>
12004
12005         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
12006
12007         * debug-mono-symfile.h: Bumped symbol file version number to 37.
12008
12009 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
12010
12011         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
12012
12013 2004-05-30  Jackson Harper  <jackson@ximian.com>
12014
12015         * reflection.c: Do not hardcode assembly versions or public key
12016         tokens anymore. All of this except the corlib section was dead
12017         code anyways.
12018         
12019 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
12020
12021         * object.c (mono_runtime_invoke_array): Automatically create boxed
12022         objects for byref valuetypes if needed. Fixes #59300.
12023         
12024         * object.c (mono_method_return_message_restore): Handle 
12025         MONO_TYPE_OBJECT as well.
12026
12027 2004-05-28  Jackson Harper  <jackson@ximian.com>
12028
12029         * reflection.c: The modified type encoding was causing build
12030         problems. Reverted for now.
12031         
12032 2004-05-28  Jackson Harper  <jackson@ximian.com>
12033
12034         * reflection.c/h: Take an assembly ref so that we dont create
12035         fully qualified names when encoding types in the same assembly as
12036         the custom attribute being emitted.
12037         * appdomain.c: Increment version number.
12038         
12039 2004-05-26  Duncan Mak  <duncan@ximian.com>
12040
12041         * icall.c
12042         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
12043         Set the full version number (major, minor, build, revision).
12044
12045 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
12046
12047         * marshal.c (emit_struct_conv): increment src/dst after blit
12048         (mono_marshal_get_managed_wrapper,
12049         mono_marshal_get_native_wrapper): make sure we have marshalling
12050         info before marshalling params (info computation affects
12051         blittable)
12052
12053         * class.c (class_compute_field_layout): correctly deal with
12054         blittable
12055         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
12056         value types (as per what windows dows by default)
12057         (mono_class_setup_mono_type): System.ValueType is blittable
12058         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
12059         blittable
12060
12061         * marshal.c (mono_marshal_load_type_info): flag types  as
12062         non-blittable if the native layout doesn't match the managed
12063         layout
12064
12065 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12066
12067         * appdomain.c: don't add stuff in the private search path that is
12068         above the application base. If application base is not set, there's
12069         no private search path.
12070
12071 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
12072
12073         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
12074         byref struct arguments in native->managed marshalling.
12075
12076 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
12077
12078         * marshal.c (mono_marshal_get_runtime_invoke): correctly
12079         cache methods using signature (special case for methods
12080         that are value type or string class)
12081         
12082         * image.c (mono_image_close): clean up allocated GSList's
12083         in runtime_invoke_cache.
12084
12085 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12086
12087         * mono-config.c: set the correct path for mono_cfg_dir on windows when
12088         there's no MONO_CFG_DIR environment variable defined.
12089
12090 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12091
12092         * threads.c: windows version must be >= 0x0500 to include OpenThread.
12093
12094 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
12095
12096         * threadpool.c: Really wait for 500ms after the async call, even if the wait
12097           is interrumped.
12098         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
12099           before waiting for it, and call CloseHandle after the wait to unref it.
12100           This will make sure that handles are not disposed too early.
12101
12102 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12103
12104         * appdomain.c:
12105         * appdomain.h:
12106         * icall.c: removed
12107         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
12108         needed now.
12109
12110         * object.c: se the application_base only for the domain that runs
12111         Main. Fixes bug #59216,
12112
12113 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12114
12115         * appdomain.c:
12116         * object.c: only the domain in which Main is run have
12117         SetupInformation.ConfigurationFile set, so moved a few lines from
12118         appdomain.c to object.c.
12119
12120 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12121
12122         * appdomain.c: we tried to load [name].(dll|exe), but according
12123         to bug #57710, we must also try [culture]/[name].(dll|exe) and
12124         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
12125         There's a test case attached to bug #58922.
12126
12127 2004-05-27  Dick Porter  <dick@ximian.com>
12128
12129         * icall.c:
12130         * file-io.c: Implemented icalls for locking and unlocking regions
12131         in a file.
12132         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
12133         FALSE on error (fixes both compiler warning and real bug.)
12134
12135 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
12136
12137         * culture-info-tables.h: reflecting locale-builder updates.
12138
12139           (Added missing ChangeLog entry for 05/26)
12140
12141 2004-05-27  Jackson Harper  <jackson@ximian.com>
12142
12143         * locales.c: Fix some cut and paste errors.
12144         
12145 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12146
12147         * mono-config.c: set the correct path for config. directory on windows.
12148
12149 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12150
12151         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
12152           on win32.
12153
12154 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12155
12156         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
12157         from pinvoke functions.
12158         
12159         * marshal.c (mono_ftnptr_to_delegate): Implement this.
12160
12161 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12162
12163         * culture-info-tables.h: reflecting locale-builder updates.
12164
12165 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12166
12167         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
12168         #59086.
12169
12170 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
12171
12172         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
12173         * icall.c: Modified icalls for RNG.
12174         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
12175         Windows (CryptoAPI).
12176
12177 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12178
12179         * locales.c: Fix build.
12180
12181 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12182
12183         * culture-info-tables.h: reflecting locale-builder updates.
12184
12185 2004-05-25  Jackson Harper  <jackson@ximian.com>
12186
12187         * locales.c: When creating the current culture use the $LANGs
12188         specific culture. So DateTimeFormat and NumberFormat entries are created.
12189         
12190 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12191
12192         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
12193         a char array as parameter.
12194
12195 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
12196
12197         * image.c: In mono_image_open(), always use an absolute path name to
12198           look for already loaded images.
12199
12200 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
12201
12202         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
12203         missing in the windows build (like older cygwin include files).
12204
12205 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
12206
12207         * icall.c: Fixed check for possible integer overflow in Buffer_
12208         BlockCopy icall. Replaced comments style // by /* */.
12209
12210 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
12211
12212         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
12213         
12214         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
12215         check after MONO_VTADDR. Fixes pinvoke2.exe.
12216
12217         * marshal.h marshal.c metadata.h: Add beginnings of support for
12218         ftnptr -> delegate marshalling.
12219
12220 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12221
12222         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12223         * threads.c: Fix warnings.
12224
12225 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12226
12227         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12228         * icall.c: Registered icalls for Suspend and Resume.
12229         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12230           Thread.Abort.
12231         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12232         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12233         * process.c: Use WaitForSingleObjectEx.
12234         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12235           checkpoints.
12236         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12237           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12238           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12239           background threads. Added basic support for Abort in Windows.
12240           Start new threads using a managed delegate invoke wrapper. This wrapper
12241           has an interruption checkpoint that is needed since an interruption
12242           can be requested before the thread leaves the unmanaged code that starts 
12243           the thread.
12244         * marshal.c: Added interruption checkpoint after every native call, and
12245           also before managed calls for wrappers called from unmanaged code to
12246           go into managed code.
12247         * object.h: Added new field in MonoThread to keep track of interruption
12248           requests.
12249
12250 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12251
12252         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12253         calls.
12254
12255 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12256
12257         * appdomain.c:
12258         * assembly.c:
12259         * gc.c:
12260         * locales.c:
12261         * mono-config.c:
12262         * rand.c: getenv -> g_getenv (windows!)
12263
12264         * process.c: complete_path is also used on non-windows platforms.
12265
12266 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12267
12268         * icall.c: new signature for Process_Start.
12269
12270         * process.[ch]: new signature for Process_Start. If we're on windows
12271         and UseShellExecute is false, we have to search for the program by
12272         ourselves if we don't get a full path.
12273
12274 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12275
12276         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12277         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12278
12279 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12280
12281         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12282         Fixes bug #58373.
12283
12284 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12285
12286         * process.c: use double quotes to quote program name and arguments on
12287         windows. Fixes bug #58575.
12288
12289 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12290
12291         * file-io.c: don't return "." and ".." when using windows Find*File.
12292
12293 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12294
12295         * marshal.c: Don't pass wrappers to message init because method 
12296         addressed used to lookup metadata. part of remoting[2|3] fix.
12297
12298 2004-05-15  Jackson Harper  <jackson@ximian.com>
12299
12300         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12301         path is essentially the same as MONO_PATH except that it points to
12302         GACs instead of lib directories.
12303         * loader.h: The user gac is gone so we dont need function to
12304         enable/disable it.
12305         * mono-config.c: user gac option is now gone.
12306         
12307 2004-05-15  Jackson Harper  <jackson@ximian.com>
12308
12309         * culture-info.h: Make defines more consistent, add calendar data
12310         to the culture info table.
12311         * culture-info-tables.h: Add basic calendar data. Basically
12312         everyone gets default gregorian until all the data is
12313         updated.
12314         * locales.c: Use the new consistent defines. Set calendar data for
12315         culture info objects.
12316         * object.h: add a field for calendar data to CultureInfo
12317         
12318 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12319
12320         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12321         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12322         a signature.
12323         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12324         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12325         an extra param that is the pointer of the method to invoke. The IL for
12326         the invoke method is no longer specific to the method, but to the
12327         signature of the method. Thus, we can share the same code for multiple
12328         methods. This reduces the number of methods that have to be compiled.
12329
12330 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12331
12332         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12333
12334         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12335
12336         * icall.c: Optimize Buffer.BlockCopy.
12337
12338 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12339
12340         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12341         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12342         quote). Changed them to "MMMM yyyy".
12343
12344 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12345
12346         * rand.c
12347         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12348
12349 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12350
12351         * reflection.h: Updated after changes to managed structures.
12352
12353         * appdomain.c: Bump corlib version.
12354
12355 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12356
12357         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
12358         windows.
12359
12360 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12361
12362         * Makefile.am: link to ../os/libmonoos.la on windows.
12363
12364         * assembly.c:
12365                 -If MONO_DEBUG, warn about non-existing directories in
12366                 MONO_PATH.
12367                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12368                 compile time variable.
12369                 -Removed init_default_path and call mono_set_rootdir from
12370                 libmonoos.a instead (windows only).
12371
12372         * assembly.h: declare mono_assembly_getrootdir().
12373
12374         * domain.c:
12375         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12376
12377         * loader.c: s/getenv/g_getenv/
12378
12379 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12380
12381         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12382
12383         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12384
12385         * metadata.h: Add new marshalling conversions.
12386
12387         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12388         function.
12389
12390         * reflection.c (mono_reflection_get_type): Lookup the type in all
12391         modules of a multi-module assembly. Fixes #58291.
12392
12393 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12394
12395         * threads.c: Before aborting a background, set the StopRequested
12396         state.  This avoids throwing the Abort exception.
12397         In mono_thread_manage, don't continue with the shutdown until all
12398         aborted threads have actually stopped.
12399
12400 2004-05-10  Jackson Harper  <jackson@ximian.com>
12401
12402         * locales.c: Remove the modifier from culture names.
12403         
12404 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12405
12406         * Makefile.am: monosn is not installed any more. It has been deprecated
12407         in favor of sn.
12408
12409 2004-05-07  Jackson Harper  <jackson@ximian.com>
12410
12411         * locales.c
12412         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12413         Fix array construction, add bailout if the length is 0.
12414
12415 2004-05-07  Dick Porter  <dick@ximian.com>
12416
12417         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12418         machine doesn't have a DNS entry.  Patch by Urs Muff
12419         (umuff@quark.com), fixes bug 57928.
12420
12421 2004-05-06  Jackson Harper  <jackson@ximian.com>
12422
12423         * reflection.c: Handle null PublicTokens properly. alloc mem for
12424         assembly names culture so we dont crash when freeing it.
12425         
12426 2004-05-06  Jackson Harper  <jackson@ximian.com>
12427
12428         * assembly.c: Check the usergac when loading with partial names.
12429         
12430 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12431
12432         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12433         does nothing for now (not required for Linux/Windows) but the class
12434         library can call it (and a newer or modified runtime could need it).
12435         * icall.c: Registred icall.
12436
12437 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12438
12439         * loader.c: prints a message on module loading error we set MONO_DEBUG
12440         environment variable.
12441
12442 2004-05-05  Jackson Harper  <jackson@ximian.com>
12443
12444         * appdomain.c: Handle PublicKeyToken=null properly.
12445         
12446 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12447
12448         * environment.c|h: Added icall ves_icall_System_Environment_
12449         GetOSVersionString to get the current OS version as a string.
12450         * icall.c: Registred icall.
12451
12452 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12453
12454         * object.c: in mono_object_get_virtual_method(), take into account that
12455         non-virtual methods don't have a slot in the vtable. Check needed when
12456         the object is a proxy.
12457
12458 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12459
12460         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
12461         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
12462
12463         * object.c (mono_class_compute_gc_descriptor): Fix warning.
12464
12465         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
12466         passed when a valuetype is expected.
12467
12468         * object.c (mono_unhandled_exception): Only set the exit code if the
12469         exception happens in the main thread. Fixes thread5.exe.
12470
12471         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
12472         invalid names. Fixes #58047.
12473
12474 2004-05-03  Jackson Harper  <jackson@ximian.com>
12475
12476         * assembly.c: This line was committed accidently and is unneeded.
12477         
12478 2004-05-03  Jackson Harper  <jackson@ximian.com>
12479
12480         * icall.c: Add new icall for Assembly::LoadWithPartialName
12481         * assembly.c/.h: new function that probes the GAC to load partial
12482         assembly names by Paolo Molaro.
12483         
12484 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12485
12486         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
12487         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
12488         (type_get_fully_qualified_name): Added PublicKeyToken when building a
12489         full type name.
12490
12491 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12492
12493         * appdomain.c: fixed check for 'neutral' culture and removed warning.
12494         * reflection.c: fix bug when parsing a full type name and Version is not
12495         the last thing in the string.
12496
12497 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
12498
12499         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
12500         crashes when it is freed.
12501
12502 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12503
12504         * assembly.c: print the compat warning to stderr.
12505
12506 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
12507
12508         * assembly.c (mono_assembly_load_references): Add a compatibility
12509         hack to run old applications that might be still referencing the
12510         3300-based assemblies, only do this for System.xxx.
12511
12512 2004-05-01  Jackson Harper  <jackson@ximian.com>
12513
12514         * appdomain.c: If the culture is neutral we set it to "".
12515         
12516 2004-04-29  Jackson Harper  <jackson@ximian.com>
12517
12518         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
12519
12520 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
12521  
12522         * string-icalls.c: added low overhead function for copying chars
12523         * icall.c: added needed icall for the above function
12524  
12525 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12526
12527         * icall.c: fix return value of get_global_assembly_cache.  Implemented
12528         Environment.GetLogicalDrives.
12529
12530 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
12531
12532         * rand.c: try and talk to egd or prngd
12533         for random bytes if opening devices fail.
12534
12535 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
12536
12537         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
12538         alignment for the type using the native alignment of its members 
12539         instead of using klass->min_align.
12540
12541         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
12542
12543 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12544
12545         * file-io.c:
12546         * socket-io.c: added check for sys/aio.h.
12547
12548 2004-04-28  Dick Porter  <dick@ximian.com>
12549
12550         * threads.c: Don't abort a thread thats already aborting, when
12551         terminating everything.
12552
12553 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12554
12555         * icall.c: added 2 new async calls for Socket.
12556
12557         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
12558         IO on *nix systems.
12559
12560         * threadpool.c: removed unused variable.
12561
12562 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
12563
12564         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
12565
12566 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12567
12568         * locales.c: put back string_invariant_tolower () and
12569         string_invariant_toupper ().
12570
12571 2004-04-26 David Waite <mass@akuma.org>
12572
12573         * file-io.h:
12574         * socket-io.h:
12575         * threads.h:
12576         * unicode.h: remove comma from end of enumeration declarations
12577
12578 2004-04-26 David Waite <mass@akuma.org>
12579
12580         * debug-mono-symfile.h:
12581         * decimal.c:
12582         * mono_debug.h:
12583         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
12584
12585
12586 2004-04-26  Jackson Harper  <jackson@ximian.com>
12587
12588         * appdomain.c: Increment version number.
12589         
12590 2004-04-26  Jackson Harper  <jackson@ximian.com>
12591
12592         * appdomain.c: Set assembly references public token value when
12593         PublicKeyToken is specified, not the hash_value. Free public token
12594         values when free assembly name data. Previously the public key
12595         token was hex decoded, however we are using hex encoded public key
12596         tokens, so this is not neccasary.
12597         * assembly.c: Lookup assemblies in the gac if their public token
12598         value is set. Add function to allow enabling user gac
12599         lookups. Specify whether or not the assembly was loaded from the
12600         GAC. Compare full assembly names when checking the cache for
12601         assemblies (Temporarily disabled see comment in code). Remove
12602         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
12603         specifies trace-loader they get extra info to stdout on the
12604         loading of assemblies.
12605         * image.h: Add a field for an assembly references public token
12606         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
12607         whether an assembly has been loaded from the GAC.
12608         * image.c: Remove a corlib -> mscorlib name mapping.
12609         * loader.h: Add function to enable/disable the user gac.
12610         * mono-config.c: Check if the usergac is enabled in the config
12611         file.
12612         * icall.c: New icall to determine whether or not an assembly has
12613         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
12614         * tabldefs.h: Add constant for assemblyref flag that specifies a
12615         full public key is used instead of a public token.
12616         * reflection.c: Remove mscorlib -> corlib mappings. Set
12617         PublicTokenValue instead of hash value. This value is a hex
12618         string so it does not need to be expanded.
12619
12620 2004-04-26  Martin Baulig  <martin@ximian.com>
12621
12622         * mono-debug-debugger.c (mono_debugger_initialize): Set
12623         `mono_debugger_initialized' before calling mono_debug_lock().
12624
12625 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
12626
12627         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
12628           InternalToUpper/InternalToLower.
12629         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
12630           removed invariant culture shortcut.  This is now done in managed code.
12631         * locales.c: (string_invariant_toupper/tolower) removed.
12632
12633 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12634
12635         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
12636         Added Poll internal call.
12637
12638         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
12639         call for Poll. Select was too heavy for polling a single socket.
12640
12641         * threadpool.[ch]: added mono_threadpool_cleanup.
12642         * threads.c: use it. Don't use Thread_Abort on windows.
12643
12644 2004-04-23  Martin Baulig  <martin@ximian.com>
12645
12646         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
12647
12648 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
12649
12650         * icall.c: Registred new icalls for key pair protection and added an
12651         icall for Environment.GetFolderPath on Windows.
12652         * security.c|h: Added new icalls for key pair protection.
12653
12654 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12655
12656         * socket-io.c: don't display the non-supported family warning for known
12657         families. Now this is not displayed on windows when checking support
12658         for IPv4/IPv6.
12659
12660 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12661
12662         * class.c: don't display the layout warning for static fields.
12663
12664 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
12665
12666         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
12667         * locales.c, locales.h: Added new icalls for culture-specific
12668         Char.ToLower and Char.ToUpper.
12669
12670 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12671
12672         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
12673         by David Waite.
12674
12675 2004-04-20  Martin Baulig  <martin@ximian.com>
12676
12677         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
12678         of the type name before passing it to mono_reflection_type_from_name().
12679
12680 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
12681
12682         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
12683         encodings here. Fixes #56965.
12684
12685 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
12686
12687         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12688         fix test on strstr result not that I can see anything that
12689         relies on the result.
12690
12691 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
12692
12693         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
12694         Fixes #57081.
12695
12696         * marshal.c (mono_marshal_get_string_encoding): New helper function.
12697
12698         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
12699         function to determine which marshalling to use for strings. Fixes
12700         #56965.
12701
12702         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
12703
12704         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
12705
12706 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
12707
12708         * icall.c: #include mono-config.h
12709
12710 2004-04-15  Jackson Harper  <jackson@ximian.com>
12711
12712         * culture-info-tables.h: Fix date formats for en-US culture.
12713         
12714 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
12715
12716         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
12717         ThreadPool.SetMinThreads.
12718         * threadpool.c: Implemented ThreadPool.GetMinThreads and
12719         ThreadPool.SetMinThreads.
12720
12721 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12722
12723         * mono-config.c: also load the .config file in the directory
12724         where the assembly was found.
12725
12726 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
12727
12728         * assembly.c: load per-assembly config files.
12729         * icall.c: decrapified code to get the config dir and moved to
12730         mono-config.c.
12731         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
12732         per-assembly config files. When doing a dll map lookup give precedence
12733         to the per-assembly data.
12734
12735 2004-04-14  Martin Baulig  <martin@ximian.com>
12736
12737         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
12738         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
12739         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
12740
12741         * mono-debugger-debugger.c: While the debugger is locked, remember
12742         whether the symbol tables have changes and send one single
12743         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
12744
12745 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
12746
12747         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
12748
12749         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
12750         function.
12751
12752         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
12753         account when marshalling string arrays. Fixes #56965.
12754
12755 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
12756
12757         * icall.c: Add new icalls mapping for security.
12758         * security.c|h: Add internal calls for WindowsIdentity,
12759         WindowsImpersonationContext and WindowsPrincipal.
12760
12761 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
12762
12763         * class.c: Added comment to ensure the System.MonoDummy class
12764         is removed when no longer necessary
12765
12766 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
12767
12768         * appdomain.c: Pass arguments to the bootstraping exceptions to
12769         minimize JITed methods at boot
12770
12771         * metadata.c (mono_exception_from_name_two_strings): Allow for the
12772         second string to be null.
12773
12774         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12775         Change the protocol to minimize the JIT methods at startup.  Now
12776         it Returns the internal codepage, if the value of "int_code_page"
12777         is 1 at entry, and we can not compute a suitable code page
12778         number, returns the code page as a string.
12779
12780 2004-04-13  Jackson Harper  <jackson@ximian.com>
12781
12782         * culture-info-tables.h: Fix number of decimal digits for all
12783         english locales.
12784
12785 2004-04-13  Jackson Harper  <jackson@ximian.com>
12786
12787         * icall.c: Clairfy out of sync error message. It is not always
12788         your corlib that is out of sync.
12789
12790 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
12791
12792         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
12793         properties when only the set accessor is overriden. Fixes #55874.
12794
12795 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
12796
12797         * assembly.c (mono_assembly_load_references): Make this thread safe.
12798         Fixes #56327.
12799
12800 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
12801
12802         * monosn.c: Add missing initialization calls.
12803
12804 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
12805
12806         * locales.c:
12807         ves_icall_System_Globalization_CultureInfo_construct_number_format
12808         Fix g_assert so it compiles on fussier compilers re int/ptr
12809         mismatch
12810
12811 2004-04-08  Dick Porter  <dick@ximian.com>
12812
12813         * socket-io.h:
12814         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
12815         53992.  Also rearrange the code so that the internal calls return
12816         an error value and exceptions are thrown from managed code.
12817
12818         * icall.c: Add type info to the socket icalls.
12819
12820 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12821
12822         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
12823         owes me a beer.
12824
12825 2004-04-07  Martin Baulig  <martin@ximian.com>
12826
12827         * class.c (mono_class_from_generic_parameter): Don't default
12828         `klass->parent' to `mono_defaults.object_type'.
12829
12830 2004-04-07  Martin Baulig  <martin@ximian.com>
12831
12832         * reflection.c (mono_reflection_initialize_generic_parameter): Set
12833         `param->pklass->reflection_info'.       
12834
12835 2004-04-07  Jackson Harper  <jackson@ximian.com>
12836
12837         * culture-info-tables.h: Fix date separator symbol.
12838         
12839 2004-04-07  Martin Baulig  <martin@ximian.com>
12840
12841         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
12842         from System.Type to System.MonoType.
12843
12844 2004-04-07  Martin Baulig  <martin@ximian.com>
12845
12846         * reflection.h
12847         (MonoReflectionGenericParam): Added `has_reference_type' and
12848         `has_value_type' fields.
12849
12850         * reflection.c (mono_image_get_generic_param_info): Encode the
12851         correct flags if we have the `class' or `struct' constraint.
12852
12853 2004-04-07  Martin Baulig  <martin@ximian.com>
12854
12855         * reflection.h
12856         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
12857
12858 2004-04-07  Jackson Harper  <jackson@ximian.com>
12859
12860         * appdomain.c: Revert extra patches, just wanted to bump the
12861         version number.
12862         
12863 2004-04-07  Jackson Harper  <jackson@ximian.com>
12864
12865         * Makefile.am: Add culture-info private headers.
12866         * icall.c: Add new icalls for contructing locales.
12867         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
12868         * locales.h: Declare new culture info construction methods.
12869         * object.h: Add new fields used to avoid the CultureMap to
12870         MonoCultureInfo.
12871         * culture-info.h: Definition of structs used in the culture info
12872         tables.
12873         * culture-info-tables.h: Autogenerated tables that contain culture
12874         info data. This file was generated with the locale-builder tool.
12875         * appdomain.c: Incement corlib version number.
12876         
12877 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
12878
12879         * appdomain.c: (mono_runtime_init) move mono_thread_init
12880         to before mono_object_new calls so critical sections
12881         are initialized before use.
12882
12883 2004-04-07  Martin Baulig  <martin@ximian.com>
12884
12885         * icall.c
12886         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
12887         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
12888         (ves_icall_MonoGenericParam_initialize): Removed.
12889         (monogenericparam_icalls): Removed.
12890         (generictypeparambuilder_icalls): Added new table for
12891         System.Reflection.Emit.GenericTypeParameterBuilder.
12892
12893         * reflection.c
12894         (mono_reflection_define_generic_parameter): Removed.
12895         (mono_reflection_initialize_generic_parameter): This is now called
12896         from GenericTypeParameterBuilder's .ctor.
12897
12898 2004-04-06  Martin Baulig  <martin@ximian.com>
12899
12900         * class.c (mono_class_init): Don't inflate nested classes in a
12901         generic instance.
12902         (mono_type_get_name_recurse): Include the generic arguments for
12903         generic instances and generic type declarations.
12904         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
12905         (_mono_class_get_instantiation_name): Removed.
12906         (mono_class_create_generic): Always use `gklass->name' as our name.
12907
12908         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
12909
12910         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
12911         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
12912         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
12913         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
12914         closed generic methods here.
12915
12916         * reflection.c
12917         (mono_reflection_generic_inst_get_nested_types): Removed.
12918         (inflate_mono_method): Copy the generic parameters from the
12919         MonoMethodHeader into out MonoGenericMethod.
12920
12921 2004-04-06  Martin Baulig  <martin@ximian.com>
12922
12923         * row-indexes.h
12924         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
12925
12926         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
12927
12928         * reflection.c (build_compressed_metadata): If we have any entries
12929         in the GenericParam, MethodSpec or GenericParamConstraint tables,
12930         set the header version to 1.1.
12931
12932 2004-04-06  Martin Baulig  <martin@ximian.com>
12933
12934         * class.c (mono_class_init): If we're a generic instance,
12935         initialize our nested classes, too.
12936         (_mono_class_get_instantiation_name): Deal with the new `!%d'
12937         suffix. 
12938
12939 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12940
12941         * process.c: quote the argument passed to the shell on windows.
12942
12943 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
12944
12945         * threads.c (mono_alloc_special_static_data): Allow this to be
12946         called during startup.
12947
12948 2004-04-02  Martin Baulig  <martin@ximian.com>
12949
12950         * icall.c
12951         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
12952
12953 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
12954
12955         * icall.c: Fix build.
12956
12957 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
12958
12959         * Makefile.am: Added security.c|h.
12960         * icall.c: Added icall for get_UserName;
12961         * security.c: New file for security related icalls. Added function
12962         get_UserName for System.Environment (fix #56144).
12963         * security.h: New. Header file for security.c
12964
12965 2004-04-02  Dick Porter  <dick@ximian.com>
12966
12967         * icall.c: Deleted the icalls that were obsoleted some time ago
12968         by the ICU string code, and which were mixed into the icall
12969         rearranging.  Fixes bug 55969.
12970
12971         * string-icalls.h: 
12972         * string-icalls.c: Deleted the code that those icalls reference.
12973
12974 2004-04-01  Martin Baulig  <martin@ximian.com>
12975
12976         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
12977
12978         * class.c (mono_class_from_generic_parameter): Don't set 
12979         TYPE_ATTRIBUTE_INTERFACE.
12980         (my_mono_class_from_generic_parameter): Likewise.
12981
12982 2004-04-01  Martin Baulig  <martin@ximian.com>
12983
12984         * loader.c (find_method): Added an optional `MonoClass *ic'
12985         argument to search in a specific interface.
12986         (mono_get_method_constrained): New public function.
12987
12988 2004-04-01  Martin Baulig  <martin@ximian.com>
12989
12990         * reflection.c (mono_image_get_generic_field_token): Use the
12991         `handleref' cache here.
12992
12993 2004-04-01  Martin Baulig  <martin@ximian.com>
12994
12995         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
12996
12997         * reflection.c (create_generic_typespec): Use the `typespec' hash
12998         here, not the `typeref' one.    
12999
13000 2004-04-01  Martin Baulig  <martin@ximian.com>
13001
13002         * class.c (mono_class_inflate_generic_type): Moved the
13003         functionality into a new static inflate_generic_type() which
13004         returns NULL if it didn't do anything.  Only increment the
13005         `mono_stats.inflated_type_count' if we actually inflated
13006         something.
13007         (mono_class_get_full): Check the classes type to see whether we
13008         need to inflate it; also inflate MONO_TYPE_(M)VAR.
13009
13010 2004-04-01  Jackson Harper  <jackson@ximian.com>
13011
13012         * reflection.c: Set culture for assembly references.
13013         
13014 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
13015
13016         * reflection.[ch], icall.[ch], Fix support for pinning variables.
13017
13018 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13019
13020         * assembly.c:
13021         (do_mono_assembly_open): the critical section also covers
13022         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
13023
13024 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13025
13026         * threads.c:
13027         (mono_manage_threads): abort the background threads when finishing.
13028         Fixes bug #47232.
13029
13030 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13031
13032         * gc.c: only close the done_event handle if there was no timeout.
13033         C-ified comments.
13034
13035 2004-03-30  Martin Baulig  <martin@ximian.com>
13036
13037         * icall.c (icall_entries): It's called "System.Activator", not
13038         "System.Activation".    
13039
13040 2004-03-30  Martin Baulig  <martin@ximian.com>
13041
13042         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
13043         (mono_class_create_from_typespec): Likewise.
13044
13045 2004-03-30  Martin Baulig  <martin@ximian.com>
13046
13047         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
13048         `has_ctor_constraint' and `initialized'.
13049
13050 2004-03-30  Martin Baulig  <martin@ximian.com>
13051
13052         * reflection.c (encode_new_constraint): New static function to add
13053         the constructor constraint attribute to a type parameter.
13054         (encode_constraints): Call encode_new_constraint() if necessary.
13055
13056         * reflection.h
13057         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
13058
13059         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
13060         
13061 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
13062
13063         * reflection.c, icall.c: add support for pinning variables. 
13064
13065 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
13066
13067         * marshal.c (mono_marshal_get_managed_wrapper):
13068         init bool local with zero rather than null.
13069
13070 2004-03-29  Martin Baulig  <martin@ximian.com>
13071
13072         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
13073         the "official" behavior here.
13074         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
13075
13076 2004-03-29  Martin Baulig  <martin@ximian.com>
13077
13078         * icall.c: Reflect latest API changes.
13079
13080 2004-03-29  Martin Baulig  <martin@ximian.com>
13081
13082         * loader.c (mono_get_method_from_token): Also call
13083         mono_metadata_load_generic_params () for abstract and interface
13084         methods; replace the type arguments in the method signature with
13085         the ones which are loaded from the metadata.
13086
13087 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
13088
13089         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
13090         of the lock is not the current thread. MS.NET don't do it, in spite of
13091         what the documentation says. See bug #56157.
13092
13093 2004-03-28  Martin Baulig  <martin@ximian.com>
13094
13095         * class.c (mono_class_init): Don't call init_properties() and
13096         init_events() for generic instances; set `prop->parent' when
13097         inflating properties.
13098
13099         * reflection.c (mono_generic_inst_get_object): Call
13100         `mono_class_init (ginst->klass)'.
13101         (mono_type_get_object): Only create a MonoGenericInst if your
13102         generic type is a TypeBuilder.
13103         (do_mono_reflection_bind_generic_parameters): Only set
13104         `ginst->is_dynamic' if our generic type is a TypeBuilder.
13105
13106 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
13107
13108         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
13109         Fixes #56091.
13110
13111 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13112
13113         * icall.c: added Kill_internal icall.
13114         * process.[ch]: added Kill_internal icall.
13115
13116 2004-03-25  Martin Baulig  <martin@ximian.com>
13117
13118         * class.h (MonoStats): Added `generic_instance_count',
13119         `inflated_method_count', `inflated_type_count' and
13120         `generics_metadata_size'.       
13121
13122 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13123
13124         * reflection.c: no warnings now.
13125
13126 2004-03-25  Martin Baulig  <martin@ximian.com>
13127
13128         * class.c (mono_class_get_full): New public function; does a
13129         mono_class_get(), but also takes a `MonoGenericContext *'.
13130
13131         * loader.c (mono_field_from_memberref): Renamed to
13132         `field_from_memberref', made static and added `MonoGenericContext *'
13133         argument.
13134         (mono_field_from_token): Added `MonoGenericInst *' argument.
13135         (method_from_memberef): Likewise.
13136         (mono_get_method_from_token): Likewise.
13137         (mono_get_method_full): New public function; does a
13138         mono_get_method(), but also takes a `MonoGenericContext *'.
13139
13140         * verify.c (mono_method_verify): Get the method's generic context
13141         and pass it to mono_field_from_token(), mono_get_method_full() and
13142         mono_class_get_full().
13143
13144 2004-03-25  Martin Baulig  <martin@ximian.com>
13145
13146         * class.c (mono_class_inflate_generic_type): Take a
13147         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
13148         `MonoGenericMethod *'.
13149
13150 2004-03-25  Martin Baulig  <martin@ximian.com>
13151
13152         * loader.h (MonoMethodInflated): Store the MonoGenericContext
13153         instead of the MonoGenericMethod here.
13154
13155 2004-03-25  Martin Baulig  <martin@ximian.com>
13156
13157         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
13158         each time we create a new MonoGenericInst, we also create a new
13159         context which points back to us.
13160
13161         * class.c (inflate_method): Use `ginst->context' instead of
13162         creating a new context.
13163
13164         * loader.c (method_from_memberref): Use
13165         `klass->generic_inst->context' instead of creating a new context.
13166
13167 2004-03-25  Martin Baulig  <martin@ximian.com>
13168
13169         * class.h (MonoGenericContext): New struct.
13170         (MonoGenericMethod): Removed `generic_inst'.
13171
13172         * class.c (mono_class_inflate_generic_method): Take a
13173         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
13174
13175 2004-03-25  Martin Baulig  <martin@ximian.com>
13176
13177         * loader.h (MonoMethodInflated): New typedef.
13178
13179         * metadata.h (MonoMethodSignature): Removed `gen_method', make
13180         `generic_param_count' consume just 30 bits, added `is_inflated'
13181         and `has_type_parameters' flags (one bit each).
13182
13183         * class.c (mono_class_inflate_generic_method): Create a
13184         MonoMethodInflated instead of a MonoMethodNormal and set
13185         `is_inflated' in the method signature.
13186
13187         * class.h (MonoGenericMethod): Removed `generic_method'.
13188
13189 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
13190
13191         * image.c: Make sure the name of a MonoImage is always an absolute path.
13192           This fixes bug #54415.
13193
13194 2004-03-24  Martin Baulig  <martin@ximian.com>
13195
13196         * class.c (mono_class_setup_vtable): If we're a generic instance,
13197         use our generic type's vtable size.
13198
13199 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
13200
13201         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
13202         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
13203         problems.
13204
13205 2004-03-23  Martin Baulig  <martin@ximian.com>
13206
13207         * class.h (MonoDynamicGenericInst): Added `int count_events' and
13208         `MonoEvent *events'.
13209
13210         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
13211         (typebuilder_icalls): Added "get_event_info"; calls
13212         mono_reflection_event_builder_get_event_info(). 
13213
13214         * reflection.c (mono_reflection_generic_inst_initialize): Added
13215         `MonoArray *events'.
13216         (mono_reflection_event_builder_get_event_info): New function.
13217
13218 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
13219
13220         * object.h: add mono_type_initialization_init
13221
13222         * object.c (mono_runtime_class_init): 
13223         implement class constructor synchronization rules
13224         to cope with threading issues.  
13225         add mono_type_initialization_init
13226
13227         * appdomain.c (mono_runtime_init): call 
13228         mono_type_initialization_init
13229
13230         * class.h: removing initializing field from MonoVTable
13231
13232 2004-03-23  Martin Baulig  <martin@ximian.com>
13233
13234         * class.c (my_mono_class_from_generic_parameter): Use
13235         `param->name' if it's not NULL. 
13236
13237 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13238
13239         * class.c: do not insert non-virtual methods in the vtable.
13240         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13241         that means the method is non-virtual. This never would have
13242         happened before.
13243
13244 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13245
13246         * profiler.c: Added lock for accessing coverage_hash.
13247
13248 2004-03-22  Martin Baulig  <martin@ximian.com>
13249
13250         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13251         `method->method->signature->generic_param_count != 0' to make it
13252         work for interface methods.
13253
13254 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13255
13256         * process.c: quote the string passed to the shell using g_shell_quote.
13257
13258 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13259
13260         * threads.c:
13261         (mono_threads_manage): don't remove the finalizer thread and self
13262         from the threads hash table so that mono_thread_manage can be called
13263         more than once.
13264
13265 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13266
13267         * process.c: quote the arguments when UseShellExecute is true. Fixes
13268         bug #55790.
13269
13270 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13271
13272         * threads.c: set mono_thread_detach as a cleanup routine for every
13273         thread. This way it's always executed upon thread termination, either
13274         aborted or finished normally. No more xsp hangs!
13275
13276 2004-03-17  Martin Baulig  <martin@ximian.com>
13277
13278         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13279         `int count_nested' and a `MonoType **nested'.
13280
13281         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13282         most of the functionality into a new static
13283         do_mono_reflection_bind_generic_parameters() and don't take a
13284         `MonoType *nested_in' argument any more.  Don't compute nested
13285         types here.
13286         (mono_reflection_generic_inst_get_nested_types): New public method
13287         to get nested types.
13288
13289         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13290         we're a nested class.
13291
13292         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13293         mono_reflection_generic_inst_get_nested_types() to compute the
13294         nested types.
13295
13296 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13297
13298         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13299         descriptive error message under windows.
13300         
13301 2004-03-17  Martin Baulig  <martin@ximian.com>
13302
13303         * class.c (dup_type): Added `const MonoType *original' argument;
13304         copy the attrs from the original type.
13305
13306 2004-03-17  Martin Baulig  <martin@ximian.com>
13307
13308         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13309         `m->generic_inst_cache' here.
13310
13311 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13312
13313         * exception.h exception.c: Add stack_overflow_exception.
13314
13315 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13316
13317         * threadpool.c:
13318         (overlapped_callback): call SetEvent *after* invoking the callback.
13319         No need to call CloseHandle.
13320
13321 2004-03-16  Martin Baulig  <martin@ximian.com>
13322
13323         * reflection.c (mono_image_get_fieldref_token): Take a
13324         `MonoReflectionField *' instead of a `MonoClassField *' and a
13325         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13326
13327 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13328
13329         * appdomain.c: don't add the culture to the filename we're looking for
13330         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13331
13332 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13333
13334         * locales.c: don't ignore symbols when doing case insensitive compares.
13335         Thanks Dick! Fixes bug #54046.
13336
13337         * threads.c: surround 'threads' usage with enter/leave in
13338         mono_thread_manage.
13339
13340 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13341
13342         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13343         implicitly marshalled as [Out]. Fixes #55450.
13344
13345         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13346         an exception.
13347
13348 2004-03-16  Martin Baulig  <martin@ximian.com>
13349
13350         * class.c (mono_class_from_generic_parameter): Use the actual
13351         parameter name. 
13352
13353 2004-03-16  Martin Baulig  <martin@ximian.com>
13354
13355         * reflection.c (type_get_signature_size): New static function.
13356         Compues the size of the type in a method signature.
13357         (method_get_signature_size): New static function; calls
13358         type_get_signature_size() to compute the actual size of the
13359         method's signature.
13360         (method_encode_signature): Use method_get_signature_size() to get
13361         the signature's size rather than using `nparams * 10'.
13362
13363 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13364
13365         * file-io.h: define here WapiOverlapped on windows. I don't want the
13366         regular OVERLAPPED one.
13367
13368         * file-io.c:
13369         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13370         Disabling AIO on windows.
13371
13372 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13373
13374         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13375         bug #55385.
13376
13377 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13378
13379         * appdomain.c: upgraded corlib version.
13380
13381         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13382         and BeginWrite. Allow opening files for asynchrnous operations.
13383
13384         * file-io.h: new struct that maps FileStreamAsyncResult.
13385         * icall.c: added new icalls.
13386         * process.[ch]: support setting child process environment variables
13387         and use the SHELL or COMSPEC when UseShellExecute is true.
13388
13389         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13390         callback for async. IO is here and also BindHandle.
13391
13392         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13393         from here.
13394
13395 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13396
13397         * reflection.c (create_custom_attr): Allow len == 0.
13398
13399         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13400         computation on big-endian machines.
13401
13402 2004-03-13  Martin Baulig  <martin@ximian.com>
13403
13404         * class.h (MonoGenericInst): Added `int count_ifaces'.
13405
13406         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13407         `ginst->count_ifaces' instead `klass->interface_count' since we
13408         may get called before the vtable is created.
13409
13410         * loader.c (mono_method_get_param_names): If we're a generic
13411         instance, return and don't initialize the class.
13412
13413         * reflection.c (mono_reflection_setup_generic_class): Don't call
13414         ensure_runtime_vtable().
13415         (mono_reflection_bind_generic_parameters): Set
13416         `ginst->count_ifaces'.
13417
13418 2004-03-11  Jackson Harper <jackson@ximian.com>
13419
13420         * icall.c:
13421         * unicode.c:
13422         * unicode.h: Remove unused System.Char icalls.
13423         
13424 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13425
13426         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13427         code when we P/Invoke the first library in Windows.Forms, instead
13428         of when we first open the assembly.
13429
13430         * assembly.c: Drop the lookup from here.
13431
13432 2004-03-10  Martin Baulig  <martin@ximian.com>
13433
13434         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13435         class for properties, fields and events.  Finally fixes #54945.
13436
13437 2004-03-10  Martin Baulig  <martin@ximian.com>
13438
13439         * metadata.c (mono_metadata_class_equal): New static function;
13440         checks whether two generic instances or two generic parameters are
13441         equal.
13442         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13443         compare classes.        
13444
13445 2004-03-10  Martin Baulig  <martin@ximian.com>
13446
13447         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13448
13449         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13450         argument and write it into the `reflection_info' field.
13451
13452         * icall.c
13453         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13454         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13455
13456 2004-03-09  Jackson Harper  <jackson@ximian.com>
13457
13458         * char-conversions.h: use 8 bits for numeric data its all we need
13459         * icall.c: numeric data is only 8 bits now.
13460
13461 2004-03-09  Martin Baulig  <martin@ximian.com>
13462
13463         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
13464
13465         * class.c (init_properties, init_events): Initialize the new
13466         `parent' field.
13467
13468         * reflection.c (typebuilder_setup_properties): Likewise.
13469         (typebuilder_setup_events): Likewise.
13470
13471         * reflection.h (MonoEventInfo): Replaced `parent with
13472         `declaring_type' and `reflected_type'.
13473
13474         * icall.c (ves_icall_get_property_info): Distinguish between
13475         declaring and reflected type.
13476         (ves_icall_get_event_info): Likewise.
13477
13478 2004-03-09  Martin Baulig  <martin@ximian.com>
13479
13480         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
13481         (ves_icall_Type_GetField): Correctly set field->klass.
13482
13483 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
13484
13485         * loader.h: Fix warning.
13486
13487 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
13488
13489         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
13490         library routine if present.  Notice that it will still continue
13491         executing even if its missing, for those working on the Gtk#
13492         edition of Windows.Forms.
13493
13494         * assembly.c (do_mono_assembly_open): If loading the
13495         System.Windows.Forms call mono_loader_wini_init.
13496
13497 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
13498
13499         * class.h: Added MonoRemoteClass struct.
13500         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
13501         function for MonoStrings.
13502         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
13503         Added internal call for getting the proxy type.
13504         * marshal.c: Get the type of transparent proxies from its remote_class.
13505         Added methods that generate the IL for type checks and casts:
13506         mono_marshal_get_isinst, mono_marshal_get_castclass, 
13507         mono_marshal_get_proxy_cancast.
13508         * marshal.h: Declaration of the previous new methods.
13509         * object.c: Added new moethods for creating and updating MonoRemoteClass
13510         instances: mono_remote_class, mono_upgrade_remote_class, 
13511         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
13512         * verify.c: FIx transparent_proxy_fields layout.
13513         * appdomain.c: Bump corlib version.
13514
13515 2004-03-04  Jackson Harper  <jackson@ximian.com>
13516
13517         * icall.c: Add icall to access char conversion tables.
13518         * char-conversions.h: Character conversion tables.
13519         * Makefile.am: Add char-conversions.h private header file.
13520         
13521 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
13522
13523         * appdomain.c (unload_thread_main): Increase unloading timeout to
13524         10 sec as a temporary workaround for Nant problems.
13525
13526 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
13527
13528         * gc.c: Add checks for GC_enable and GC_disable.
13529
13530         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
13531         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
13532         (bug #54988).
13533         
13534 2004-02-27  Martin Baulig  <martin@ximian.com>
13535
13536         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13537         `MonoReflectionType *' instead of a `MonoType *'.
13538
13539 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
13540
13541         * gc.c (run_finalize): Avoid finalizing the object representing the
13542         finalizer thread.
13543         (finalizer_thread): Fix warning.
13544
13545 2004-02-25  Martin Baulig  <martin@ximian.com>
13546
13547         * class.c (_mono_class_get_instantiation_name): Added `int offset'
13548         argument for nested types.
13549         (mono_class_create_generic): Added support for nested generictypes.
13550
13551         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
13552         `GList *nested'.
13553
13554         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
13555
13556         * reflection.c (method_encode_signature): Increase the minimum
13557         value of `size' from 10 to 11.
13558         (mono_reflection_bind_generic_parameters): Take `int type_argc'
13559         and `MonoType **types' arguments instead of the `MonoArray
13560         *types'; added `MonoType *nested_in'.  Recursively instantiate
13561         nested classes. 
13562
13563 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
13564
13565         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
13566         stack_overflow_ex members which are used by exception handling.
13567
13568         * appdomain.c (mono_runtime_init): Initialize the new members.
13569
13570         * gc.c (mono_gc_enable): New helper function.
13571         * gc.c (mono_gc_disable): New helper function.
13572
13573 2004-02-23  Martin Baulig  <martin@ximian.com>
13574
13575         * icall.c: I must have been really stupid - make it actually work
13576         this time ;-)
13577
13578 2004-02-23  Martin Baulig  <martin@ximian.com>
13579
13580         * loader.c (method_from_memberref): Only inflate the method if
13581         it's in another klass.
13582
13583 2004-02-23  Martin Baulig  <martin@ximian.com>
13584
13585         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
13586         (mono_class_init): If we're a generic instance and an interface,
13587         compute `class->interface_id'; also create `class->interfaces'
13588         here and inflate them.
13589
13590         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
13591         `ginst->is_open'.
13592         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
13593
13594         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
13595
13596 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
13597
13598         * reflection.c (method_encode_code): Improved the error message
13599         generated by the exception.
13600
13601 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13602
13603         * icall.c: Martin did not do what he said in the ChangeLog for
13604         2004-02-18, but put back the changes for properties and events.
13605         Commenting those changes out again and adding comment to bug #54518.
13606         
13607         * process.c: removed warning.
13608
13609 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
13610
13611         * marshal.c (emit_struct_conv): Print an error message instead of
13612         asserting when a type does not have the StructLayout attribute.
13613
13614 2004-02-20  Martin Baulig  <martin@ximian.com>
13615
13616         * reflection.c (mono_type_get_object): Also use the cache for
13617         generic instances.
13618         (mono_reflection_bind_generic_parameters): Always compute
13619         `ginst->ifaces'.        
13620
13621 2004-02-20  Martin Baulig  <martin@ximian.com>
13622
13623         * class.h (MonoGenericMethod): Removed `klass'.
13624
13625         * class.c (mono_class_inflate_generic_method): Added `MonoClass
13626         *klass' argument.
13627
13628 2004-02-20  Martin Baulig  <martin@ximian.com>
13629
13630         * reflection.c (method_encode_methodspec): Actually use the
13631         uninflated signature for the memberref.
13632
13633 2004-02-20  Martin Baulig  <martin@ximian.com>
13634
13635         * class.h (MonoGenericMethod): Removed `declaring'.
13636
13637         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
13638         is NULL, compute it here.
13639
13640 2004-02-20  Martin Baulig  <martin@ximian.com>
13641
13642         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
13643
13644         * metadata.c (mono_metadata_generic_inst_hash): New method.
13645         (mono_metadata_generic_inst_equal): New method.
13646
13647         * reflection.c (mono_reflection_bind_generic_parameters): Use the
13648         `klass->image->generic_inst_cache' cache to avoid creating
13649         duplicate MonoGenericInst's.
13650
13651         * class.c (mono_class_inflate_generic_type): Use the cache.
13652
13653 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
13654
13655         * object.c: fixed gc descriptor calculation for embedded valuetypes.
13656
13657 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13658
13659         * icall.c: added Socket.WSAIoctl icall.
13660
13661         * socket-io.[ch]: implemented
13662         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
13663
13664 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
13665
13666         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
13667
13668 2004-02-18  Urs C Muff  <umuff@quark.com>
13669
13670         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
13671         this work on PPC and other big-endian architectures.
13672
13673         * debug-mono-symfile.h: Prepended the names of all the `guint32'
13674         fields with an underscore to make sure they're only accessed by
13675         the read32() macro.
13676
13677 2004-02-18  Martin Baulig  <martin@ximian.com>
13678
13679         * icall.c: Put the klass->refclass changes back for methods and
13680         fields, but not for properties and events.  We're currently not
13681         distinguishing between DeclaringType and ReflectedType for
13682         properties and events, that's what caused the regressions.
13683
13684 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13685
13686         * object.c:
13687         (mono_async_result_new): the handle can be NULL.
13688
13689         * threadpool.c: Use an event instead of a semaphore, don't initialize
13690         it until needed. This saves quite a few semaphores from being created
13691         when using the threadpool.
13692
13693 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
13694
13695         * object.c (mono_string_is_interned_lookup): Fix interning of long
13696         strings. Fixes #54473.
13697
13698         * domain.c (ldstr_equal): Optimize if the two strings are equal.
13699
13700         * icall.c: Revert the klass->refclass changes since they introduce
13701         regressions (bug #54518).
13702
13703 2004-02-18  Martin Baulig  <martin@ximian.com>
13704
13705         * class.c (mono_class_init): If we're a generic instance and don't
13706         come from a TypeBuilder, inflate our members here.
13707         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
13708         (mono_class_create_generic): New public method.
13709         (mono_class_initialize_generic): Removed.
13710         (get_instantiation_name): Renamed to
13711         _mono_class_get_instantiation_name() and made it public.
13712
13713 2004-02-18  Martin Baulig  <martin@ximian.com>
13714
13715         * class.c (mono_class_inflate_generic_type): Clear the new
13716         instance's `nginst->klass' when inflating a generic instance.
13717         (mono_class_is_subclass_of): Added (basic) support for generic
13718         instances.
13719
13720 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
13721
13722         * appdomain.h, domain.c: use a MonoCodeManager instead of a
13723         MonoMempool to hold compiled native code.
13724
13725 2004-02-17  Martin Baulig  <martin@ximian.com>
13726
13727         * class.h (MonoDynamicGenericInst): Added `count_properties' and
13728         `properties'.
13729
13730         * reflection.c (mono_reflection_generic_inst_initialize): Added
13731         `MonoArray *properties' argument.
13732
13733         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
13734
13735 2004-02-17  Martin Baulig  <martin@ximian.com>
13736
13737         * icall.c (ves_icall_Type_GetFields): Renamed to
13738         ves_icall_Type_GetFields_internal() and added a
13739         `MonoReflectionType *rtype' argument; pass it to
13740         mono_field_get_object() to set the field's "reflected" type.
13741         (ves_icall_Type_GetConstructors): Likewise.
13742         (ves_icall_Type_GetEvents): Likewise.
13743         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
13744         argument; pass it to mono_method_get_object() to set the method's
13745         "reflected" type.       
13746
13747 2004-02-17  Martin Baulig  <martin@ximian.com>
13748
13749         * class.h (MonoDynamicGenericInst): New type.
13750         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
13751
13752         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
13753         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
13754         (ves_icall_MonoGenericInst_GetFields): New interncall.
13755
13756         * class.c (mono_class_from_generic): Don't call
13757         mono_class_initialize_generic() if this is a dynamic instance;
13758         ie. it's being created from a TypeBuilder.
13759         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
13760         `class->byval_arg.type'.
13761
13762         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
13763         to `inflate_method' and made static.
13764         (mono_reflection_inflate_field): Removed.
13765         (mono_reflection_generic_inst_initialize): New public method.
13766
13767         * reflection.h (MonoReflectionGenericInst): Removed `methods',
13768         `ctors' and `fields'; added `initialized'.
13769
13770 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
13771
13772         * debug-helpers.c (mono_method_full_name): Fix output for empty
13773         namespaces.
13774
13775 2004-02-12  Martin Baulig  <martin@ximian.com>
13776
13777         * class.h (MonoClassField): Added `MonoType *generic_type'.
13778
13779         * reflection.c (mono_image_get_fieldref_token): Added support for
13780         instantiated generic types.
13781         (field_encode_inflated_field): Removed.
13782         (mono_image_get_inflated_field_token): Removed.
13783         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
13784
13785         * reflection.h (MonoReflectionInflatedField): Removed.
13786
13787 2004-02-12  Martin Baulig  <martin@ximian.com>
13788
13789         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
13790         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
13791
13792         * reflection.c (mono_image_get_methodspec_token): Take a
13793         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
13794         (mono_image_create_token): Check whether we have a
13795         `method->signature->gen_method' and call
13796         mono_image_get_methodspec_token() if appropriate.
13797         (inflated_method_get_object): Removed.
13798         (mono_reflection_bind_generic_method_parameters): Return a
13799         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
13800         (mono_reflection_inflate_method_or_ctor): Likewise.
13801
13802         * reflection.h (MonoReflectionInflatedMethod): Removed.
13803
13804 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
13805
13806         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
13807         for custom valuetype marshalling.
13808
13809         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
13810
13811 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13812
13813         * icall.c: fixed WSAGetLastError_internal name.
13814
13815 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
13816
13817         * threads.c (mono_thread_attach): Allow this to be called multiple
13818         times for a thread.
13819         
13820         * threads.c (build_wait_tids): Do not wait for ourselves.
13821
13822         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
13823         appdomain list is empty.
13824
13825         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
13826         memory returned by mono_string_builder_to_utf16, since it points into
13827         managed memory. Thanks to Bernie Solomon for noticing this.
13828
13829         * icall.c: Add AppDomainSetup icalls.
13830
13831         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
13832
13833         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
13834         types.
13835
13836         * reflection.c (reflection_methodbuilder_to_mono_method): Save
13837         custom attributes to the method_aux struct. Also fix array indexes etc.
13838
13839         * loader.c (mono_method_get_param_names): Make dynamic case work again.
13840         
13841 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
13842
13843         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
13844         (both static and runtime) and reduce startup time.
13845
13846 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
13847
13848         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
13849         AsAny marshalling conversion instead of crashing.
13850
13851         * marshal.c: Fix warnings.
13852
13853 2004-02-09  Martin Baulig  <martin@ximian.com>
13854
13855         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
13856
13857         * reflection.h (MonoReflectionInflatedMethod): Removed the
13858         `declaring' field, it's now in the unmanaged MonoGenericMethod.
13859
13860         * reflection.c (method_encode_methodspec): Removed the `method'
13861         argument; we get it from `gmethod->declaring'.
13862         (inflated_method_get_object): Removed the `declaring' argument.
13863
13864 2004-02-09  Martin Baulig  <martin@ximian.com>
13865
13866         * class.h (MonoGenericMethod): New type.
13867         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
13868         `generic_method'.
13869
13870         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
13871         a `MonoGenericMethod *gen_method' one.
13872
13873         * class.c (mono_class_inflate_generic_type): Take an additional
13874         `MonoGenericMethod * argument.  This is only non-NULL if we're
13875         inflating types for a generic method.   
13876         (mono_class_inflate_generic_signature): Renamed to
13877         inflate_generic_signature() and made static; take a
13878         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
13879         (inflate_generic_header): Take a `MonoGenericMethod *' argument
13880         instead of a `MonoGenericInst *' one.
13881         (mono_class_inflate_generic_method): Likewise.
13882
13883         * reflection.c (encode_generic_method_sig): Take a
13884         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
13885         (method_encode_methodspec): Likewise.
13886         (inflated_method_get_object): Likewise. 
13887
13888         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
13889         field with a `MonoGenericMethod *gmethod' one.  
13890
13891 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
13892
13893         * class.h (mono_class_has_parent): add parens to expansion
13894         so you can ! this.
13895
13896 2004-02-08  Martin Baulig  <martin@ximian.com>
13897
13898         * image.h (MonoImage): Removed `generics_cache'.
13899
13900         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
13901         instead of a `MonoType *' argument; removed the `inflate_methods'
13902         argument.  Don't inflate methods here.
13903
13904         * loader.c (find_method): If it's a generic instance, call
13905         mono_class_init() on the `sclass->generic_inst->generic_type'.
13906
13907         * metadata.c (mono_type_size): Make this work on uninitialized
13908         generic instances; call it on the `ginst->generic_type's class.
13909
13910         * reflection.c (mono_reflection_bind_generic_parameters): Call
13911         mono_class_from_generic() to create the `ginst->klass'.
13912
13913 2004-02-08  Martin Baulig  <martin@ximian.com>
13914
13915         * class.h (MonoClass): Changed type of `generic_inst' from
13916         `MonoType *' to `MonoGenericInst *'.
13917
13918 2004-02-08  Martin Baulig  <martin@ximian.com>
13919
13920         * icall.c (ves_icall_Type_BindGenericParameters): Just call
13921         mono_type_get_object(), this is now creating a `MonoGenericInst'
13922         for MONO_TYPE_GENERICINST.
13923         (ves_icall_MonoGenericInst_GetParentType): Likewise.
13924         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
13925
13926         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
13927         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
13928         (inflated_method_get_object): Added `MonoClass *refclass' argument.
13929         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
13930         and reflected type.
13931
13932         * reflection.h (MonoReflectionInflatedMethod): Removed
13933         `declaring_type' and `reflected_type'.
13934
13935 2004-02-08  Martin Baulig  <martin@ximian.com>
13936
13937         * class.h (MonoGenericInst): Added `MonoType *parent' and
13938         `MonoType **ifaces'.
13939
13940         * reflection.h (MonoReflectionGenericInst): Removed `klass',
13941         `parent' and `interfaces'.
13942
13943         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13944         `MonoType *' argument and return a `MonoType *'.
13945
13946         * icall.c
13947         (ves_icall_MonoGenericInst_GetParentType): New interncall.
13948         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
13949
13950 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
13951
13952         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
13953         valuetype marshalling.
13954
13955 2004-02-06  Martin Baulig  <martin@ximian.com>
13956
13957         * class.c
13958         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
13959         (my_mono_class_from_generic_parameter): Likewise.
13960
13961 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
13962
13963         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
13964         contents of the symbol files lazily.
13965
13966         * object.h (MonoThread): Add 'name' and 'name_len' fields.
13967
13968         * threads.h threads.c icall.c: New icalls for getting and setting the
13969         threads name.
13970
13971 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
13972
13973         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
13974         Raise an exception when the domain is not found.
13975
13976 2004-02-03  Martin Baulig  <martin@ximian.com>
13977
13978         * reflection.c (mono_image_get_methodspec_token): Use the
13979         uninflated signature; fixes gen-33.
13980
13981 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
13982
13983         * gc.c threads.c: Make the finalizer thread a normal managed thread so
13984         the finalizer code can use thread functionality.
13985
13986         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
13987         the finalizer thread.
13988
13989         * threads.c: Make some functions more robust.
13990
13991         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
13992
13993         * metadata.h: Add new marshalling conventions.
13994
13995         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
13996         stringbuilder marshalling. Fixes #53700.
13997
13998         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
13999
14000         * reflection.c (mono_image_get_type_info): Save declarative security
14001         info.
14002
14003         * reflection.c (mono_image_get_field_info): Handle uninitialized 
14004         unmanaged fields as well.
14005
14006         * appdomain.c: Bump corlib version.
14007
14008 2004-02-01  Martin Baulig  <martin@ximian.com>
14009
14010         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
14011         method type arguments.  
14012
14013 2004-01-30  Duncan Mak  <duncan@ximian.com>
14014
14015         * marshal.h: Add prototype for
14016         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
14017         and
14018         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
14019         fix the build.
14020
14021 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
14022
14023         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
14024         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
14025
14026 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14027
14028         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14029         custom marshalling of valuetypes.
14030
14031         * marshal.c: Fix some warnings.
14032
14033 2004-01-29  Martin Baulig  <martin@ximian.com>
14034
14035         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
14036         for generic method parameters.
14037
14038         * reflection.c (method_encode_methodspec): Write the uninflated
14039         signature into the methodspec table.
14040         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
14041         is always the uninflated method.
14042         (reflection_methodbuilder_to_mono_method): Copy the generic
14043         parameters from the MethodBuilder into `header->gen_params'.
14044
14045 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14046
14047         * class.c (mono_class_from_generic_parameter): Fix warning.
14048
14049 2004-01-27  Martin Baulig  <martin@ximian.com>
14050
14051         * class.c (mono_class_from_generic_parameter): Don't create
14052         `klass->methods' here.  
14053
14054 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
14055
14056         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
14057         extension since it does not work with libraries named lib<FOO>.dll.so.
14058
14059 2004-01-25  Martin Baulig  <martin@ximian.com>
14060
14061         * class.c (mono_class_inflate_generic_type): Added support for
14062         MONO_TYPE_GENERICINST.
14063
14064         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
14065         inflate methods on open constructed types.      
14066
14067 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14068
14069         * object.c: fire ProcessExit event in the root AppDomain after running
14070         Main. Fixes bug #53299.
14071
14072 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
14073
14074         * socket-io.c: include the new socket-wrappers.h header.
14075         Use the wrappers instead of the unix socket functions to make the code
14076         more clear.
14077
14078 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
14079
14080         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
14081
14082         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14083         Fixes #22532.
14084
14085 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
14086
14087         * reflection.c (mono_image_create_pefile): Handle the case when the
14088         entry point is not a MethodBuilder.
14089
14090         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14091         field to ReflectionMethod since it is not allways a builder.
14092
14093         * reflection.c (type_get_fully_qualified_name): New helper function to
14094         return the fully qualified name of a type.
14095
14096         * reflection.c (encode_marshal_blob): Always emit the fully qualified
14097         type name for custom marshallers.
14098
14099         * reflection.c (mono_marshal_spec_from_builder): Ditto.
14100
14101         * class.c (mono_class_setup_vtable): If a parent class already 
14102         implements an interface, use the implementing methods from that class.
14103         Fixes #53148.
14104
14105 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14106
14107         * threadpool.c: just return instead of ExitThread to allow for thread
14108         clean up earlier.
14109
14110 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
14111
14112         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
14113         when closing resource modules.
14114
14115         * reflection.c (mono_image_create_pefile): Handle the case when the
14116         entry point is not a MethodBuilder.
14117
14118         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14119         field to ReflectionMethod since it is not allways a builder.
14120
14121 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14122
14123         * marshal.c (mono_marshal_get_managed_wrapper): 
14124         mono_marshal_alloc takes native int so CONV_I
14125         the arg for 64bits.
14126
14127 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
14128
14129         * reflection.c (fixup_cattrs): New function to fixup the methoddef
14130         tokens in the cattr table. Fixes #53108.
14131
14132 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14133
14134         * loader.c: don't trim ".dll" before looking up in the config file.
14135         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
14136
14137 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
14138
14139         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
14140         Return the module which contains the resource as well.
14141         (ves_icall_System_Reflection_Module_Close): New icall.
14142
14143         * appdomain.c: Bump corlib version number.
14144
14145         * image.c (mono_image_addref): New public function.
14146
14147         * assembly.c: Call mono_image_addref.
14148
14149         * reflection.c (mono_module_get_object): Increase reference count of 
14150         the image.
14151
14152         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14153         Fixes #22532.
14154
14155         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
14156         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
14157         proper exceptions on DllImport problems.
14158
14159 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
14160
14161         * class.c, metadata.c: eliminate CSIZE macro.
14162
14163 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
14164
14165         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
14166         * object.h: Added async_callback field in MonoAsyncResult.
14167         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
14168         * verify.c: Added async_callback in MonoAsyncResult layout.
14169
14170 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
14171
14172         * reflection.c (mono_reflection_get_custom_attrs): Add support
14173         for Modules.
14174
14175 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14176
14177         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
14178         marshalling.
14179         (mono_marshal_method_from_wrapper): Add null pointer check.
14180
14181 2004-01-16  Martin Baulig  <martin@ximian.com>
14182
14183         * debug-mono-symfile.h: Set version number to 36 and reflect
14184         latest symbol writer changes.
14185
14186 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14187
14188         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
14189         multi-dimensional arrays.
14190         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
14191         (mono_class_from_mono_type): Use bounded_array_class_get.
14192         
14193         * class.c (mono_bounded_array_class_get): New function which takes
14194         a 'bounded' bool argument to distinguish vectors from one dimensional
14195         arrays.
14196
14197         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
14198         bounded_array_class_get if the array has bounds.
14199
14200         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14201         Search modules loaded using AssemblyBuilder:AddModule as well.
14202
14203 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14204
14205         * appdomain.c: increased corlib version.
14206         * filewatcher.c: removed g_print.
14207         * icall.c:
14208         (get_property_info): only allocate what is actually requested.
14209         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
14210
14211 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14212
14213         * Makefile.am: added filewatcher.[ch]
14214         * filewatcher.[ch]: FileSystemWatcher runtime support.
14215         * icall.c: added new FSW icalls.
14216
14217 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
14218
14219         * string-icalls.c: fix stringbuilder regression as suggested by
14220         Iain McCoy <iain@mccoy.id.au>.
14221
14222 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14223
14224         * process.c (process_read_stringtable_block): Recognize '007f' as
14225         a language neutral stringtable block.
14226
14227 2004-01-12  Patrik Torstensson
14228
14229         * object.h (MonoStringBuilder) : Changed layout to support our
14230         new stringbuilder class.
14231         * marshal.c: Change marshalling to support the new layout of 
14232         string builder.
14233         * appdomain.c: increased version number because new layout of
14234         string builder.
14235
14236 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14237
14238         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14239         assembly name as an string instead of an AssemblyName, since it is
14240         easier to extract info from it.
14241
14242         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14243         the culture subdirectories too. Fixes #52231.
14244
14245 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14246
14247         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14248         It takes 2 new parameters with an optional name for the method to look
14249         for and case ignoring info.
14250
14251         * threadpool.c: removed unused variable.
14252
14253 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14254
14255         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14256         It takes 2 new parameters with an optional name for the property to look
14257         for and case ignoring info.
14258         Fixes bug #52753.
14259
14260 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14261
14262         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14263         Fix #52451.
14264
14265 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14266
14267         * appdomain.c:
14268         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14269         Fixes bug #52630.
14270
14271 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14272
14273         * reflection.c: Add support for more than one unmanaged resource.
14274
14275         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14276         in field->def_value, as done in all other cases.
14277
14278         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14279         TypeBuilders.
14280
14281         * reflection.c (mono_reflection_create_runtime_class): Remove 
14282         errorneous assignment to klass->element_class, since it is already
14283         done in mono_reflection_setup_internal_class.
14284
14285 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14286
14287         * gc.c: added missing LeaveCriticalSection.
14288         * icall.c: indented a couple of lines.
14289         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14290         if we call EndInvoke inside a callback. Fixes bug #52601.
14291
14292 2004-01-07  Martin Baulig  <martin@ximian.com>
14293
14294         * mono-debug-debugger.h
14295         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14296
14297 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14298
14299         * appdomain.c: Use messages in NotImplementedException.
14300
14301         * exception.c (mono_get_exception_not_implemented): Now this takes
14302         a message argument.
14303
14304         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14305         exception instead of g_asserting an aborting when something is not
14306         implemented.
14307
14308         Add some inline docs.
14309
14310 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14311
14312         * reflection.h: Update after changes to object layout.
14313
14314         * reflection.c: Implement saving of unmanaged aka win32 resources.
14315
14316         * appdomain.c: Bump version number.
14317
14318         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14319         Handle missing domains gracefully.
14320
14321 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14322
14323         * file-io.c : On Windows, there are much more invalid_path_chars.
14324
14325 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14326
14327         * class.h, object.c: prepare for GetType () speedup.
14328
14329 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14330
14331         * profiler.c: workaround for --profile null reference exception on
14332           cygwin. Patch by Patrik Torstensson.
14333
14334 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14335
14336         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14337         make work for unaligned access.
14338
14339 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14340
14341         * class.c: small cleanup (class->fields [i] -> field).
14342         * image.c: check address of metadata is valid.
14343
14344 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14345
14346         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14347         search the list of loaded assemblies.
14348
14349         * reflection.c (mono_reflection_type_from_name): Use 
14350         mono_assembly_loaded instead of mono_image_loaded.
14351
14352         * reflection.c: Fix warnings.
14353
14354 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
14355
14356         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
14357         is dynamic. This is needed since an assembly can contain both dynamic and
14358         non-dynamic images.
14359
14360         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
14361         assembly->dynamic.
14362
14363         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14364
14365         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14366         to store modules loaded using AddModule.
14367
14368         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14369         on Modules.
14370
14371         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14372
14373         * reflection.c (mono_image_fill_export_table_from_module): New function to
14374         fill out the EXPORTEDTYPES table from a module.
14375
14376         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14377         into a separate function. Also handle loaded non-dynamic modules.
14378
14379         * reflection.c (mono_image_basic_init): Fix memory allocation.
14380
14381         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14382
14383         * assembly.c (mono_assembly_load_references): Make this public.
14384
14385 2003-12-19  Martin Baulig  <martin@ximian.com>
14386
14387         * class.c (mono_class_initialize_generic): Made this static, take
14388         a `MonoGenericInst *' instead of a `MonoClass *'.
14389         (mono_class_from_generic): Call mono_class_initialize_generic()
14390         unless we're already initialized or being called from
14391         do_mono_metadata_parse_generic_inst().
14392
14393         * class.h (MonoGenericInst): Added `initialized' and
14394         `init_pending' flags.
14395
14396         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14397         `mono_class_init (gklass)' or mono_class_initialize_generic()
14398         here; set `generic_inst->init_pending' while parsing the
14399         `type_argv'.
14400
14401 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14402
14403         * locales.c: include string.h for memxxx prototypes
14404
14405 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14406
14407         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14408         constructor when accessing literal fields.
14409
14410 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14411
14412         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14413
14414         * reflection.c (assembly_add_resource_manifest): New function to fill
14415         the MANIFESTRESOURCE table.
14416
14417         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14418
14419         * reflection.h: Update to changes in class layout.
14420
14421         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14422         Reenable call to mono_runtime_is_shutting_down ().
14423
14424         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14425         determine if the runtime is shutting down.
14426
14427 2003-12-16  Jackson Harper <jackson@ximian.com>
14428
14429         * icall.c: comment out call to mono_runtime_is_shutting_down to
14430         fix build.
14431         
14432 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14433
14434         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14435         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14436
14437 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14438
14439         * reflection.c: move definition of swap_with_size
14440         to before its first call
14441
14442 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14443
14444         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14445
14446         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14447         icall.
14448
14449         * object.c: Fix warnings.
14450
14451         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14452         members if FlattenHierarchy is set.
14453
14454         * reflection.c (mono_image_add_decl_security): New function to emit
14455         declarative security.
14456
14457         * reflection.h reflection.c: Add support for declarative security.
14458
14459         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14460         
14461 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
14462
14463         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14464         
14465         * appdomain.c verify.c: Moved corlib version checking into its own
14466         function in appdomain.c since it needs to create vtables etc.
14467
14468 2003-12-13  Patrik Torstensson <p@rxc.se>
14469
14470         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
14471         instead of unwrapped server.
14472
14473 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
14474
14475         * verify.c (check_corlib): Fix field index.
14476
14477 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
14478
14479         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
14480         GetGacPath icall.
14481
14482 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
14483
14484         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
14485         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
14486         cope with sizeof(size_t) != sizeof(guint32).
14487
14488 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14489
14490         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
14491         in case of failure.
14492
14493 2003-12-10  Mark Crichton <crichton@gimp.org>
14494
14495         * icall.c: removed the GetNonZeroBytes.  We now handle this case
14496         in managed code.
14497
14498         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
14499
14500 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
14501
14502         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
14503         marked as deleted.
14504
14505 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
14506
14507         * verify.c (check_corlib): Handle the case when the version field is 
14508         initialized by a static constructor.
14509
14510 2003-12-08  Patrik Torstensson  <p@rxc.se>
14511
14512     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
14513
14514 2003-12-08  Martin Baulig  <martin@ximian.com>
14515
14516         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
14517         a MonoReflectionGenericParameter, also take the parameter index
14518         and name as arguments.
14519         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14520         (ves_icall_MonoGenericParam_initialize): New interncall.
14521         (ves_icall_Type_make_byref_type): New interncall.
14522
14523         * reflection.h (MonoReflectionGenericParam): Derive from
14524         MonoReflectionType, not just from MonoObject.  Added `refobj' and
14525         `index' fields.
14526
14527         * reflection.c (mono_reflection_define_generic_parameter): Create
14528         and return a new MonoReflectionGenericParam; don't initialize the
14529         constraints here.
14530         (mono_reflection_initialize_generic_parameter): New public method;
14531         initializes the constraints and creates the `param->pklass'.
14532
14533 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
14534
14535         * reflection.h reflection.c: Use the new fields 'num_types', 
14536         'num_fields' and 'num_methods' to track the number of types etc.
14537
14538         * verify.c (check_corlib): Check corlib version number.
14539
14540 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
14541
14542         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
14543         function works on all methods.
14544
14545 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
14546
14547         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
14548         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
14549         the custom_type_info flag of the transparent proxy.
14550         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
14551         objects that supports IRemotingTypeInfo.
14552         * object.h: Added custom_type_info field in transparent proxy.
14553
14554 2003-12-06  Martin Baulig  <martin@ximian.com>
14555
14556         * class.c (mono_class_create_from_generic): Removed.
14557         (mono_class_from_generic): Check `ginst->klass' before doing
14558         anything else.  This is important to fully support "recursive"
14559         generic types.
14560
14561         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
14562         empty `generic_inst->klass' before doing anything else.
14563
14564 2003-12-06  Dick Porter  <dick@ximian.com>
14565
14566         * verify.c: 
14567         * object.h:
14568         * icall.c:
14569         * locales.c: Use C structs to access class fields.  Don't do a
14570         conversion between MonoString and UChar because both are
14571         platform-endian UTF-16.  Compare now takes startindex and count
14572         parameters.  Add a char overload for IndexOf.  Speed up the
14573         invariant string IndexOf.
14574
14575 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
14576
14577         * Makefile.am (monosn_LDADD): Fix parallel build.
14578
14579 2003-12-04  Martin Baulig  <martin@ximian.com>
14580
14581         * icall.c
14582         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14583         (ves_icall_Type_make_array_type): New interncall.       
14584
14585 2003-12-04  Martin Baulig  <martin@ximian.com>
14586
14587         * locales.c: also change it in the !HAVE_ICU case.
14588
14589 2003-12-04  Dick Porter  <dick@ximian.com>
14590
14591         * icall.c:
14592         * locales.c: construct_compareinfo is now in CompareInfo, not
14593         CultureInfo.
14594
14595 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
14596
14597         * image.c (mono_image_load_file_for_image): Cache loaded images in the
14598         image->files array.
14599
14600         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
14601         table as well.
14602
14603         * assembly.c (mono_assembly_load_references): Only load references
14604         once.
14605
14606         * class.c (mono_class_from_name): Avoid linear search of the 
14607         EXPORTEDTYPE table.
14608
14609         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
14610
14611 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
14612
14613         * image.h (MonoImage): Add 'field_cache' field.
14614
14615         * loader.c (mono_field_from_token): Cache field lookups.
14616         
14617         * reflection.c (mono_module_get_object): Fix name property.
14618
14619         * icall.c (ves_icall_get_enum_info): Update after changes to 
14620         mono_metadata_get_constant_index ().
14621
14622         * icall.c: Get rid of get_type_info icall, use a separate icall for
14623         each type property to avoid needless memory allocations. Fixes #51514.
14624
14625         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
14626         to avoid needless binary searches.
14627
14628         * class.c (class_compute_field_layout): Move the initialization of
14629         field->def_value to mono_class_vtable ().
14630
14631         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
14632         non-corlib types.
14633
14634         * object.c (mono_object_allocate): Make it inline.
14635
14636         * object.c (mono_object_allocate_spec): Make it inline.
14637         
14638 2003-12-02  Dick Porter  <dick@ximian.com>
14639
14640         * locales.c (create_NumberFormat): NumberFormatInfo construction.
14641         Patch by Mohammad DAMT (mdamt@cdl2000.com).
14642
14643 2003-12-01  Dick Porter  <dick@ximian.com>
14644
14645         * threads.c: Fix signature and call in CreateMutex and
14646         CreateEvent.
14647
14648 2003-12-01  Dick Porter  <dick@ximian.com>
14649
14650         * icall.c: 
14651         * locales.c: Implement string compares and searching
14652
14653         * object.h: Add extra Thread field
14654
14655 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
14656
14657         * reflection.c (fixup_method): Add support for MonoCMethod.
14658
14659 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
14660
14661         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
14662
14663         * reflection.c (assembly_name_to_aname): Allow extra characters in
14664         assembly names. Fixes #51468.
14665
14666 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
14667
14668         * exception.c (mono_exception_from_name_domain): New helper function.
14669
14670         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
14671         exception object in the correct domain.
14672
14673         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
14674         formatting + make a copy a the input data.
14675
14676         * loader.c (mono_get_method_from_token): Methods which contain
14677         native code do not have entries in the ImplMap.
14678
14679         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
14680         Thanks to Gonzalo for spotting this.
14681         
14682         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
14683         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
14684
14685         * assembly.h (mono_assembly_load_from): Split the second part of 
14686         assembly loading into a new public function.
14687
14688         * exception.h (mono_get_exception_bad_image_format): New function.
14689
14690 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
14691
14692         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14693         Enumerate all modules inside a dynamic assembly. Fixes #51293.
14694         
14695         * icall.c: Add new icall for creating dynamic methods.
14696
14697         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
14698
14699         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
14700
14701         * reflection.c (mono_reflection_create_dynamic_method): New icall to
14702         create a dynamic method.
14703
14704         * reflection.c (resolve_object): New helper function.
14705
14706         * reflection.c: Generalize ReflectionMethodBuilder and the functions
14707         which manipulate it so they can also work on dynamic methods.
14708
14709         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
14710         creating the MonoReflectionMethodAux structure if it is not needed.
14711         
14712         * reflection.h verify.c: Update after changes to object layout.
14713
14714         * reflection.c (method_builder_encode_signature): Fix compilation on
14715         gcc 2.95.x.
14716
14717 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
14718
14719         * appdomain.h: Added support for context static fields. Added static_data
14720           field to MonoAppContext and renamed thread_static_fields to a more
14721           generic special_static_fields in MonoAppDomain, since it can now contain
14722           context static fields.
14723         * domain.c: Updated hashtable name.
14724         * object.c: Replaced field_is_thread_static() for a more generic
14725           field_is_special_static() which also checks for context static attribute.
14726           In mono_class_vtable(), added support for static context fields.
14727         * threads.c: Changed methods that manage thread static fields to more
14728           generic methods so they can be reused both for thread and context static
14729           data.
14730         * threads.h: Declared some new methods.
14731
14732 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
14733
14734         * reflection.h: Update after changes to the managed types.
14735
14736         * reflection.c (encode_custom_modifiers): New helper function.
14737
14738         * reflection.c (method_encode_signature): Emit custom modifiers.
14739
14740         * reflection.c (field_encode_signature): Emit custom modifiers.
14741
14742 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
14743
14744         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
14745
14746         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
14747         implementation.
14748
14749         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
14750         icall.
14751
14752         * object.c (mono_field_get_value_object): New function.
14753
14754         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
14755         specific.
14756
14757 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
14758
14759         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
14760         return a preallocated out-of-memory exception instance.
14761
14762         * object.c (out_of_memory): Use the new function.
14763
14764         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
14765         flag is before the custom modifiers. Fixes #49802.
14766
14767 2003-11-16  Martin Baulig  <martin@ximian.com>
14768
14769         * class.c (mono_class_is_open_constructed_type): Implemented the
14770         MONO_TYPE_GENERICINST case.
14771
14772 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
14773
14774         * assembly.c (mono_assembly_fill_assembly_name): New function to
14775         fill out the MonoAssemblyName structure.
14776         (mono_assembly_open): Use the new function.
14777
14778         * icall.c (fill_reflection_assembly_name): New helper function.
14779
14780         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
14781         new function.
14782
14783         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
14784
14785 2003-11-15  Martin Baulig  <martin@ximian.com>
14786
14787         * class.c (mono_class_is_open_constructed_type): New public
14788         function; checks whether a type is an open constructed type,
14789         ie. whether it still contains type parameters.
14790         (mono_class_inflate_generic_type): If we're a type parameter and
14791         the inflated type is also a MONO_TYPE_(M)VAR, return the original
14792         type.
14793
14794         * class.h (MonoGenericInst): Added `guint32 is_open'.
14795
14796         * loader.c (method_from_methodspec): Check whether we're an open
14797         or closed constructed type and set `ginst->is_open'.
14798
14799         * reflection.c (mono_reflection_bind_generic_parameters): Check
14800         whether we're an open or closed constructed type and set
14801         `ginst->is_open'.
14802         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
14803         from open constructed types.
14804
14805 2003-11-15  Martin Baulig  <martin@ximian.com>
14806
14807         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14808         a generic instance (instead of a generic type declaration) with
14809         unbound generic parameters, bind them to our actual types.
14810
14811 2003-11-14  Martin Baulig  <martin@ximian.com>
14812
14813         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
14814
14815         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14816         an interface type, populate `res->interfaces' with instantiated
14817         versions of all the interfaces we inherit.
14818
14819 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
14820
14821         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
14822         when MONO_PATH is set but doesn't contain the install dir.
14823
14824 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14825
14826         * icall.c:
14827         (ves_icall_Type_GetInterfaces): don't return an interface twice when
14828         it's also implemented in base classes. Fixes bug #50927.
14829
14830 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
14831
14832         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
14833         if this method is called from a finalizer. Fixes #50913.
14834
14835 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
14836
14837         * threads.c: Implement VolatileRead/VolatileWrite
14838
14839         * icall.c: Add new icalls for VolatileRead/VolatileWrite
14840
14841 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14842
14843         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
14844         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
14845         2.95.3.
14846
14847         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
14848         from Peter Ross (pro@missioncriticalit.com).
14849         
14850 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
14851
14852         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
14853
14854 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14855
14856         * assembly.c (mono_assembly_load_references): Disable check because it
14857         triggers on older corlibs which lots of people have.
14858
14859 2003-11-12  Jackson Harper  <jackson@ximian.com>
14860
14861         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
14862         load corlib.dll if mscorlib.dll is not found.
14863         * assembly.h: Remove corlib name define.
14864         * class.c:
14865         * domain.c:
14866         * image.c: Change corlib name to mscorlib.
14867         
14868 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14869
14870         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
14871
14872 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
14873
14874         * appdomain.h: Added loader_optimization here to sync with the C#
14875         code, and add disallow_binding_redirects field.
14876
14877 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
14878
14879         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
14880
14881         * reflection.c (mono_image_build_metadata): Fix crash on modules
14882         with no types.
14883
14884         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
14885
14886         * icall.c (ves_icall_get_method_info): Return callingConvention as
14887         well.
14888
14889         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
14890         namespaces from the EXPORTEDTYPE table as well.
14891
14892         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
14893         from all modules inside the assembly.
14894         
14895 2003-11-11  Martin Baulig  <martin@ximian.com>
14896
14897         * reflection.c (mono_reflection_bind_generic_parameters): Make
14898         this work for interfaces.
14899
14900 2003-11-11  Martin Baulig  <martin@ximian.com>
14901
14902         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
14903
14904 2003-11-11  Martin Baulig  <martin@ximian.com>
14905
14906         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
14907         "MonoInflatedMethod" and "MonoInflatedCtor".
14908
14909 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
14910
14911         * reflection.c (resolution_scope_from_image): Use the assembly table
14912         from the manifest module, since other modules don't have it.
14913
14914         * debug-helpers.c (mono_type_full_name): New helper function.
14915
14916         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
14917
14918         * image.c (mono_image_load_file_for_image): New public function which
14919         is a replacement for the load_file_for_image in class.c.
14920
14921         * assembly.c (mono_assembly_load_module): A wrapper for the function
14922         above which does assembly association and reference loading too.
14923
14924         * class.c (mono_class_from_name): Call mono_assembly_load_module.
14925
14926 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14927
14928         * appdomain.c: not all of the attributes for the full assembly name
14929         are required and the order doesn't matter. Fixes bug #50787.
14930
14931 2003-11-10  Dick Porter  <dick@ximian.com>
14932
14933         * locales.c: Use platform-endian UTF16
14934
14935 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
14936
14937         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
14938         
14939 2003-11-10  Martin Baulig  <martin@ximian.com>
14940
14941         * metadata.c
14942         (mono_metadata_load_generic_params): Make this actually work.
14943
14944         * reflection.c (mono_reflection_bind_generic_parameters): If our
14945         parent is a generic instance, pass all the `types' to it, no
14946         matter whether it has the same number of type parameters or not.
14947
14948 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
14949
14950         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
14951
14952         * assembly.c (mono_assembly_load_references): Move the image<->assembly
14953         assignment code to this function so it gets called recursively for all
14954         modules.
14955
14956         * image.c (load_modules): Remove the assembly assignment since it is
14957         now done by mono_assembly_load_references.
14958         
14959         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14960         Add 'module' argument.
14961         (mono_module_get_types): New helper function.
14962         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
14963
14964 2003-11-08  Martin Baulig  <martin@ximian.com>
14965
14966         * class.c (mono_class_inflate_generic_method): Interface method
14967         don't have a header.
14968
14969         * reflection.c (mono_image_get_methodspec_token): Take an
14970         additional `MonoGenericInst *' argument instead of reading it from
14971         the header; this is necessary to support interfaces.
14972         (mono_image_create_token): Pass the `MonoGenericInst *' from the
14973         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
14974         (inflated_method_get_object): Take an additional `MonoGenericInst *'
14975         argument.
14976
14977         * reflection.h (MonoReflectionInflatedMethod): Added
14978         `MonoGenericInst *ginst'.
14979
14980 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
14981
14982         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
14983
14984 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
14985
14986         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
14987
14988 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
14989
14990         * reflection.c 
14991         (reflection_methodbuilder_from_method_builder):
14992         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
14993         initialize a ReflectionMethodBuilder structure.
14994         (mono_image_get_methodbuilder_token):
14995         (mono_image_get_ctorbuilder_token): New functions to emit memberref
14996         tokens which point to types in another module inside the same assembly.
14997
14998         * reflection.c: Use the new helper functions.
14999         
15000         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
15001
15002         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
15003         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
15004
15005         * reflection.c (resolution_scope_from_image): Emit a moduleref if
15006         neccesary.
15007
15008         * reflection.c (mono_image_build_metadata): Emit metadata only for the
15009         current module. Emit the manifest only for the main module.
15010
15011         * reflection.c (mono_image_create_token): Add assertion when a 
15012         memberref needs to be created.
15013
15014         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
15015
15016         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
15017         larger buffer for the custom attribute blob. Fixes #50637.
15018         
15019 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15020
15021         * threadpool.c: notify listener on async processing handles after
15022         invoking the async callback. Thanks to Zoltan.
15023
15024 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15025
15026         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
15027         avoid code duplication.
15028
15029         * reflection.h (MonoDynamicImage): New type which is currently unused,
15030         but will be used through the ref.emit code in place of 
15031         MonoDynamicAssembly.
15032
15033         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15034         object layout.
15035
15036         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
15037         a MonoDynamicImage instead of just a MonoImage.
15038         
15039         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
15040         icalls to ModuleBuilder but keep their semantics, so they will work
15041         with moduleb->assemblyb. This will change later.
15042         
15043 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15044
15045         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15046         object layout.
15047
15048         * reflection.c (mono_image_build_metadata): Avoid creation of a default
15049         main module, since it is now done by the managed code.
15050
15051 2003-11-03  Martin Baulig  <martin@ximian.com>
15052
15053         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
15054         `ginst->klass' here.
15055         (method_encode_methodspec): Don't use the `ginst->generic_method's
15056         klass if it's a generic instance, use `ginst->klass' in this case.
15057
15058 2003-11-03  Martin Baulig  <martin@ximian.com>
15059
15060         * reflection.c (mono_image_get_generic_method_param_info):
15061         Removed, use mono_image_get_generic_param_info() instead.
15062         (mono_image_get_type_info): Write the GenericParam table before
15063         the Method table.  This is neccessary because in the GenericParam
15064         table, type parameters of the class (ie. '!0' etc.) must come
15065         before the ones from its generic methods (ie. '!!0' etc).
15066
15067 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15068
15069         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
15070
15071 2003-11-02  Martin Baulig  <martin@ximian.com>
15072
15073         * reflection.c (create_generic_typespec): Take a
15074         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
15075         the generic parameters from it.
15076
15077 2003-11-02  Martin Baulig  <martin@ximian.com>
15078
15079         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
15080         instead of a `MonoClassField *' since we just need the type.
15081         (create_generic_typespec): New static function.  Creates a
15082         TypeSpec token for a generic type declaration.
15083         (mono_image_get_generic_field_token): New static function.
15084         (mono_image_create_token): If we're a FieldBuilder in a generic
15085         type declaration, call mono_image_get_generic_field_token() to get
15086         the token.
15087
15088 2003-11-02  Martin Baulig  <martin@ximian.com>
15089
15090         * reflection.h
15091         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
15092         `MonoReflectionGenericInst *declaring_type' and
15093         `MonoReflectionGenericInst *reflected_type' fields.
15094
15095         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
15096         `MonoReflectionGenericInst *declaring_type' and a
15097         `MonoReflectionGenericInst *reflected_type' argument instead of a
15098         single `MonoReflectionGenericInst *type' one.  Set
15099         `res->declaring_type' and `res->reflected_type' from them.
15100         (mono_reflection_inflate_field): Likewise.      
15101
15102 2003-11-02  Martin Baulig  <martin@ximian.com>
15103
15104         * class.c (mono_class_setup_vtable): Don't store generic methods
15105         in the vtable.  
15106
15107 2003-11-02  Martin Baulig  <martin@ximian.com>
15108
15109         * reflection.h (MonoReflectionGenericInst): Added
15110         `MonoReflectionType *declaring_type'.
15111
15112         * reflection.c (mono_reflection_bind_generic_parameters): Use
15113         `if (tb->parent)' instead of `klass->parent'.
15114
15115 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
15116
15117         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
15118         with an empty ASSEMBLY table.
15119
15120         * reflection.c (mono_image_build_metadata): Avoid using the same loop
15121         variable in the inner and outer loops.
15122
15123 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15124
15125         * metadata.h (mono_metadata_make_token): Put parentheses around macro
15126         argument.
15127
15128         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
15129         
15130         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
15131         icalls. Instead, do everything in managed code. This is needed since
15132         it is hard to restore the original domain etc. in unmanaged code in the
15133         presence of undeniable exceptions.
15134
15135         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
15136         New icalls to push and pop appdomain refs.
15137
15138 2003-10-31  Martin Baulig  <martin@ximian.com>
15139
15140         * class.c (inflate_generic_type): Renamed to
15141         mono_class_inflate_generic_type() and made it public.
15142
15143         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
15144         New interncall.
15145
15146         * loader.c (mono_field_from_memberref): Also set the retklass for
15147         typespecs.
15148
15149         * fielder.c (mono_image_get_inflated_field_token): New static
15150         method; creates a metadata token for an inflated field.
15151         (mono_image_create_token, fixup_method): Added support for
15152         "MonoInflatedField".
15153         (fieldbuilder_to_mono_class_field): New static function.
15154         (mono_reflection_inflate_field): New public function.
15155
15156         * reflection.h
15157         (MonoReflectionGenericInst): Added `MonoArray *fields'.
15158         (MonoReflectionInflatedField): New typedef.     
15159
15160 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
15161
15162         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
15163         for Solaris and other platforms without s6_addr16
15164
15165 2003-10-30  Martin Baulig  <martin@ximian.com>
15166
15167         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
15168         argument instead of two.
15169         (mono_class_inflate_generic_signature): Likewise.
15170         (inflate_generic_header): Likewise.
15171         (mono_class_inflate_generic_method): Likewise.  In addition, if
15172         `ginst->klass' is set, it becomes the new `method->klass'.
15173
15174         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
15175         field.
15176
15177         * reflection.c (encode_generic_method_sig): Write a 0xa as the
15178         first byte. [FIXME]
15179         (method_encode_methodspec): If we have generic parameters, create
15180         a MethodSpec instead of a MethodRef.
15181         (fixup_method): Added support for "MonoInflatedMethod" and
15182         "MonoInflatedCtor".
15183         (mono_image_create_token): Added support for "MonoInflatedMethod"
15184         and "MonoInflatedCtor".
15185         (inflated_method_get_object): New static function; returns a
15186         managed "System.Reflection.MonoInflatedMethod" object.
15187         (mono_reflection_bind_generic_method_parameters): Return a
15188         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
15189         (mono_reflection_inflate_method_or_ctor): Likewise.
15190         (mono_image_get_generic_method_param_info): Initialize unused
15191         fields to zero.
15192         (mono_image_get_generic_param_info): Likewise.
15193
15194         * reflection.h (MonoReflectionInflatedMethod): New public
15195         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
15196         "S.R.MonoInflatedCtor" classes.
15197
15198         * loader.c (method_from_memberref): If we're a TypeSpec and it
15199         resolves to a generic instance, inflate the method.
15200
15201 2003-10-28  Dick Porter  <dick@ximian.com>
15202
15203         * object.c (mono_runtime_run_main): Convert command-line arguments
15204         into utf8, falling back to the user's locale encoding to do so.
15205
15206 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
15207
15208         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
15209         at this time.
15210
15211         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
15212
15213         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
15214         up icalls at method definition time. Partially fixes #33569.
15215
15216 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
15217
15218         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
15219         marshalling of arrays. Fixes #50116.
15220
15221         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15222
15223         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15224         points to a vtable in the dying appdomain.
15225
15226         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15227         listeners into unmanaged code inside the lock.
15228
15229         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15230         domains and add some comments.
15231
15232 2003-10-25  Martin Baulig  <martin@ximian.com>
15233
15234         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15235
15236         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15237
15238         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15239         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15240         currently parsing.  Create the generic class and store it in
15241         `generic_inst->klass' before parsing the type arguments.  This is
15242         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15243         for an example.
15244         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15245         to support recursive typespec entries.
15246
15247         * class.c (mono_class_setup_parent): If our parent is a generic
15248         instance, we may get called before it has its name set.
15249         (mono_class_from_generic): Splitted into
15250         mono_class_create_from_generic() and mono_class_initialize_generic().
15251
15252 2003-10-25  Martin Baulig  <martin@ximian.com>
15253
15254         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15255         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15256         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15257         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15258
15259         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15260         (create_typespec): Likewise.
15261         (mono_reflection_bind_generic_parameters): Return a
15262         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15263         (mono_reflection_inflate_method_or_ctor): New public function.
15264
15265         * reflection.h (MonoReflectionGenericInst): New typedef.        
15266
15267 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15268
15269         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15270         inside the domain lock. Fixes #49993.
15271         
15272         * object.c (mono_class_vtable): When typed allocation is used, 
15273         allocate vtables in the GC heap instead of in the mempool, since the
15274         vtables contain GC descriptors which are used by the collector even
15275         after the domain owning the mempool is unloaded.
15276
15277         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15278
15279         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15280         reflect what it does. Also invalidate mempools instead of freeing
15281         them if a define is set.
15282
15283         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15284         of the appdomain.
15285         
15286         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15287         hold the finalizable objects in this domain.
15288
15289         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15290         appdomain.
15291
15292         * appdomain.c (mono_domain_set): New function to set the current
15293         appdomain, but only if it is not being unloaded.
15294
15295         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15296         appdomain which is being unloaded.
15297         
15298         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15299         unloading of the root appdomain.
15300
15301         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15302         icall to execute a method in another appdomain. Intended as a 
15303         replacement for InternalSetDomain, which can confuse the code 
15304         generation in the JIT.
15305
15306         * appdomain.c (mono_domain_is_unloading): New function to determine
15307         whenever an appdomain is unloading.
15308
15309         * appdomain.c (mono_domain_unload): New function to correctly unload
15310         an appdomain.
15311
15312         * assembly.c (mono_assembly_load_references): Check that an assembly
15313         does not references itself.
15314
15315         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15316         domain manually, it asks the finalizer thread to do it, then waits for
15317         the result. Also added a timeout.
15318
15319         * icall.c: Register the new icalls.
15320
15321         * threads.h threads.c: Export the mono_gc_stop_world and 
15322         mono_gc_start_world functions.
15323         
15324         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15325         function to fill out the mempool with 0x2a.
15326
15327 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15328
15329         * reflection.h (MonoReflectionMethodAux): New structure to store
15330         information which is rarely used, thus is not in the MonoMethod
15331         structure.
15332
15333         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15334         store the aux info.
15335
15336         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15337         and marshalling info into the aux structure.
15338
15339         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15340         from the aux structure.
15341
15342         * loader.c (mono_method_get_param_names): Retrieve the param names from
15343         the aux structure.
15344         
15345 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15346
15347         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15348         warning.
15349
15350 2003-10-21  Dick Porter  <dick@ximian.com>
15351
15352         * socket-io.c
15353         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
15354         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
15355
15356 2003-10-21  Martin Baulig  <martin@ximian.com>
15357
15358         * reflection.c (mono_reflection_bind_generic_parameters):
15359         `klass->parent' is NULL for interfaces.
15360
15361 2003-10-21  Martin Baulig  <martin@ximian.com>
15362
15363         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15364
15365 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15366
15367         * exception.c (mono_exception_from_name_msg): New helper function for
15368         creating exceptions and initializing their message field.
15369
15370         * exception.c: Simplify functions using the new helper.
15371
15372         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15373         New function.
15374
15375         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15376         mono_raise_exception, since otherwise gcc doesn't generate the function
15377         epilog for raise_exception, confusing the stack unwinding in the JIT.
15378         Fixes #45043.
15379
15380         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15381         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15382         Fixes #49499.
15383
15384 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15385
15386         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15387         utf8.
15388
15389 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15390
15391         * icall.c: Removed GetUninitializedObject method because
15392           AllocateUninitializedClassInstance does the same.
15393
15394 2003-10-18  Martin Baulig  <martin@ximian.com>
15395
15396         * class.c (inflate_generic_signature): Renamed to
15397         mono_class_inflate_generic_signature() and made it public.
15398         (my_mono_class_from_generic_parameter): New static function; if we
15399         don't already have the generic parameter's MonoClass, create a
15400         very simple one which is just used internally in the runtime and
15401         not passed back to managed code.
15402
15403         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15404
15405         * metadata.h (MonoMethodSignature): Moved the
15406         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15407         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15408
15409         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15410         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15411         interncall on the MonoMethod class, not on MethodInfo.
15412         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15413         calling mono_reflection_bind_generic_method_parameters() directly.
15414
15415         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15416         return the already computed `method->signature'.
15417         (method_from_methodspec): New static function to load a method
15418         from a MethodSpec entry.
15419         (mono_get_method_from_token): Call the new method_from_methodspec()
15420         for MethodSpec tokens.  
15421         (mono_get_method_from_token): If we're a generic method, load the
15422         type parameters.
15423
15424         * reflection.c (mono_image_get_memberref_token): Allow
15425         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15426         table.
15427         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15428         (mono_image_create_token): First check whether it's a generic
15429         method (so we'd need to create a MethodSpec), then do the other
15430         two alternatives.
15431         (mono_reflection_bind_generic_method_parameters): Return a
15432         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15433         called directly from the interncall.
15434
15435 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15436
15437         * reflection.c (load_public_key): Move loading of the public key
15438         into managed code.
15439
15440         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15441
15442         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15443         fields.
15444
15445         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15446         culture, hash_alg and public_key. Fixes #49555.
15447
15448 2003-10-17  Martin Baulig  <martin@ximian.com>
15449
15450         * class.h (MonoGenericInst): Moved this declaration here and added
15451         `MonoMethod *generic_method'.
15452
15453         * icall.c
15454         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15455         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15456
15457         * metadata.c (mono_metadata_type_equal): Two types of
15458         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15459         index; ie. don't compare the address of the `MonoGenericParam'
15460         structure.
15461         (mono_metadata_load_generic_params): Removed the `MonoMethod
15462         *method' argument.
15463
15464         * metadata.h (MonoGenericInst): Moved declaration to class.h.
15465         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
15466
15467         * reflection.c (method_encode_signature): Encode the number of
15468         generic parameters.
15469         (encode_generic_method_sig): New static function.
15470         (method_encode_methodspec): New static function; creates an entry
15471         in the MethodSpec table for a generic method.
15472         (mono_image_get_methodspec_token): New static function.
15473         (mono_image_create_token): Call mono_image_get_methodspec_token()
15474         for generic methods.
15475         (mono_reflection_bind_generic_method_parameters): New public
15476         function.  Instantiates a generic method.
15477
15478 2003-10-16  Martin Baulig  <martin@ximian.com>
15479
15480         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
15481         *gen_params' here from MonoMethodHeader.
15482
15483         * metadata.c (mono_metadata_parse_method_signature): If we have
15484         generic parameters, initialize `method->gen_params' and then set
15485         the correct `type->data.generic_param' in all the parameters.
15486
15487 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
15488
15489         * threads.c (mono_threads_get_default_stacksize): New function to 
15490         return the default stacksize.
15491
15492         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
15493         termination of the finalizer thread, since the previous method had
15494         race conditions. Fixes #49628.
15495
15496         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
15497         as for the other managed threads.
15498
15499 2003-10-16  Martin Baulig  <martin@ximian.com>
15500
15501         * class.c (inflate_generic_signature): Copy `generic_param_count'
15502         and `gen_params'.
15503
15504         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
15505         New interncall.
15506
15507         * metadata.c (mono_metadata_parse_method_signature): Actually set
15508         the `method->generic_param_count' here.
15509         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
15510
15511 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
15512
15513         * object.h: Add a new field to TypedRef to simplify the implementation
15514         of the REFANY opcodes in the JIT.
15515
15516         * icall.c: Make use of the new field.
15517
15518         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
15519         dynamically.
15520
15521 2003-10-15  Martin Baulig  <martin@ximian.com>
15522
15523         * class.c (mono_class_from_gen_param): Renamed to
15524         mono_class_from_generic_parameter() and moved most of the
15525         functionality from mono_reflection_define_generic_parameter()
15526         here; ie. we create a "real" class here.
15527         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
15528         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
15529         previously been called.
15530
15531         * class.h (MonoGenericParam): Moved the declaration of this struct
15532         here from metadata.h and added `MonoMethod *method'.
15533
15534         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
15535         interncall.
15536
15537         * loader.c (mono_get_method_from_token): If we have any generic
15538         parameters, call mono_metadata_load_generic_params() to read them
15539         from the MONO_TABLE_GENERICPAR.
15540
15541         * metadata.c (mono_metadata_load_generic_params): Added
15542         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
15543
15544         * metadata.h (MonoMethodSignature): Replaced
15545         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
15546         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
15547
15548         * reflection.c (mono_reflection_define_generic_parameter): Moved
15549         most of the functionality into the new
15550         mono_class_from_generic_parameter(); set the `method' field if
15551         we're a method parameter.       
15552
15553 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
15554
15555         * marshal.c (emit_struct_conv): if native size is 0
15556         emit no code.
15557
15558 2003-10-14  Martin Baulig  <martin@ximian.com>
15559
15560         * icall.c: The generics API has changed in the spec since it was
15561         added to System.Type; these modifications make it match the spec
15562         again.
15563         (ves_icall_Type_GetGenericParameters): Renamed to
15564         `ves_icall_Type_GetGenericArguments'.
15565         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
15566         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
15567         `ves_icall_MonoType_get_HasGenericArguments'.
15568         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
15569         `ves_icall_MonoType_get_IsGenericParameter'.
15570         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
15571         this is no interncall anymore.
15572         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
15573         `ves_icall_TypeBuilder_get_IsGenericParameter'.
15574
15575 2003-10-14  Martin Baulig  <martin@ximian.com>
15576
15577         * reflection.c (mono_reflection_bind_generic_parameters): Also
15578         inflate generic methods if we're reading the class from IL.
15579
15580 2003-10-13  Martin Baulig  <martin@ximian.com>
15581
15582         * reflection.c (mono_reflection_define_generic_parameter): This
15583         method isn't called directly from the icall anymore; take a
15584         `MonoReflectionAssemblyBuilder *' so we can use this for type and
15585         method generic parameters.
15586         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
15587         (method_builder_encode_signature): Encode generic parameters.
15588         (mono_image_get_method_info): Write generic params to the
15589         MONO_TABLE_GENERICPARAM table.
15590
15591         * reflection.h (MonoReflectionMethodBuilder): Added
15592         `MonoArray *generic_params'.
15593
15594         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
15595
15596         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
15597         wrapper for mono_reflection_define_generic_parameter().
15598         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
15599
15600 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
15601
15602         * marshal.h: Add missing function to fix build.
15603
15604         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
15605         the SetLastError pinvoke attribute.
15606
15607         * marshal.c (mono_marshal_set_last_error): New helper function called
15608         by the generated code.
15609         
15610         * marshal.c (mono_mb_emit_branch): New helper function.
15611
15612         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
15613
15614         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15615         classes as parameters and return values of delegates. Fixes #29256. 
15616
15617 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
15618
15619         * locales.c: use gint32 in non HAVE_ICU case
15620
15621 2003-10-11  Martin Baulig  <martin@ximian.com>
15622
15623         * mono-debug.c (mono_debug_add_method): Added a workaround for
15624         bug #48591.
15625
15626 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
15627
15628         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
15629         delegates passed to native code must use the STDCALL calling 
15630         convention. Fixes #35987.
15631
15632 2003-10-10  Martin Baulig  <martin@ximian.com>
15633
15634         * class.c (inflate_generic_type): If we're inflating for a generic
15635         type instance (and not for a generic method), return
15636         MONO_TYPE_MVAR unchanged.
15637
15638 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15639
15640         * string-icalls.c: Join ignores null strings in the source array.
15641         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
15642         * threads.c: GetAvailableTheads is slightly more accurate.
15643
15644 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
15645
15646         * threads.h threads.c : add mono_threads_set_default_stacksize
15647         and pass default to CreateThread calls.
15648
15649 2003-10-09  Dick Porter  <dick@ximian.com>
15650
15651         * icall.c:
15652         * locales.h:
15653         * locales.c: Internal calls for constructing CultureInfo and
15654         related objects from libicu (if its available.)
15655
15656 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
15657
15658         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
15659
15660 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15661
15662         * threadpool.c: added an argument to async_invoke_thread that is the
15663         item to process, pass the MonoAsyncResult to the thread start function
15664         when creating a new thread. This way we don't need to acquire any lock
15665         when we're creating a new thread. Readded a semaphore for faster
15666         response times (instead of that Sleep i added).
15667
15668 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
15669
15670         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
15671         get daylight change dates better on Windows, fix handling
15672         of platforms without tm_gmtoff.
15673
15674 2003-10-06  Martin Baulig  <martin@ximian.com>
15675
15676         * class.c (inflate_generic_method): Renamed to
15677         mono_class_inflate_generic_method() and made public.
15678         (mono_class_init): Don't inflate the generic methods here.
15679         (mono_class_from_generic): Added `gboolean inflate_methods'
15680         argument.  Inflate the methods here.
15681
15682         * loader.c (mono_method_get_param_names): Ignore instances of
15683         generic types for the moment.
15684
15685         * reflection.c (fixup_method): Added support for inflated methods.
15686         (mono_image_create_token): Use mono_image_get_methodref_token()
15687         for inflated methods.
15688         (mono_custom_attrs_from_param): Ignore instances of generic types
15689         for the moment.
15690         (mono_reflection_bind_generic_parameters): New public function.
15691         Moved all the functionality from
15692         ves_icall_Type_BindGenericParameters() here and added support for
15693         dynamic types.
15694         (mono_reflection_define_generic_parameter): Initialize
15695         `klass->methods' here.
15696
15697         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
15698         functionality into mono_reflection_define_generic_parameter().
15699         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
15700         TypeBuilder, return that TypeBuilder.
15701
15702 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15703
15704         * appdomain.c: removed mono_delegate_semaphore.
15705
15706         * threadpool.c:
15707         (mono_thread_pool_add): moved hash table creation inside and the thread 
15708         creation outside of the critical region.
15709         (mono_thread_pool_finish): removed obsolete code.
15710         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
15711         continue or exit the thread depending on the queue.
15712
15713 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
15714
15715         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
15716         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
15717         handle more bool marshalling options
15718
15719 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
15720
15721         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
15722         arrays of structs. Also add a more descriptive error message when
15723         a structure member is marshalled as LPArray.
15724
15725 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
15726
15727         * marshal.c (mono_marshal_get_native_wrapper): Add support for
15728         marshalling arrays of complex types. Fixes #29098. Also remove an
15729         usused and incomplete function.
15730
15731 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
15732
15733         * gc.c: report heap_size - free_bytes as total memory allocated
15734         (bug#49362).
15735
15736 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
15737
15738         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
15739         fix timezone handling problems on Windows.
15740         
15741         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
15742         asserts when the year is outside the range handled by ms the functions.
15743
15744         * class.c (setup_interface_offsets): If the class is an interface,
15745         fill out its interface_offsets slot.
15746
15747 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15748
15749         * threadpool.c: mark threadpool threads as background.
15750
15751 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
15752
15753         * decimal.c - define DECINLINE to nothing if not using GCC
15754
15755 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
15756
15757         * assembly.c: More refcount fixes.
15758
15759 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15760
15761         * string-icalls.c: if we're not trimming, return the same string.
15762         When not splitting, don't create a new string.
15763
15764 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15765
15766         * image.c:
15767         (mono_image_open): increment the ref_count inside the critical section.
15768
15769 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
15770
15771         * image.c (mono_image_open): Fix reference counting bug.
15772
15773 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
15774
15775         * marshal.c (mono_marshal_type_size) struct alignment changed for 
15776         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
15777         64bits. Avoid leak in mono_marshal_get_native_wrapper when
15778         mono_lookup_pinvoke_call throws.        
15779
15780 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
15781
15782         * reflection.c (mono_reflection_parse_type): Fix #49114.
15783
15784         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
15785         temporary workaround for cygwin header problem.
15786
15787         * object.c (mono_object_isinst): Synchronize this with the code
15788         generated by the JIT for casts.
15789
15790 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
15791
15792         * reflection.c (encode_type): Fix #38332.
15793
15794 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
15795
15796         * marshal.c (mono_marshal_method_from_wrapper): New function to return
15797         the original method from the wrapper method.
15798
15799 2003-09-25  Martin Baulig  <martin@ximian.com>
15800
15801         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
15802         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
15803         (ves_icall_Type_get_IsGenericInstance): New interncall.
15804
15805 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
15806
15807         * object.c: fix cast warning in big endian code.
15808
15809 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
15810
15811         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
15812         
15813 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15814
15815         * assembly.c: don't call check_env from mono_assembly_load. It's
15816         already done once in mono_assemblies_init and may cause headaches when
15817         multiple threads are loading assemblies.
15818
15819 2003-09-19  Martin Baulig  <martin@ximian.com>
15820
15821         * reflection.c (mono_reflection_define_generic_parameter): Don't
15822         allocate `klass->methods', set `klass->flags' to
15823         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
15824
15825 2003-09-18  Martin Baulig  <martin@ximian.com>
15826
15827         * class.c (mono_class_init): Don't create `class->methods' if it's
15828         already initialized.
15829
15830         * metadata.c (mono_metadata_load_generic_params): Make this
15831         actually work.
15832
15833         * reflection.c (mono_reflection_define_generic_parameter): Set
15834         parent class and interfaces from the constraints.
15835
15836         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
15837         to keep this struct in sync with the declaration in TypeBuilder.cs.
15838
15839 2003-09-17  Martin Baulig  <martin@ximian.com>
15840
15841         * metadata.h (MonoType): Replaced the data's `int type_param'
15842         field with `MonoGenericParam *generic_param'.
15843         (MonoGenericParam): Added `MonoClass *klass'.
15844
15845         * class.c (mono_class_from_gen_param): Removed the
15846         `MonoImage *image' and `int type_num' arguments.
15847
15848         * metadata.c (mono_metadata_parse_generic_param): New static
15849         method; creates a MonoGenericParam which just contains the index.
15850         (do_mono_metadata_parse_type): Call
15851         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
15852         MONO_TYPE_MVAR.
15853
15854         * reflection.c (mono_image_typedef_or_ref): Generic type
15855         parameters may be in the same assembly, but never use a typedef
15856         for them.
15857         (mono_reflection_define_generic_parameter): We're now creating a
15858         "real" class for the type parameter; it's now safe to call
15859         mono_class_from_mono_type() on the class'es type, it'll do the
15860         right thing.
15861
15862 2003-09-16  Martin Baulig  <martin@ximian.com>
15863
15864         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
15865         `symfile->range_entry_size' and `symfile->class_entry_size' here;
15866         the `symfile' data structure must be fully initialized before it
15867         gets added to the table.
15868
15869 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
15870
15871         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
15872
15873         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
15874         class init trampolines.
15875
15876 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
15877
15878         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
15879         to the built-in profiler to turn off time and allocation profiling
15880         respectively.
15881
15882 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
15883
15884         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
15885         g_direct_equal.
15886
15887         * debug-helpers.c (mono_method_full_name): Print the wrapper type
15888         in human readable form.
15889
15890 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
15891
15892         * reflection.c icall.c: Fixed warnings.
15893
15894         * image.c (load_class_names): Use a temporary hash table to hold the
15895         namespaces in order to avoid doing many string comparisons.
15896
15897         * image.h: Fix typo.
15898
15899         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
15900         Pass NULL instead of g_direct_equal to the GHashTable constructor 
15901         since the NULL case is short-circuited inside g_hash_table_lookup, 
15902         leading to better performance.  
15903
15904         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
15905         obtain the first custom attribute for a given index. Depends on the
15906         CustomAttribute table being sorted by the parent field.
15907
15908         * reflection.c (mono_custom_attrs_from_index): Use the new function 
15909         for better performance.
15910
15911 2003-09-07  Martin Baulig  <martin@ximian.com>
15912
15913         * class.c (mono_class_init): If we're a generic instance, inflate
15914         all our methods instead of loading them from the image.
15915         (mono_class_from_generic): Set `class->methods = gklass->methods'.
15916
15917 2003-09-07  Martin Baulig  <martin@ximian.com>
15918
15919         * mono-debug-debugger.c: Added support for constructors.
15920
15921 2003-09-06  Martin Baulig  <martin@ximian.com>
15922
15923         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
15924         New interncall.
15925
15926         * reflection.c (mono_reflection_setup_generic_class): Call
15927         ensure_runtime_vtable() to create the vtable.
15928
15929 2003-09-05  Martin Baulig  <martin@ximian.com>
15930
15931         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
15932         MONO_TYPE_MVAR.
15933
15934 2003-09-04  Martin Baulig  <martin@ximian.com>
15935
15936         * reflection.c (mono_reflection_define_generic_parameter): Generic
15937         parameters start with zero.
15938
15939 2003-09-04  Martin Baulig  <martin@ximian.com>
15940
15941         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15942
15943         * reflection.h (MonoReflectionGenericParam): New typedef.
15944         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
15945         the generic parameters from the managed TypeBuilder.
15946
15947         * reflection.c (mono_reflection_define_generic_parameter): New function.
15948         (mono_reflection_create_runtime_class): Encode generic parameters.
15949         (mono_reflection_setup_generic_class): New function; this is
15950         called after adding adding all generic params to the TypeBuilder.
15951         (encode_type): Added MONO_TYPE_VAR.
15952
15953 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
15954
15955         * class.h class.c (mono_class_needs_cctor_run): Moved this method
15956         here from the JIT.
15957
15958         * assembly.h assembly.c: Moved the AOT loading code into an assembly
15959         load hook.
15960
15961 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
15962
15963         * reflection.h reflection.c class.h class.c: Delete duplicate 
15964         definition of mono_type_get_name () from reflection.c and export the
15965         one in class.c.
15966
15967         * class.c: Class loading fixes from Bernie Solomon 
15968         (bernard@ugsolutions.com).
15969
15970         * reflection.c: Endianness fixes from Bernie Solomon 
15971         (bernard@ugsolutions.com).
15972         
15973 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
15974
15975         * assembly.h assembly.c: Define a file format version for AOT
15976         libraries.
15977         
15978         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
15979
15980         * appdomain.h (MonoJitInfo): New field to determine whenever the
15981         code is domain neutral.
15982         
15983 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
15984
15985         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
15986
15987 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
15988
15989         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
15990         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
15991         Avoid caching the result since strings must be domain specific. Fixes
15992         #48050.
15993
15994 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
15995
15996         * marshal.c (mono_marshal_init): Make this callable multiple times
15997         since it is hard to find a correct place to call it.
15998
15999         * object.c (mono_runtime_class_init): Execute static constructors in
16000         the correct appdomain.
16001
16002         * image.c (build_guid_table): Handle the case when multiple images have
16003         the same GUID.
16004
16005 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16006
16007         * icall.c: added a couple of icalls for System.Web.
16008
16009 2003-08-28  Martin Baulig  <martin@ximian.com>
16010
16011         * icall.c (ves_icall_Type_BindGenericParameters): Use
16012         `klass->generic_inst' instead of `&klass->byval_arg' in the
16013         mono_type_get_object() call.  The returned type must be
16014         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
16015
16016 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
16017
16018         * NOTES: New file.
16019
16020         * object.c (mono_class_proxy_vtable): Make it thread safe.
16021
16022         * pedump.c: Fix warning.
16023
16024         * object.c appdomain.h: Get rid of metadata_section. 
16025         It is no longer needed and it was causing deadlocks with domain->lock.
16026
16027         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
16028
16029 2003-08-26  Martin Baulig  <martin@ximian.com>
16030
16031         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
16032
16033 2003-08-26  Martin Baulig  <martin@ximian.com>
16034
16035         * pedump.c (main): Call mono_metadata_init(),
16036         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
16037         and mono_loader_init().
16038
16039 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
16040
16041         * loader.h: Add missing include to fix build.
16042
16043         * image.h: mono_image_load_references is no more.
16044
16045         * assembly.c: Reworked assembly loading to make it really thread safe.
16046         After these changes, the assembly returned by mono_assembly_open is
16047         fully initialized, i.e. all its references assemblies are loaded.
16048
16049         * assembly.c (mono_image_load_references): Renamed to 
16050         mono_assembly_load_references, and made private, since clients no
16051         longer need to call it.
16052
16053         * class.c: Removed calls to mono_assembly_load_references, since it was
16054         a source of deadlocks.
16055
16056         * loader.h loader.c class.h class.c: Protect data structures using a 
16057         new lock, the loader lock.
16058
16059         * class.c (mono_class_setup_vtable): Create temporary hash tables and
16060         GPtrArrays only when needed.
16061
16062         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
16063         into empty structures by mcs. Fixes pinvoke7.cs.
16064         
16065         * domain.c (mono_init): Call a new initialization function.
16066
16067         * appdomain.c (mono_runtime_init): Call the new initializer function
16068         of the marshal module.
16069
16070         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
16071         inserted into empty structures by mcs. Fixes pinvoke7.cs.
16072
16073         * marshal.h marshal.c: Added locks around the wrapper caches to make
16074         this module thread safe.
16075
16076         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
16077         this argument. Fixes pinvoke1.exe.
16078
16079 2003-08-25  Lluis Sanchez <lluis@ximian.com>
16080
16081         * object.h: Added call_type field to MonoMethodMessage and the corresponding
16082         enumeration of values. Removed fields to store remote call output values in
16083         MonoAsyncResult. Not needed any more.
16084         * object.c: Initialize call_type and async_result fields in mono_message_init.
16085         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
16086         dispatching the message.
16087         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
16088         async call to finish. To do it use a message with EndInvoke call type.
16089
16090 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
16091
16092         * loader.h loader.c (mono_method_hash_marhal_info): New function which
16093         determines whenever a method has marshalling info.
16094
16095 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16096
16097         * assembly.c: fix the build on windows.
16098
16099 2003-08-22 Lluis Sanchez <lluis@ximian.com>
16100
16101         * object.cs: Fixed bug #47785.
16102
16103 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
16104
16105         * string-icalls.c (StringReplace): If their are no occurances of
16106         the old string found return a reference to the supplied
16107         string. This saves some memory and matches MS behavoir.
16108         
16109 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16110
16111         * socket-io.c: fixed compilation for systems that define AF_INET6
16112         and don't define SOL_IP/SOL_IPV6.
16113
16114 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
16115
16116         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
16117         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
16118
16119         * rawbuffer.c rawbuffer.h: Make this module thread safe.
16120
16121         * domain.c: Make this module thread safe.
16122
16123         * domain.c (mono_init): Call new initialization function.
16124
16125         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
16126         reference types too. Fixes #38812.
16127
16128         * image.c (mono_image_init): Fixed warnings.
16129
16130         * class.c (mono_class_from_typeref): Handle assembly load failure
16131         correctly.
16132
16133         * appdomain.c (add_assemblies_to_domain): Handle the case when
16134         the references of an assembly are not yet loaded.
16135
16136         * metadata.c image.c assembly.c: Moved initialization of global
16137         variables to a separate function called at startup since lazy 
16138         initialization of these variables is not thread safe.
16139         
16140         * image.c assembly.c: Made this module thread safe by adding locks in 
16141         the appropriate places.
16142
16143         * domain.c (mono_init): Call the new initialization functions of the
16144         three modules.
16145
16146 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
16147
16148         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
16149           make a direct call. It is proxy's work to make the call asynchronous.
16150           mono_delegate_end_invoke(): If the targe is a proxy, just collect
16151           the return values.
16152         * object.cs: mono_method_call_message_new(): read AsyncResult and
16153           state object from parameters list, if this info is requested.
16154         * object.h: Added fields to store remote call output values in
16155           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
16156
16157 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16158
16159         * object.h: add needed fields to MonoThread.
16160         * threads.c, threads.h: allow registering a function to cleanup data
16161         allocated per thread by the JIT.
16162
16163 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16164
16165         * loader.h: portability fix by Bernie Solomon
16166         * <bernard@ugsolutions.com>.
16167
16168 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
16169
16170         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
16171         return a MonoArray. This simplifies the code and also ensures that
16172         the cache allways contains an object reference as a value.
16173
16174         * icall.c (ves_icall_get_parameter_info): Simplified using the new
16175         function.
16176
16177 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16178
16179         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
16180         fixes a problem with byte ordering when getting the address family for
16181         a socket.
16182
16183 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
16184
16185         * .cvsignore: Added monosn.
16186
16187         * reflection.h reflection.c loader.c: Added support for parameter
16188         marshalling to dynamically created types. Fixes #47295.
16189
16190 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
16191
16192         * rand.c: remove useless warnings.
16193
16194 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16195
16196         * class.c: implemented ldtoken for methods and fieldrefs.
16197
16198 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16199
16200         * threadpool.c: when mono_async_invoke was called, no one took care of
16201         monitoring the queue. So if the method invoked took some time and we
16202         got new async invoke requests after 500 ms (the thread created waited
16203         that long in WaitForSingleObject), the new async invoke was not called
16204         until the previous one finished.
16205
16206         This is fixed now. Thanks to Totte for helping with it.
16207
16208 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16209
16210         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
16211
16212 2003-08-11  Martin Baulig  <martin@ximian.com>
16213
16214         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
16215
16216 2003-08-06  Martin Baulig  <martin@ximian.com>
16217
16218         * mono-debug-debugger.c: Added support for static fields,
16219         properties and methods.
16220
16221 2003-08-06  Martin Baulig  <martin@ximian.com>
16222
16223         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16224         make this work for applications with multiple application domains.
16225
16226 2003-08-04  Martin Baulig  <martin@ximian.com>
16227
16228         * mono-debug-debugger.c: Completely reworked the type support; the
16229         most important thing is that we're now just using one single
16230         `MonoType' instance per type.
16231
16232 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16233
16234         * mono-endian.h, mono-endian.c, icall.c: Added icall
16235         ves_icall_System_Double_AssertEndianity to assert double word endianity
16236         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16237
16238 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16239
16240         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16241         support, icalls and fixes.
16242
16243 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16244
16245         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16246         classes that are a punctuation character in .NET is not the same a
16247         g_unichar_ispunct.
16248
16249 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16250
16251         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16252
16253 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16254
16255         * icall.c: Add new MemCopy internalcall.
16256         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16257         Simplified code; It is not necessary to handle all the cases here,
16258         as the C# code takes care of it.  Only handle the case of the name
16259         resource embedded into the assembly.
16260
16261         Changed signature to return the data pointer and the size of the
16262         data. 
16263
16264 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16265
16266         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16267         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16268
16269 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16270
16271         * socket-io.c: ignore EINTR error in select.
16272
16273 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16274
16275         * class.h, class.c: removed unused subclasses field in MonoClass.
16276
16277 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16278
16279         * icall.c: improve fix of get_base_definition(). If the parent class
16280           doesn't have the mehod, look at the parent of the parent.
16281         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16282           to check if a parameter is an in or out parameter
16283           (PARAM_ATTRIBUTE_IN is not set by default).
16284           mono_method_return_message_restore(): Use mono_class_value_size to
16285           get the size of a value type. mono_type_stack_size (parameterType)
16286           does not return the correct value if parameterType is byRef.
16287           mono_load_remote_field(), mono_load_remote_field_new(),
16288           mono_store_remote_field(), mono_store_remote_field_new():
16289           raise exception if the remote call returns an exception.
16290
16291 2003-07-28  Martin Baulig  <martin@ximian.com>
16292
16293         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16294         method.  This is a wrapper around mono_runtime_invoke() which
16295         boxes the instance object if neccessary.
16296
16297 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16298
16299         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16300         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16301
16302 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16303
16304         * icall.c: disable mcs bug workaround.
16305
16306 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16307
16308         * object.c (mono_runtime_class_init): Take the metadata_section
16309         mutex before obtaining the domain mutex.
16310
16311         * appdomain.h: Added definition of metadata_section mutex here. 
16312
16313         * object.c: define metadata_mutex here.
16314
16315 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16316
16317         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16318         fixed.
16319
16320 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16321
16322         * reflection.c: Fix bug #46669
16323
16324 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16325
16326         * exception.c:
16327         * exception.h:
16328         * icall.c:
16329         * object.h: fill in the type name for TypeLoadException.
16330
16331 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16332
16333         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16334         relationship between TypeBuilders while compiling corlib) and bug
16335         45993 (Array types returned from the runtime while compiling
16336         corlib were from the loaded corlib).
16337
16338 2003-07-22  Martin Baulig  <martin@ximian.com>
16339
16340         * mono-debug-debugger.c: Reworked the type support a bit more;
16341         distinguish between types and classes.
16342
16343 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16344
16345         * icall.c: add IsArrayImpl icall.
16346
16347 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16348
16349         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16350         initializing real_size only once. Also fix bug #46602.
16351
16352 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
16353
16354         * object.c: Renamed mono_metadata_section to metadata_section.
16355
16356 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
16357
16358         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
16359           empty array if the type is an array. Fixed.
16360           ves_icall_MonoMethod_get_base_definition: if the base method
16361           is abstract, get the MethodInfo from the list of methods of
16362           the class.
16363         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16364           and it was 1-based. Fixed in mono_param_get_objects.
16365
16366 2003-07-20  Martin Baulig  <martin@ximian.com>
16367
16368         * mono-debug.h: Set version number to 31.
16369         (mono_debug_init): Added `MonoDomain *' argument.
16370
16371         * mono-debug-debugger.c: Reworked the type support; explicitly
16372         tell the debugger about builtin types; pass the `klass' address to
16373         the debugger.
16374
16375 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16376
16377         * image.c: Allow new metadata tables to be loaded without a
16378         warning. Also update the warning message to give the new constant value.
16379                 
16380 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16381
16382         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16383         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16384         array type representation changes.
16385
16386 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16387
16388         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16389         on Environment.Exit () call.
16390
16391 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16392
16393         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16394         requires a matching corlib.
16395
16396 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16397
16398         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16399           Committed again without the CRs.
16400         
16401 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16402
16403         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16404           getting it from the "this" socket instance. Did not work
16405           if the socket is a subclass of Socket.
16406           Also fixed bug #35371.
16407
16408 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16409
16410         * metadata.c: fixed size for TypedByRef.
16411         * loader.c: when searching for a method, consider the vararg amrker.
16412         * unicode.c, decimal.c: constify some arrays.
16413
16414 2003-07-15  Dick Porter  <dick@ximian.com>
16415
16416         * socket-io.c: Fixed compilation for gcc < 3.2.
16417
16418         Fixed compilation for machines that don't have AF_INET6 (thanks to
16419         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16420
16421         Fixed compile warnings.
16422         
16423         Fixed formatting and line endings.
16424
16425 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16426
16427         * socket-io.h:
16428         * socket-io.c: Added IPv6 support.
16429
16430 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16431
16432         * class.c (mono_class_is_assignable_from): New function to implement
16433         the is_assignable_from logic. Used by mono_object_isinst, 
16434         Type::IsAssignableFrom () and the interpreter.
16435
16436         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16437         Object, even interfaces.
16438         
16439         * object.c (mono_object_isinst): Implement in terms of 
16440         is_assignable_from.
16441
16442         * icall.c (ves_icall_type_is_assignable_from): New icall.
16443
16444 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16445
16446         * domain.c (foreach_domain): fix compiler warning.
16447
16448 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16449
16450         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16451         not available on all plattforms
16452
16453 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16454
16455         * image.h image.c: Store the metadata version string in MonoImage.
16456         * icall.c: New icall to retrieve the image version.
16457         * reflection.c (create_dynamic_image): Fill in the image version field
16458         * reflection.c (build_compressed_metadata): Use the image version
16459         from the image structure.
16460
16461 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16462
16463         * appdomain.c: modified comment.
16464         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
16465         That will be its last iteration when mono_gc_cleanup is called from
16466         mono_runtime_cleanup and before the domain is unloaded.
16467
16468         Fixes bug #45962.
16469
16470 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
16471
16472         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
16473         attributes.
16474
16475 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16476
16477         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
16478         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
16479         Bernie Solomon <bernard@ugsolutions.com>.
16480
16481 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16482
16483         * object.c, object.h: provide mono_object_new_fast() for faster
16484         allocation in some special cases.
16485
16486 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
16487
16488         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
16489         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
16490
16491 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
16492
16493         * threadpool.c: fix leaks.
16494
16495 2003-07-01  Dick Porter  <dick@ximian.com>
16496
16497         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
16498         using MonoGHashTables.  Fixes threadpool bug posted to list.
16499
16500 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16501
16502         * image.h, image.c: added support to load an assembly from a byte array.
16503         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
16504         assembly bundle support.
16505
16506 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
16507
16508         * threadpool.c (mono_thread_pool_add): keep a reference to the
16509         AsyncResult to prevent GC
16510
16511 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16512
16513         * class.c: leak fix.
16514
16515 2003-06-25  Dick Porter  <dick@ximian.com>
16516
16517         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
16518         for the async object, the WaitHandle object will close the handle.
16519         Fixes bug 45321.
16520
16521 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16522
16523         * class.c: in mono_array_class_get (), lookup from the hash with the
16524         same type we insert: this works around a bug in
16525         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
16526         lluis. The real fix will have to wait for after the release.
16527
16528 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16529
16530         * icall.c: fix memory leak when getting type members.
16531
16532 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16533
16534         * reflection.c: added more pubtoken special cases.
16535
16536 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
16537
16538         * class.c: handle field offset correctly when class size
16539         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
16540
16541 2003-06-20  Martin Baulig  <martin@ximian.com>
16542
16543         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
16544         *image' field.
16545
16546 2003-06-20  Martin Baulig  <martin@ximian.com>
16547
16548         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
16549
16550 2003-06-20  Martin Baulig  <martin@ximian.com>
16551
16552         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
16553         just distinguish between variables in registers and variables at
16554         an offset relative to a register.
16555
16556 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16557
16558         * icall.c: #ifdef out latest changes until mcs is fixed.
16559
16560 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16561
16562         * icall.c: return members in metadata order.
16563
16564 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16565
16566         * icall.c: avoid infinite loop in GetTimeZoneData.
16567
16568 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
16569
16570         * icall.c: added Marshal.Prelink/All icalls.
16571
16572 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16573
16574         * object.c, object.h: fix warnings and do some overflow checking
16575         when creating arrays.
16576
16577 2003-06-17  Dick Porter  <dick@ximian.com>
16578
16579         * file-io.h:
16580         * file-io.c: File attributes need to be tweaked slightly when
16581         passed from the managed to the w32 world.
16582
16583 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16584         * profiler.h profiler-private.h profiler.c: Rework last patch
16585         based on suggestion by Paolo.
16586         
16587 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16588
16589         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
16590         instruction level coverage data collection.
16591         * profiler.h profiler.c (: Added new callback function which can be
16592         used by the profiler to limit which functions should have coverage
16593         instrumentation.
16594         * profiler.c (mono_profiler_load): Call g_module_build_path to
16595         generate the file name of the profiler library.
16596
16597 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16598
16599         * profiler.c, profiler.h, profiler-private.h: added basic block 
16600         coverage profiling API.
16601
16602 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
16603
16604         * reflection.c (mono_reflection_create_runtime_class): Add support
16605         for events in dynamically generated code.
16606
16607         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
16608         not allocated.
16609
16610 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16611
16612         * icall.c: when getting timezone info, return reasonable values if we
16613         can't get the actual data.
16614
16615 2003-06-14  Dick Porter  <dick@ximian.com>
16616
16617         * threads.c (start_wrapper): Remove the reference to the thread
16618         object in the TLS data, so the thread object can be finalized.
16619         This won't be reached if the thread threw an uncaught exception,
16620         so those thread handles will stay referenced :-( (This is due to
16621         missing support for scanning thread-specific data in the Boehm GC
16622         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
16623
16624 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
16625
16626         * reflection.c: ensure streams and tables are first allocated with
16627         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
16628
16629 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16630
16631         * icall.c: fixed GetElementType for byrefs (bug# 44792).
16632
16633 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
16634
16635         * reflection.c (mono_reflection_create_runtime_class): Add support for
16636         properties to dynamically created classes.
16637         * reflection.c: Fix a few places where non-MonoObjects were inserted
16638         into the tokens hashtable.
16639
16640 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16641
16642         * object.c: some support to handle out of memory exceptions.
16643
16644 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
16645
16646         * marshal.c (mono_marshal_get_native_wrapper): support reference
16647         return types
16648
16649 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16650
16651         * object.h, object.c: more portability stuff from Bernie Solomon.
16652         Unexport mono_object_allocate(). Added mono_object_unbox ().
16653         Set exitcode when an unhandled exception is thrown.
16654
16655 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
16656
16657         * marshal.c (mono_marshal_get_native_wrapper): use custom
16658         marshaler for return types.
16659
16660 2003-06-10  Dick Porter  <dick@ximian.com>
16661
16662         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
16663         ip_mreq is available
16664
16665 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
16666
16667         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
16668         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
16669         by Bernie Solomon <bernard@ugsolutions.com>.
16670
16671 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
16672
16673         * gc.c (mono_gc_init): Avoid error message on shutdown when
16674         GC_DONT_GC=1 is used.
16675
16676         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
16677         New icall to return the GUID of a module.
16678
16679 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16680
16681         * class.c: ensure instance size always includes the parent's size
16682         even whem class size is set explicitly (fixes bug#44294).
16683
16684 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16685
16686         * profiler.h, profiler.c: made the simple profiler thread-safe,
16687         get more accurate timing info. Allow the loading of an
16688         externally-developed profiler module.
16689
16690 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
16691
16692         * marshal.c (mono_marshal_get_native_wrapper): improved
16693         class/byref arguments.
16694         (mono_marshal_get_native_wrapper): better string marshaling support.
16695
16696 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
16697
16698         * class.c: ensure .pack and .size are handled correctly and
16699         simplified layout of static fields.
16700
16701 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
16702
16703         * appdomain.c
16704         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
16705
16706         * loader.c (mono_lookup_pinvoke_call): look for modules in the
16707         current directory (fix bug 44008)
16708
16709 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
16710
16711         * marshal.c (mono_marshal_get_native_wrapper): started support for
16712         custom marshalers.
16713         (mono_delegate_to_ftnptr): consider marshalling specifications
16714
16715 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
16716
16717         * reflection.c, reflection.h: emit custom marshal info.
16718
16719 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16720
16721         * object.c: free the GError.
16722         * icall.c: added CloseEvent_internal.
16723         * threads.[ch]:
16724         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
16725         call.
16726
16727 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
16728
16729         * loader.c (mono_method_get_signature): Add support for dynamic
16730         assemblies.
16731
16732 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
16733
16734         * reflection.c: fixed bug #43905.
16735
16736 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16737
16738         * class.c, domain.c, icall.c, metadata.h, object.h: support for
16739         handling TypedReference and ArgIterator.
16740         * loader.c, loader.h: added function to get signature at call site.
16741
16742 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16743
16744         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
16745         data readonly. Buglets and warning fixes. Some MethodSpec support.
16746
16747 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16748
16749         * class.h, class.c, object.c: remove relative numbering support.
16750
16751 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
16752
16753         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
16754         free the string, until we get a chance to fix Gtk#
16755
16756 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16757
16758         * marshal.c: revert last patch.
16759
16760 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
16761
16762         * icall.c: updates for new mono_class_vtable() not calling
16763         the type constructor anymore.
16764
16765 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
16766
16767         * object.h, object.c: separate vtable creation from type
16768         initialization. Make running the .cctor thread safe.
16769
16770 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
16771
16772         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
16773
16774 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
16775
16776         * loader.c (mono_get_method): consider calling convention
16777
16778 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
16779
16780         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
16781         to return the invisible global type for a module.
16782
16783         * reflection.c (mono_image_build_metadata): Emit global fields too.
16784
16785 2003-05-20  Peter Williams  <peterw@ximian.com>
16786
16787         * loader.c (mono_lookup_internal_call): Add a few newlines.
16788
16789 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
16790
16791         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
16792         literal strings.
16793
16794         * appdomain.c (set_domain_search_path): Recalculate search path when
16795         AppDomainSetup.PrivateBinPath changes.
16796
16797         * object.c (mono_class_compute_gc_descriptor): It turns out some
16798         parts of the class libs (like System.Thread) holds pointers to
16799         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
16800         to treat native int a pointer type here.
16801         
16802 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
16803
16804         * appdomain.h, domain.c: add hashtable for jump target resolution.
16805
16806 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
16807
16808         * reflection.h reflection.c icall.c: Added new icalls 
16809         GetManifestResourceInfoInternal, GetModulesInternal and support
16810         infrastructure.
16811
16812 2003-05-16  Dick Porter  <dick@ximian.com>
16813
16814         * icall.c:
16815         * file-io.h:
16816         * file-io.c: Implement System.IO.MonoIO::GetTempPath
16817
16818 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
16819
16820         * object.c: mono_store_remote_field: little fix to previous patch.
16821
16822 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16823
16824         * class.c: add constructors to array classes.
16825         * icall.c: special case array construction for InternalInvoke (),
16826
16827 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
16828
16829         * class.h class.c reflection.c object.c: Added support for field
16830         defaults in dynamically generated classes.
16831
16832 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
16833
16834         * reflection.c: properly encode charset for ddlimport.
16835
16836 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
16837
16838         * threads.c: allow compiling without GC.
16839
16840 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16841
16842         * appdomain.h, object.c, object.h, threads.c, threads.h: added
16843         handling of thread static data.
16844
16845 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16846
16847         * reflection.h, reflection.c: added mono_custom_attrs_free ().
16848
16849 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
16850
16851         * class.c (mono_array_class_get): always set the serializable flags
16852         (mono_array_class_get): always set the SEALED attribute for array types
16853
16854 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
16855
16856         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
16857         attributes (fix for bug 42021).
16858
16859 2003-05-12  Dick Porter  <dick@ximian.com>
16860
16861         * gc.c: Don't run finalizers when the finalizer thread is
16862         finishing up, because the default domain has already been
16863         destroyed.
16864
16865 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
16866
16867         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
16868         value is null, we should throw an exception.   This is slightly
16869         different than the other conventions used for the constructor.
16870
16871 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16872
16873         * socket-io.c: fixed windows build.
16874
16875 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16876
16877         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
16878
16879 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
16880
16881         * object.c (mono_string_new_wrapper): Compatibility fix for MS
16882         compilers.
16883
16884 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
16885
16886         * class.c (mono_class_layout_fields): Add experimental GC aware
16887         auto layout facility. Requires class library changes to work correctly.
16888
16889         (mono_class_setup_vtable): Avoid overriding explicit interface
16890         method implementations. Fixes iface3.exe test.
16891
16892         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
16893         object reference.
16894         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
16895         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
16896
16897         * metadata.h: Add new type classification macro which determines
16898         whenever the type holds an object reference.
16899
16900 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
16901
16902         * marshal.c (mono_marshal_get_native_wrapper): cleanups
16903
16904 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
16905
16906         * gc.c (finalizer_thread): Work around a GC bug.
16907
16908 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
16909
16910         * marshal.c (emit_struct_conv): allow unions
16911
16912         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
16913
16914 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
16915
16916         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
16917
16918 2003-05-06  Martin Baulig  <martin@ximian.com>
16919
16920         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
16921
16922 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16923
16924         * socket-io.c:
16925         (Select_internal): allow NULLs, don't create arrays if not needed.
16926         Coupled with Socket.cs changes.
16927
16928         * threadpool.c:
16929         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
16930         register a finalizer for it that will close the semaphore handle. This
16931         fixes the leak and make Lupus' test run with > 4080 loops.
16932
16933 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
16934
16935         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
16936         Jerome Laban (bug #42287)
16937
16938 2003-05-02  Martin Baulig  <martin@ximian.com>
16939
16940         * debug-mono-symfile.h
16941         (MonoSymbolFile): Moved declaration into mono-debug.h.
16942         (MonoDebugMethodJitInfo): Likewise.
16943         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
16944         argument.
16945         (_mono_debug_address_from_il_offset): Take a
16946         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
16947
16948         * mono-debug.h
16949         (MonoDebugDomainData): New struct.
16950         (mono_debug_get_domain_data): New function.
16951         (mono_debug_add_method): Take an additional `MonoDomain *'
16952         argument.
16953         (mono_debug_source_location_from_address): Likewise.
16954         (mono_debug_il_offset_from_address): Likewise.
16955         (mono_debug_address_from_il_offset): Likewise.
16956
16957 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
16958
16959         * reflection.c: one more check for null type in custom attrs.
16960
16961 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16962
16963         * reflection.c: avoid warning (comparison is always false due to limited
16964         range of data type).
16965
16966 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16967
16968         * icall.c: throw an exception in Type.GetField if the argument 'name'
16969         is NULL.
16970
16971 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
16972
16973         * reflection.c: fixed handling of enums in named arguments to custom
16974         attributes (bug #42123).
16975
16976 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
16977
16978         * reflection.c: use the right array element type and handle
16979         a null for a Type argument, too.
16980
16981 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
16982
16983         * reflection.c: handle arrays as arguments to custom attributes.
16984
16985 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16986
16987         * reflection.c: handle a string value in a custom attr
16988         ctor that takes an object.
16989
16990 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
16991
16992         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
16993         (fix bug #42063)
16994
16995 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
16996
16997         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
16998
16999 2003-04-27  Martin Baulig  <martin@ximian.com>
17000
17001         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
17002         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
17003         MONO_DEBUGGER_EVENT_BREAKPOINT.
17004         (mono_breakpoint_trampoline_code): Removed.
17005         (mono_debugger_event_handler): The last argument is now a
17006         `guint32'.
17007         (mono_debugger_insert_breakpoint_full): Removed the
17008         `use_trampoline' argument.
17009         (mono_debugger_method_has_breakpoint): Likewise.
17010         (mono_debugger_trampoline_breakpoint_callback): Renamed to
17011         mono_debugger_breakpoint_callback(); take the method and
17012         breakpoint number as arguments.
17013
17014 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
17015
17016         * metadata.c: fix off by one when loading parameters attributes.
17017
17018 2003-04-24  Martin Baulig  <martin@ximian.com>
17019
17020         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
17021
17022 2003-04-24  Martin Baulig  <martin@ximian.com>
17023
17024         * mono-debug-debugger.c: Moved all code which interacts with the
17025         Mono Debugger here.
17026
17027         * debug-mono-symfile.c: This code now just deals with the symbol
17028         file itself, the debugger code is now in mono-debug-debugger.c.
17029
17030 2003-04-23  Martin Baulig  <martin@ximian.com>
17031
17032         * mono-debug.c (mono_debug_source_location_from_il_offset):
17033         New method; like mono_debug_source_location_from_address(), but
17034         takes an IL offset instead of a machine address.
17035
17036 2003-04-23  Martin Baulig  <martin@ximian.com>
17037
17038         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
17039         `line' field; this is now computed by the debugger.
17040
17041 2003-04-23  Martin Baulig  <martin@ximian.com>
17042
17043         * mono-debug.[ch]: New files.  This is the new debugging interface.
17044
17045         * mono-debug-debugger.[ch]: New files.  Moved all code which
17046         interacts with the Mono Debugger here.
17047
17048 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
17049
17050         * domain.c (mono_init): initialize mono_defaults.monitor_class
17051
17052 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
17053
17054         * reflection.c (method_encode_code): Add a spicy exception to help
17055         future compiler authors.
17056
17057 2003-04-21  Martin Baulig  <martin@ximian.com>
17058
17059         * icall.c
17060         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17061         Make this work with relative pathnames; g_filename_to_uri() needs
17062         an absolute filename.
17063
17064 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
17065
17066         * icall.c: Track name changes in Object and ValueType.
17067
17068 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
17069
17070         * metadata.c (mono_type_stack_size): size should be a multiple of
17071         sizeof (gpointer)
17072
17073 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17074
17075         * gc.c:
17076         (internal_domain_finalize): moved into mono_domain_finalize. No need
17077         to create another thread because the finalizers will be run in the
17078         finalizer thread.
17079         
17080         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
17081         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
17082         to be run (MS does this too).
17083
17084 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
17085
17086         * object.c (mono_class_compute_gc_descriptor): Update comment.
17087
17088         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
17089
17090         * image.h: Add synchronized wrapper cache.
17091
17092         * image.c (do_mono_image_open): Initialize cache.
17093
17094         * reflection.c (create_dynamic_mono_image): Initialize cache.
17095
17096 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17097
17098         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
17099         ves_icall_System_Buffer_ByteLengthInternal.
17100
17101 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17102
17103         * reflection.c: setup klass->nested_in earlier. Allow
17104         a dash in the assembly name.
17105
17106 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
17107
17108         * metadata.c (mono_type_to_unmanaged): dont access
17109         type->data.klass for MONO_TYPE_OBJECT
17110         (mono_type_to_unmanaged): consider System.Delegate class
17111
17112 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
17113
17114         * class.c: just setup supertypes in the proper place instead of
17115         initializing the full element class for arrays.
17116
17117 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17118
17119         * class.c: ensure the element class of arrays is initialized.
17120         Setup the supertype info for array classes, too.
17121
17122 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
17123
17124         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
17125
17126 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17127
17128         * Makefile.am: re-added -m option when running cygpath. This way,
17129         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
17130         separator.
17131         * mono-config.c: same codepath for locating mono config file for WIN32
17132         and the rest.
17133         * assembly.c: if mono_assembly_setrootdir is called, don't override
17134         the value set.
17135
17136 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17137
17138         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
17139         MONO_ASSEMBLIES variable.
17140
17141 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
17142
17143         * icall.c: added Assembly::GetNamespaces() icall.
17144
17145 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17146
17147         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
17148
17149 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
17150
17151         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
17152         * object.c: fixed bug in the construction of vtable for proxies
17153
17154 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
17155
17156         * object.c (mono_array_new): Mark mono_array_new as an icall.
17157
17158 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17159
17160         * class.c: fixed test for public method when overriding interfaces.
17161         Closes bug #40970.
17162
17163 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17164
17165         * appdomain.h, domain.c: added mono_domain_foreach() to
17166         be able to access the currently loaded appdomains.
17167         * object.c: make string interning work across sppdomains.
17168         Mark some functions for use as icalls.
17169
17170 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
17171
17172         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
17173
17174         * reflection.h reflection.c: Allocate long living data using 
17175         GC_MALLOC_ATOMIC so the collector does not need to scan it.
17176
17177         * reflection.c: Double the allocation size in streams instead of
17178         increasing it, to prevent unneccesary copying on large assemblies.
17179         
17180         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
17181         creation if the assembly does not have the Run flag set.
17182
17183 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
17184
17185         * class.h: avoid the C++ keywords in header files (Jerome Laban
17186         spotted and fixed this).
17187
17188 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17189
17190         * object.c:
17191         (mono_unhandled_exception): fill in the arguments for the
17192         UnhandledException event. Only trigger that event for the default
17193         domain (as MS does).
17194
17195 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
17196
17197         * object.c: Improve typed allocation stuff based on suggestions from
17198         Paolo. Also turn it on if the GC library supports it.
17199
17200 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17201
17202         * object.c object.h class.h: Added experimental typed allocation
17203         facility using the interfaces in gc_gcj.h.
17204
17205         * os/gc_wrapper.h: Added new include files.
17206         
17207 2003-04-03  Martin Baulig  <martin@ximian.com>
17208
17209         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
17210         which is not yet enabled by default.
17211
17212         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
17213         functions.
17214         (mono_gc_lock, mono_gc_unlock): New static functions.
17215
17216         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
17217         functions; stop/start the world for the garbage collector.  This
17218         is using the windows API; we need to complete the SuspendThread()/
17219         ResumeThread() implementation in the io-layer to make this work on Unix.
17220         (mono_gc_push_all_stacks): New public function; tells the garbage
17221         collector about the stack pointers from all managed threads.
17222
17223 2003-04-03  Martin Baulig  <martin@ximian.com>
17224
17225         * object.h (MonoThread): Added `gpointer stack_ptr'.
17226
17227         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17228
17229 2003-04-03  Martin Baulig  <martin@ximian.com>
17230
17231         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17232
17233 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17234
17235         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17236         field.last.
17237
17238 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17239
17240         * loader.c (mono_lookup_internal_call): Report the corlib that is
17241         out of sync.
17242
17243 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17244
17245         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17246         System.DBNull (it's class not valuetype).
17247
17248 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17249
17250         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17251         if the array method was already assigned a token (fixes bug#40646).
17252
17253 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17254
17255         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17256         if no assembly is given.
17257
17258 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17259
17260         * metadata.h: Added the new tables.
17261
17262         * row-indexes.h: Added definitions for new tables.
17263
17264         * metadata.c: Add schemas for new tables, and add support for
17265         computing the sizes of them.
17266
17267         * class.c: Update for handling the new type cases.
17268
17269 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17270
17271         * metadata.h (MONO_TYPE_IS_VOID): new macro
17272
17273 2003-03-31  Martin Baulig  <martin@ximian.com>
17274
17275         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17276
17277         * threads.c (mono_thread_new_init): Call `thread_created' in the
17278         mono_thread_callbacks.
17279
17280 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17281
17282         * loader.h: added marshalbyrefobject_class to mono_defaults
17283         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17284         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17285           generation of output parameters.
17286           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17287         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17288           contextbound and the target object belongs to the context of the caller.
17289         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17290         * object.c: Implemented support for interfaces and abstract classes
17291           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17292           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17293
17294 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17295
17296         * class.h class.c (mono_class_is_subclass_of): New function.
17297         
17298         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17299         routines for most common case (calls from ArrayList::ToArray).
17300
17301         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17302         routine so programs which call Environment::Exit() can be profiled.
17303
17304         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17305         Added MONO_ARCH_SAVE_REGS.
17306
17307         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17308
17309 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17310
17311         * blob.h: Add a couple of new MonoType types definitions.
17312
17313         * tabledefs.h: Add a couple of new call convs.
17314
17315 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17316
17317         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17318         the layout of the class.
17319
17320         * reflection.c (alloc_table): double the size on overflow to avoid
17321         unnecessary copying.
17322
17323         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17324         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17325         null so it can be garbage collected.
17326         
17327 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17328
17329         * reflection.c (mono_reflection_get_type): Return the resolved type
17330         only if it is in the assembly we searched.
17331
17332         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17333
17334         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17335         method.
17336
17337 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17338
17339         * appdomain.c:
17340         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17341         the right one is 'file:///blah', but MS allows it.
17342         * assembly.c:
17343         (mono_assembly_open): allow 'file://blah'
17344
17345         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17346
17347 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17348
17349         * socket-io.c: fixes bug #40310.
17350
17351 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
17352
17353         * reflection.c (mono_reflection_parse_type): handle deeply nested
17354         types correctly.
17355
17356         * reflection.c (mono_image_create_token): Use unique token values
17357         since they will be put into a hash table.
17358
17359         * class.c (mono_class_setup_vtable): If a method occurs in more than
17360         one place in the vtable, and it gets overriden, then change the
17361         other occurances too.
17362
17363         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17364         object as return type.
17365
17366 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17367
17368         * icall.c: Deleted "ToString" implementation for double and float
17369         because they are full implemented in managed code.
17370
17371 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17372
17373         * reflection.c, reflection.h: implemented and exported functions
17374         to retrieve info about custom attributes.
17375
17376 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17377
17378         * appdomain.c: moved Uri handling to assembly.c
17379         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17380         work when using a file Uri in *nix and windows.
17381
17382         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17383         GetReferencedAssemblies.
17384
17385 2003-03-18  Dick Porter  <dick@ximian.com>
17386
17387         * icall.c: Rename a couple of internal calls
17388
17389         * threads.c: Set the thread state to Stopped when a thread exits.
17390         Fixes bug 39377.
17391
17392 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17393
17394         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17395         New icall.
17396
17397         * object.c (mono_class_vtable): fix warning.
17398
17399 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17400
17401         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17402
17403         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17404         memory.
17405         (method_encode_clauses): Create exception info structures in the right
17406         order.
17407         (mono_reflection_setup_internal_class): Initialize supertypes field.
17408
17409         * class.c object.c: Handle interfaces which implement other interfaces 
17410         correctly.
17411
17412         * class.h class.c: Move the supertypes array initialization code into 
17413         a separate function so it can be used for dynamic types too. Also call
17414         it earlier, in mono_class_init(), since it can be used before the
17415         type is initialized.
17416
17417 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17418
17419         * Makefile.am:
17420         * assembly.c:
17421         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17422
17423         * appdomain.c:
17424         * appdomain.h:
17425         * marshal.c:
17426         * object.c: remove warnings.
17427
17428 2003-03-13  Martin Baulig  <martin@ximian.com>
17429
17430         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17431         (MonoDebugLexicalBlockEntry): New types.
17432
17433         * debug-mono-symfile.c
17434         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17435
17436 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17437
17438         * process.c: ret can be any non-zero value accroding to MS doc.
17439
17440 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17441
17442         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17443         fixing a warning for a miss-used prototype, would have cause
17444         random memory corruption.
17445
17446 2003-03-07  Martin Baulig  <martin@ximian.com>
17447
17448         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17449         getting really annoying ....
17450
17451 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17452
17453         * reflection.c (fixup_method): added support for array methods.
17454
17455 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17456
17457         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17458         (pointed out by Michael Adams).
17459
17460 2003-03-04  Dick Porter  <dick@ximian.com>
17461
17462         * icall.c: Temporarily reverted the Double and Single ToString()
17463         change, because it broke nunit.
17464
17465 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
17466
17467         * object.h, threads.h: make include files compatible with C++
17468         (patch by Jerome Laban <jlaban@wanadoo.fr>).
17469
17470 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17471
17472         * icall.c: Erased ToString helper functions for Double and Single.
17473         Now, that implementations ar all in managed code (Double and Single
17474         Formatters).
17475
17476 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
17477
17478         * appdomain.c: Added method for initializing the default context of
17479         a domain. Added internal call for getting the default context.
17480         * appdomain.h: Added context variable in MonoDomain struct.
17481         * domain.c: mono_domain_set also sets the default context of the domain
17482         * icall.c: Mapped internal method InternalGetDefaultContext.
17483         * object.c: mono_object_get_virtual_method returns always a remoting
17484         wrapper if the object is a transparent proxy.
17485         mono_runtime_invoke_array: when creating an object by calling the
17486         constructor, if the created object is a proxy, then the constructor should
17487         be called using the a remoting wrapper.
17488
17489 2003-03-03  Dick Porter  <dick@ximian.com>
17490
17491         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
17492         variable so it compiles on solaris.  Problem spotted by
17493         Christopher Taylor <ct@cs.clemson.edu>
17494
17495 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17496
17497         * appdomain.c:
17498         (get_info_from_assembly_name): don't leak value.
17499
17500         * icall.c:
17501         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
17502         result.
17503
17504 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
17505
17506         * assembly.c: export mono_image_load_references ().
17507         * class.c: handle function pointers. mono_class_from_name() now
17508         supports nested type names directly.
17509
17510 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
17511
17512         * reflection.h reflection.c: Encode already created dynamic methods 
17513         and fields correctly as a DEF instead of a REF.
17514
17515         * reflection.c: Get rid of the force_ref argument to 
17516         mono_image_typedef_or_ref since it was wrong in the first place.
17517
17518         * string-icalls.c: add error checking to string constructors according
17519         to the MSDN docs.
17520
17521         * reflection.c: Emit types in the order their TypeBuilders were 
17522         created. Previously, a new table index was assigned to each type before
17523         the tables were emitted. This was wrong because the signature blob
17524         might already refer to a type by its original table index.
17525
17526 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
17527
17528         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
17529         change.
17530         
17531 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17532
17533         * Makefile.am: make assemblies dir have \ instead of / on windows.
17534
17535 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
17536
17537         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
17538         iterate over the NESTEDCLASS table using a linear search since the
17539         table is not guaranteed to be sorted by the secondary key.
17540
17541         * class.c (mono_class_create_from_typedef): fixed up call to
17542         mono_metadata_nesting_typedef.
17543         
17544 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
17545
17546         * marshal.c (mono_string_to_byvalstr): clear the memory as
17547         suggested by Jerome Laban <jlaban@wanadoo.fr>
17548
17549 2003-02-26  Dick Porter  <dick@ximian.com>
17550
17551         * process.c: Cope with padding in .rsrc blocks
17552
17553 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17554
17555         * metadata.h: reverted the filter_len change, it breaks reflection
17556         
17557 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17558
17559         * metadata.h: added a new field to store the filter_len
17560         
17561
17562 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
17563
17564         * reflection.c: handle custom attributes for types and members
17565         created with Reflection.Emit (bug#38422).
17566
17567 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
17568
17569         * reflection.c: define RTSpecialName automatically for constructors for
17570         compatibility with MS.NET.
17571
17572         * reflection.c (mono_reflection_create_runtime_class): initialize
17573         nested_in field of dynamically created classes.
17574
17575 2003-02-22  Martin Baulig  <martin@ximian.com>
17576
17577         * debug-mono-symfile.h: Incremented version number.
17578
17579 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17580
17581         * object.h icall.c process.c: fix warnings.
17582
17583 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17584
17585         * appdomain.h appdomain.c:
17586         (mono_domain_try_type_resolve): split the 
17587         name_or_tb argument into a name and a tb argument.
17588         (mono_domain_has_type_resolve): new function to check whenever the
17589         application has registered a TypeResolve event handler.
17590         
17591         * icall.c reflection.h reflection.c: move the type resolve logic into
17592         mono_reflection_get_type () so it will be invoked when 
17593         Assembly::GetType () is called.
17594
17595         * reflection.c:
17596         (mono_reflection_get_type): renamed to get_type_internal.
17597         (mono_reflection_get_type): fixed type name generation so it works 
17598         for nested types too.
17599         (mono_reflection_get_type): call has_type_resolve () to avoid the 
17600         costly type name generation if there is no resolve event handler.
17601
17602 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17603
17604         * class.c, image.c: load exported types from file references.
17605
17606 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
17607
17608         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
17609           used to cache the managed methods used to create proxies and make 
17610           remote invocation of methods.
17611         * class.h: Added in MonoVTable a flag to indicate that a class needs 
17612           to be remotely created.
17613         * object.c: Modified the method mono_class_vtable(). It now initializes 
17614           the remote flag of the vtable. Modified mono_object_new_specific(), 
17615           so now it checks the remote flag.
17616         * icall.c: Added a couple of internal methods, one for enabling instance 
17617           creation interception for a type, and one for creating objects bypassing
17618           the remote check.
17619
17620 2003-02-18  Martin Baulig  <martin@ximian.com>
17621
17622         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
17623         New interncall to get a method's metadata token.
17624
17625         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
17626         New interncall for the debugger.
17627
17628 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
17629
17630         * class.c (mono_class_setup_vtable): allocate supertype array
17631
17632 2003-02-18  Martin Baulig  <martin@ximian.com>
17633
17634         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
17635
17636 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17637
17638         * reflection.c:
17639         (assembly_name_to_aname): jump over unknown properties (i've found
17640         something like: 'type, assembly, version=xxx, custom=null, public...',
17641         so now will ignore custom=null and still get the rest of the values).
17642
17643 2003-02-17  Dick Porter  <dick@ximian.com>
17644
17645         * threads.c: Have Thread.Start() wait for a semaphore to signal
17646         that the thread has set up all its local data.  This fixes bug
17647         34323, where Abort() raced the new thread's TLS data.
17648
17649         Also removes the handle_store() call from start_wrapper, because
17650         threads are now always created suspended and there is no longer a
17651         race between the parent and child threads to store the info.
17652
17653 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
17654
17655         * image.c: explain the #- heap issue in a message, hopefully
17656         avoiding FAQs on mono-list.
17657
17658 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17659
17660         * icall.c:
17661         (GetEntryAssembly): if the domain has not invoked
17662         AppDomain.ExecuteAssembly yet, return the assembly of the default
17663         AppDomain.
17664
17665 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
17666
17667         * class.c (mono_ldtoken): make it work in dynamic assemblies.
17668
17669 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
17670
17671         * metadata.c, reflection.c: simple speedup to type hash
17672         and equals code.
17673
17674 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
17675
17676         * image.c, image.h, class.c, assembly.c: move module loading
17677         to MonoImage. When loading metadata, consider alignemnet from
17678         the start of metadata, not from the metadata address in memory.
17679
17680 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
17681
17682         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
17683         AssemblyBuilder objects. Factored out custom attribute creation into
17684         a separate function.
17685         (create_custom_attr): new function to create custom attributes.
17686
17687 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
17688
17689         * Makefile.am: Got tired of typing the full pathname to pedump.
17690         Until there is another option, am installing this.
17691
17692 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
17693
17694         * class.c (class_compute_field_layout): always set field->parent 
17695         (mono_ldtoken): use mono_defaults.fieldhandle_class;
17696
17697 2003-02-11  Dick Porter  <dick@ximian.com>
17698
17699         * threads-types.h:
17700         * monitor.c: Rewrote Monitor, making lock much faster and
17701         Pulse/Wait work as specified.  Also uses much fewer handles, and only
17702         creates them as needed.
17703
17704         * exception.c: Added SynchronizationLockException
17705
17706         * threads.c: Deleted old Monitor implementation.  The new one is
17707         in a new file.
17708
17709 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
17710
17711         * class.c: handled TypedReference type code. Set the correct size for
17712         class data. Setup interface_offsets for interface classes, too.
17713
17714 2003-02-09  Martin Baulig  <martin@ximian.com>
17715
17716         * debug-mono-symfile.h: Reflect latest symbol writer changes.
17717
17718 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
17719
17720         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
17721         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
17722         * object.c: fixed mono_object_get_virtual_method () for interfaces.
17723         * verify.c: check for code that runs after the end of the method.
17724
17725 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17726
17727         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
17728         "System.Math::Round2".
17729         * sysmath.h: Added Floor, Round and Round2 definitions.
17730         * sysmath.c: Modified certain functions that were not 100% compliant
17731         with MS.NET (math precision) and added the implementation of Floor,
17732         Round and Round2.
17733
17734 2003-02-07  Martin Baulig  <martin@ximian.com>
17735
17736         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
17737
17738 2003-02-07  Martin Baulig  <martin@ximian.com>
17739
17740         * debug-mono-symfile.c: Reflected latest symwriter changes.
17741         (mono_debug_create_mono_symbol_file): Removed.
17742         (mono_debug_open_mono_symbol_file): Take an argument which
17743         specifies whether to create a dynamic symbol file.
17744
17745 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
17746
17747         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
17748
17749 2003-02-05  Martin Baulig  <martin@ximian.com>
17750
17751         * reflection.c (mono_image_build_metadata): Make this public,
17752         protect it against being called multiple times, don't create
17753         resources and don't build the compressed metadata here.
17754         (mono_image_create_pefile): Do this here.
17755
17756         * icall.c
17757         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
17758
17759 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17760
17761         * socket-io.c: fixed bug #36322.
17762
17763 2003-02-06  Piers Haken <piersh@friskit.com>
17764
17765         * appdomain.[ch]:
17766         * class.h:
17767         * debug-mono-symfile.c:
17768         * icall.c:
17769         * loader.c:
17770         * mono-config.c:
17771         * monosn.c:
17772         * reflection.c:
17773         * socket-io.c: warning cleanups
17774
17775 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
17776
17777         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
17778         function. works like remoting invoke, but does a check for the Proxy first.
17779
17780 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
17781
17782         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
17783
17784 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
17785
17786         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
17787         array of pointers.
17788         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
17789         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
17790
17791         * object.c (mono_store_remote_field_new): used by the new jit
17792         instead of mono_store_remote_field
17793         (mono_load_remote_field_new): used by the new jit
17794         instead of mono_load_remote_field
17795
17796 2003-02-05  Patrik Torstensson
17797
17798         * appdomain.c: changed unload to take the domain id instead
17799         of domain
17800         
17801         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
17802
17803
17804 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17805
17806         * appdomain.c: don't look for assemblies in ApplicationBase if
17807         PrivateBinPathProbe is set.
17808
17809 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17810
17811         * object.c: make the first argument in main_args contain the absolute
17812         path to the assembly. Fixes bug #37511.
17813
17814 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17815
17816         * icall.c: get correct UTC offset for countries not using daylight
17817         time saving. Fixes bug #30030.
17818
17819 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17820
17821         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
17822         and 1 are the family).
17823
17824 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
17825
17826         * icall.c (ves_icall_InternalExecute): removed wrong assertion
17827
17828         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
17829
17830 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
17831
17832         * reflection.c: added support for SignatureHelper tokens, which is
17833         needed by the Calli opcode.
17834
17835         * reflection.h: track changes to SignatureHelper class.
17836
17837         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
17838
17839 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17840
17841         * appdomain.c: fixed loading assemblies from PrivateBinPath.
17842
17843 2003-02-03  Patrik Torstensson
17844         * appdomain.[c|h], domain.c : 
17845          - Added support for getting a domain via domain id
17846          - Support for setting and getting domain from System.AppDomain 
17847            (used in cross appdomain channel)
17848          - Added support for get/set for a MonoAppContext on a thread 
17849            (Context class in System.Runtime.Remoting.Contexts),
17850          - Removed hack in Get/SetData and ExecuteAssembly.
17851         
17852         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
17853         the managed world to get control when a proxy is created.
17854
17855         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
17856         
17857 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
17858
17859         * icall.c
17860         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17861         Populate the codebase field as well.
17862
17863 2003-02-02  Martin Baulig  <martin@ximian.com>
17864
17865         * debug-mono-symfile.c
17866         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
17867         (mono_debug_symfile_add_method): Allow interncalls.
17868
17869 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17870
17871         * icall.c: throw parse exception if strtod fails or the string is empty.
17872
17873 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
17874
17875         * marshal.c: handle object type separately from defined
17876         class types.
17877
17878 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
17879
17880         * marshal.c: handle NATIVE_LPSTR for strings when it's
17881         explicitly specified.
17882
17883 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
17884
17885         * reflection.c, reflection.h, icall.c: setup the reflection
17886         handle cache for ModuleBuilders and AssemblyBuilders.
17887
17888 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
17889
17890         * reflection.c (reflection_methodbuilder_to_mono_method): set
17891         pinvoke flag
17892
17893 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17894
17895         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
17896
17897 2003-01-29  Dick Porter  <dick@ximian.com>
17898
17899         * threads.c: No need for the fake_thread kludge now that Thread
17900         doesn't run a class constructor
17901         
17902 2003-01-29  Dick Porter  <dick@ximian.com>
17903
17904         * threads.c: Use g_direct_hash instead of the rather bogus
17905         g_int_hash
17906
17907 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
17908
17909         * marshal.c (mono_marshal_get_native_wrapper): add check for null
17910         (fix pinvoke12.exe)
17911         (mono_marshal_get_struct_to_ptr): generate valid IL code
17912         (mono_marshal_get_ptr_to_struct): generate valid IL code
17913         (*): correctly set sig->pinvoke, we need to memdup the signature
17914         to do that
17915
17916 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17917
17918         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
17919         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
17920
17921 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
17922
17923         * profiler.c: provide more callers information.
17924
17925 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
17926
17927         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
17928
17929         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
17930
17931         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
17932
17933 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17934
17935         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
17936         exception instead of going into an infinite loop on dates which it 
17937         can't yet handle.
17938
17939         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
17940         out-of-range exception if needed.
17941
17942         * class.c (mono_class_setup_vtable): allow a virtual method to provide
17943         an implementation for an interface method and to override an inherited
17944         method at the same time. 
17945         Imagine a scenario when a virtual method is used to override a
17946         virtual abstract method in a parent class, and this same method 
17947         provides an implementation for an method inherited from an interface. 
17948         In this case, the interface resolution code will set im->slot, which 
17949         means that the virtual method override pass will skip this method 
17950         which means a pointer to the abstract method inherited from the parent
17951         will remain in the vtable of this non-abstract class.
17952
17953         * class.c: (mono_class_setup_vtable): continue search for a real 
17954         method if only an abstract method is found.     
17955
17956 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
17957
17958         * reflection.c: add size to encoding for ByValStr and ByValArray
17959         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
17960
17961 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17962
17963         * class.c (mono_class_setup_vtable): pass the override info as an
17964         argument.
17965
17966         * class.c (mono_class_setup_vtable): set the slot of overriding methods
17967         correctly.
17968         
17969         * reflection.c (ensure_runtime_vtable); add support for method 
17970         overrides.
17971         
17972 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17973
17974         * reflection.c (resolution_scope_from_image): Hack to work to work with
17975         dynamic assemblies.
17976
17977         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
17978         added a 'force_ref' argument to force this function to allways return 
17979         a TypeRef. This is needed by mono_image_get_memberref_token ().
17980         
17981 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17982
17983         * reflection.c (mono_image_get_type_info): interfaces really don't have
17984         a parent.
17985
17986         * reflection.c (mono_image_basic_init): fill out missing fields of
17987         image structure.
17988
17989         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
17990         dynamic assemblies. This is required so dynamic assemblies show up in
17991         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
17992         Type::GetType() etc. This is consistent with MS behaviour.
17993
17994         * image.c image.h reflection.c: add newly created classes to the name 
17995         cache so mono_class_get () will find them.      
17996
17997 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17998
17999         First part of changes to get IKVM.NET running under mono.
18000         
18001         * appdomain.h, appdomain.c: added new function 
18002         mono_domain_try_type_resolve() which will emit TypeResolve events. 
18003         This function will call AppDomain::DoTypeResolve to do the actual work.
18004
18005         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
18006         moved existing code dealing with dynamic tokens to a new function 
18007         called mono_reflection_lookup_dynamic_token (). This function will 
18008         raise TypeResolve events when appropriate. Since reflection.c is not 
18009         part of libmetadata, a new hook function called 
18010         mono_lookup_dynamic_token() is added to class.c which will call this.
18011
18012         * assembly.h assembly.c: make the invoke_load_hook function public,
18013         so it can be called for dynamic assemblies.
18014
18015         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
18016
18017         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
18018         type isn't found.
18019
18020         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
18021         MonoGHashTable, since it contains pointers to objects which the GC 
18022         needs to track.
18023
18024         * assembly.c (search_loaded): remove unused variable.
18025         
18026 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
18027
18028         * object.c: fixed issue exposed by gcc-generated IL programs
18029         that use RVA data for pointers.
18030
18031 2003-01-25  Martin Baulig  <martin@ximian.com>
18032
18033         * threads.c (start_wrapper): Moved the initialization of
18034         `start_func' above the mono_new_thread_init() call to which we
18035         pass it as argument.
18036
18037 2003-01-24  Martin Baulig  <martin@ximian.com>
18038
18039         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
18040         the MonoThread pointer.
18041
18042 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
18043
18044         * icall.c: Rename `PowImpl' to Pow.
18045
18046 2003-01-23  Dick Porter  <dick@ximian.com>
18047
18048         * threads.c (start_wrapper): Create a Thread object if needed, so
18049         the Main() thread can do the class initialisation in a subthread
18050         that has been set up to allow managed code execution.
18051
18052         Pass the thread ID instead of the MonoThread pointer to the thread
18053         start and attach callbacks.  This change is required, because the
18054         jit thread start callback must be called _before_ the Thread
18055         object can be created.
18056         
18057         (mono_thread_init): Removed much object creation code that is no
18058         longer needed.  No managed code is called from here now.
18059
18060         * object.c (mono_runtime_exec_managed_code): Create a subthread
18061         for Main, and call back to the runtime to use it.
18062         Set the exit code when Main exits.
18063
18064         * gc.c: Make sure domain finalisation happens in a subthread.
18065         Re-enable threaded GC, fixing bug 31333 (again).
18066
18067         * environment.c: System.Environment internall calls (so far just
18068         ExitCode is here, the others are still in icall.c)
18069
18070         * appdomain.c (mono_runtime_cleanup): All threads running managed
18071         code should have finished before mono_runtime_cleanup() is
18072         reached, so no need to clean up threads.
18073
18074 2003-01-22  Martin Baulig  <martin@ximian.com>
18075
18076         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
18077         `gpointer func' arguments.      
18078         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
18079         but added `MonoThread *thread' argument.
18080         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
18081
18082         * threads.c (mono_new_thread_init): Added `gpointer func' argument
18083         and pass it to the mono_thread_start_cb callback.
18084         (mono_install_thread_callbacks): New public function to install a
18085         set of callbacks which are set by the debugger.
18086         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
18087
18088 2003-01-22  Martin Baulig  <martin@ximian.com>
18089
18090         * Makefile.am: Install debug-mono-symfile.h.
18091
18092 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
18093
18094         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
18095
18096 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
18097
18098         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
18099         * class.c (mono_ptr_class_get): correctly set access levels of pointers
18100         (mono_array_class_get): correctly set access levels of arrays
18101
18102 2003-01-20      Patrik Torstensson
18103         * image.h (MonoAssemblyName): changed major, minor, build, revision
18104         from signed to unsigned.
18105
18106 2003-01-20  sean kasun <skasun@azstarnet.com>
18107
18108         * reflection.c (load_cattr_value): Now this handles
18109         MONO_TYPE_SZARRAY.  Fixes bug #35629
18110
18111 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
18112
18113         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
18114         integer value
18115
18116 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18117
18118         * decimal.c: fixed bug #26056.
18119
18120 2003-01-17  Martin Baulig  <martin@ximian.com>
18121
18122         * gc.c: Raise an ExecutionEngineException instead of using g_error().
18123
18124 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18125
18126         * exception.[ch]:
18127         (mono_get_exception_type_initialization): new function.
18128
18129         * object.c: throw a TypeInitializationException when an exception is
18130         thrown invoking the class constructor.
18131
18132 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18133
18134         * reflection.c: fixed attribute reading.
18135
18136 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18137
18138         * icall.c:
18139         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
18140         provided, look for the type in the calling assembly and then in
18141         mscorlib; if the assembly name is provided, only try that one.
18142
18143 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
18144
18145         * object.c: register the vtable before there is a chance it's
18146         queried again recursively.
18147
18148 2003-01-13  Duncan Mak  <duncan@ximian.com>
18149
18150         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
18151         gc-internal.h. 
18152         
18153 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
18154
18155         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
18156
18157 2003-01-11  Martin Baulig  <martin@ximian.com>
18158
18159         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
18160         this to 20 for the release.
18161
18162 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
18163
18164         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
18165
18166         * loader.c (mono_method_get_marshal_info): bug fix
18167
18168         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
18169         structures with explicit layout
18170
18171 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18172
18173         * profiler.c: made the output more readable (and sorted). 
18174         Added caller information for the allocation profiler.
18175
18176 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
18177
18178         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
18179
18180 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18181
18182         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
18183         to get value types.
18184         
18185 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
18186
18187         * object.c, profiler.h, profiler.c, profiler-private.h:
18188         Added object allocation profiler.
18189
18190 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
18191
18192         * reflection.h, reflection.c: handle global methods.
18193         Compress blob entries.
18194
18195 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
18196
18197         * marshal.c: fix compilation.
18198
18199 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
18200
18201         * loader.c (mono_method_get_marshal_info): impl.
18202
18203         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
18204
18205 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18206
18207         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
18208         for reference types.
18209
18210 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
18211
18212         * loader.c: fixed off by one error in loaded parameter names.
18213
18214 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
18215
18216         * marshal.c (mono_marshal_get_icall_wrapper): like
18217         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
18218         instead of a MonoMethod.
18219
18220 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18221
18222         * decimal.c: fixed bug #36537.
18223
18224 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18225
18226         * marshal.c: throw a missing method exception if a
18227         P/Invoke method is not found.
18228
18229 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18230
18231         * icall.c: allow a null this for constructors.
18232
18233 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18234
18235         * icall.c: raise the proper exceptions if the arguments to the
18236         internal Invoke are incorrect.
18237
18238 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18239
18240         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18241
18242 2003-01-03  Martin Baulig  <martin@ximian.com>
18243
18244         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18245
18246 2002-12-31  Martin Baulig  <martin@ximian.com>
18247
18248         * debug-mono-symfile.c: Completely rewrote the type section.
18249         Instead of using individual malloc()ed fields, we use one big
18250         continuous memory area and offsets into this area.
18251         See the comments in the source code for details.
18252
18253 2002-12-30  Martin Baulig  <martin@ximian.com>
18254
18255         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18256
18257 2002-12-30  Martin Baulig  <martin@ximian.com>
18258
18259         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18260         line number table in this data blob instead of using an external
18261         pointer.
18262
18263 2002-12-28  Martin Baulig  <martin@ximian.com>
18264
18265         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18266
18267 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18268
18269         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18270         as a boxed return type.
18271
18272 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18273
18274         * appdomain.c
18275         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18276         g_build_filename to properly get separators on the filename created.
18277
18278         * object.h: Small change, introduce MonoMarshalByRefObject to
18279         track the layout of that structure in the C# universe as we make
18280         changes there.
18281
18282 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18283
18284         * object.c: removed assert to allow static fields on interfaces.
18285         * loader.c: a TypeSpec may be used for any type, not just arrays.
18286
18287 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18288
18289         * class.c, class.h: added mono_class_array_element_size ().
18290         Ignore static methods in interfaces.
18291
18292 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18293
18294         * threads.c: fixed the build under cygwin.
18295
18296 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18297
18298         * reflection.c: handle nullref constants. Allocate keys for
18299         reflection handles with the GC.
18300
18301 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18302
18303         * threads.c, threads.h: added mono_thread_get_abort_signal()
18304         to get a suitable signal for thread abort.
18305
18306 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18307
18308         * metadata.c: fix handling of ExportedType table.
18309
18310 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18311
18312         * icall.c: added WriteWindowsDebugString internal call.
18313
18314 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18315
18316         * reflection.h: added fields to match C# implementation.
18317
18318 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18319
18320         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18321
18322 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18323
18324         * gc.h, gc-internal.h: Rename header for GC internal calls to
18325         gc-internal.h from gc.h as to not clash with Boehm GC having its
18326         header installed as <gc.h> in outside include paths.
18327         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18328         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18329
18330 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18331
18332         * icall.c: assign minor, build and revision in FillName.
18333
18334 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18335
18336         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18337         Added support for running code generated by Reflection.Emit.
18338
18339 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18340
18341         * appdomain.c: check for NULL argument in LoadFrom.
18342
18343 2002-12-10  Dick Porter  <dick@ximian.com>
18344
18345         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18346
18347 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18348
18349         * appdomain.c: fix buglet when building exe file name.  Handle full
18350         assembly name (needed after latest changes to AssemblyName).
18351         * image.c:
18352         (mono_image_close): free some hashtables.
18353
18354 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
18355
18356         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
18357         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
18358         on some systems (redhat 7.3) 
18359
18360 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
18361
18362         * threads.c: delete the critical section of a sync block,
18363         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18364
18365 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18366
18367         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18368
18369 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18370
18371         * appdomain.[ch]: handle the assembly preload event to try loading the
18372         assemblies using the paths we have in the current domain.
18373
18374         * assembly.[ch]: created an assembly preload hook that is called to try
18375         loading the assembly by other means that the ones provided here.
18376
18377         * domain.c: initialize the domain search path.
18378
18379         From now on, assemblies (TODO: except corlib and System) are loaded
18380         according to these rules when using mono_assembly_load ():
18381
18382                 1. It tries to load the assembly from the ApplicationBase
18383                 of the current domain appending .dll and .exe (TODO: have to
18384                 try loading from name/name.dll and name/name.exe).
18385
18386                 2. It tries the search path specified in PrivateBinPath for the
18387                 current domain (if any).
18388
18389                 3. Previous behavior.
18390
18391 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18392
18393         * icall.c: implemented GetInterfaceMap() related icall.
18394         * domain.c, loader.h: load MethodInfo in mono_defaults.
18395
18396 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18397
18398         * gc.c: disable the finalizer thread for now, untill all the issues
18399         with it are resolved.
18400
18401 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18402
18403         * string-icalls.c: handle embedded nulls in string ctor when the
18404         length is specified.
18405
18406 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18407
18408         * class.c: look for explicit interface implementation in parent
18409         classes, too.
18410
18411 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18412
18413         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18414
18415 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18416
18417         * gc.c: protect handles with a critical section.
18418
18419 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18420
18421         * icall.c:
18422         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18423         parameters. If no assembly specified, try getting the type from all
18424         the assemblies in the current domain, else, load the assembly and get
18425         the type from it.
18426
18427 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18428
18429         * marshal.c: applied patch from Aleksey Demakov that fixes
18430         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18431
18432 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18433
18434         * icall.c: fixed get_location.
18435
18436 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18437
18438         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18439         declarations to make it work with older gcc. 
18440
18441         * loader.c (mono_get_method): set signature->pinvoke for native calls
18442
18443 2002-11-20  Dick Porter  <dick@ximian.com>
18444
18445         * threads.c (mono_thread_init): Set the main thread's handle
18446
18447 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18448
18449         * gc.c: allow compilation without GC support. Changed to match the
18450         mono coding style.
18451
18452 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18453
18454         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18455
18456 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18457
18458         * reflection.c: set a public key token on the core assemblies.
18459
18460 2002-11-18  Dick Porter  <dick@ximian.com>
18461
18462         * threads.c: Split out some thread initialisation so that other
18463         files can set the start callback function.
18464
18465         * gc.c: Run finalisers in a separate thread, to avoid stack
18466         overflow.  Fixes bug 31333.
18467
18468         * appdomain.c: Set up GC finalisation thread.
18469
18470         * reflection.c: 
18471         * object.c: 
18472         * domain.c: Use gc.h macros for GC_malloc
18473         
18474 2002-11-15  Dick Porter  <dick@ximian.com>
18475
18476         * threadpool.c: 
18477         * threads.c:
18478         * appdomain.c: Removed mono_runtime_init_with_attach(),
18479         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
18480         merging the extra parameter with the existing function.  Removed
18481         unneeded code in mono_thread_attach().
18482
18483 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
18484
18485         * image.c (mono_image_loaded_by_guid): a method to get loaded
18486         images by guid. 
18487         (load_metadata_ptrs): we store the guid as string.
18488
18489 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
18490
18491         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
18492
18493         * metadata.c (mono_guid_to_string): imported method form Zoltan
18494         Varga (slightly modified)
18495
18496         * assembly.c (mono_assembly_open): load precompiled code
18497
18498         * loader.h (MonoMethod): we store the method token for use in the
18499         aot compiler. 
18500
18501 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18502
18503         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
18504         the hook function called when an assembly is loaded.
18505         
18506         * domain.c: Modified file.
18507         (mono_domain_assembly_load): removed hash table insertion of assemblies.
18508
18509         Fixes bug #33196.
18510
18511 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
18512
18513         * reflection.c: Map PEFileKind to the value expected by the WinNT
18514         image loader. 
18515
18516 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18517
18518         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
18519         Read until the buffer is filled completely.
18520
18521 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18522
18523         * icall.c: implemented MonoType.InternalGetEvent ().
18524
18525 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18526
18527         * appdomain.c: implemented InitAppDomainSetup. Delayed
18528         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
18529         the entry_assembly.
18530
18531         * assembly.c: base_dir is now an absolute path ending with
18532         G_DIR_SEPARATOR.
18533
18534         * icall.c: modified get_location according to the above changes.
18535
18536         * object.c: init AppDomain.SetupInformation for the default domain after
18537         we have the entry assembly.
18538
18539         * domain.c: when unloading a domain, setup = NULL.
18540
18541 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
18542
18543         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
18544
18545 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
18546
18547         * object.h, object.c: introduced mono_object_get_virtual_method ()
18548         to lookup the method invoked on an object when a callvirt is done on
18549         a method.
18550         * icall.c: make MethodInfo::Invoke() always do a virtual call.
18551
18552 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18553
18554         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
18555         current domain when loaded an assembly and failed to load it.
18556
18557         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
18558
18559 2002-10-31  Dick Porter  <dick@ximian.com>
18560
18561         * icall.c: 
18562         * file-io.h: 
18563         * file-io.c: Return the error status in a parameter, as the
18564         GetLastError() value has long since been blown away if we try and
18565         look it up in a subsequent internal call invocation.  Delete the
18566         GetLastError() internal call, because it's useless.
18567
18568 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
18569
18570         * class.[ch]: added cast_class to fix bug 29517
18571
18572 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
18573
18574         * marshal.c: create valid IL code in the filter clause:
18575         the new JIT is less forgiving:-)
18576
18577 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18578
18579         * icall.c: removed get_property internal call.
18580
18581 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
18582
18583         * appdomain.h domain.c: Added an ID to appdomains.
18584         
18585         * threads.c threads.h icall.c: Implement icall
18586         Thread:GetDomainID(), and remove unused icall 
18587         CurrentThreadDomain_internal.
18588
18589 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18590
18591         * icall.c: Don't recurse through the base types in GetConstructor.
18592         Fixes bug #32063. 
18593
18594 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18595
18596         * mempool.h, mempool.c: added mono_mempool_empty() and
18597         mono_mempool_stats().
18598
18599 2002-10-23  Dick Porter  <dick@ximian.com>
18600
18601         * file-io.c: 
18602         * file-io.h: 
18603         * icall.c: Added MonoIO.GetFileType internal call
18604
18605 2002-10-17  Dick Porter  <dick@ximian.com>
18606
18607         * appdomain.c (mono_runtime_cleanup): Don't signal the async
18608         delegate semaphore before waiting for all threads to finish,
18609         because new threads can also call async delegates.  Fixes bug
18610         32004.
18611
18612         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
18613         of 3 seconds, in case another async job is queued.  (This part is
18614         needed because the bug fix reintroduced the 3s exit lag.)  This
18615         makes the mono_runtime_shutdown flag superfluous.
18616
18617 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18618
18619         * reflection.c: include ehader size in method section headers.
18620         Really check for suplicated modules entries.
18621
18622 2002-10-17  Martin Baulig  <martin@gnome.org>
18623
18624         * debug-mono-symfile.c: Added back support for locals.
18625
18626 2002-10-14  Martin Baulig  <martin@gnome.org>
18627
18628         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
18629         MONO_TYPE_VOID.
18630
18631 2002-10-14  Martin Baulig  <martin@gnome.org>
18632
18633         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
18634         mono_class_get() instead of looking in the class cache. 
18635
18636 2002-10-13  Martin Baulig  <martin@gnome.org>
18637
18638         * debug-mono-symfile.c: Set version number to 28, include the
18639         signature in method names.
18640
18641 2002-10-13  Martin Baulig  <martin@gnome.org>
18642
18643         * debug-mono-symfile.h: Set version number to 27.
18644
18645 2002-10-11  Martin Baulig  <martin@gnome.org>
18646
18647         * gc.c: Don't register/unregister NULL pointers as disappearing links.
18648
18649 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18650
18651         * metadata.c, metadata.h: added helper function to allocate signatures.
18652
18653 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18654
18655         * icall.c: added internal call to get the location of machine.config.
18656
18657 2002-10-08  Martin Baulig  <martin@gnome.org>
18658
18659         * debug-mono-symfile.c: Ignore classes with a pending init for the
18660         moment.
18661
18662 2002-10-03  Dick Porter  <dick@ximian.com>
18663
18664         * threads.c: Freebsd pthread_t is a pointer
18665
18666 2002-10-03  Dick Porter  <dick@ximian.com>
18667
18668         * socket-io.c: Implemented GetHostName_internal
18669
18670 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18671
18672         * mono-config.c:
18673         (mono_config_parse_file): don't leak the text.
18674
18675 2002-10-02  Martin Baulig  <martin@gnome.org>
18676
18677         * debug-mono-symfile.c: Added support for methods.
18678
18679 2002-10-01  Martin Baulig  <martin@gnome.org>
18680
18681         * debug-mono-symfile.c: Don't emit methods and line numbers for
18682         the dynamic symbol file, just write the type table.  We can easily
18683         have an external helper program which creates a symbol file for an
18684         IL file.        
18685
18686 2002-10-01  Dick Porter  <dick@ximian.com>
18687
18688         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
18689         Only add the handle to the cleanup array when we're about to
18690         launch the thread.  Bug 31425 deadlocked when the test was run on
18691         mono under w32.
18692
18693 2002-10-01  Martin Baulig  <martin@gnome.org>
18694
18695         * debug-mono-symfile.c: Added support for properties.
18696
18697 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18698
18699         * reflection.c: unaligned store fix from Mark Crichton
18700         <crichton@gimp.org>.
18701
18702 2002-09-27  Martin Baulig  <martin@gnome.org>
18703
18704         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
18705         New interncall.
18706
18707 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18708
18709         * assembly.h, assembly.c: use a sane API to hook into the assembly
18710         loading process instead of a useless special-purpouse hack
18711         (ngen needs a hook, too, for example).
18712
18713 2002-09-27  Dick Porter  <dick@ximian.com>
18714
18715         * threads.c (mono_thread_init): Call GetCurrentProcess() so
18716         io-layer can set up some process handle info.  Not needed on w32,
18717         but doesn't hurt either.
18718
18719         * process.c: Pass the program name in the second parameter to
18720         CreateProcess, so the path is searched.  Include the working
18721         directory. Implemented process name, process enumeration, and some
18722         process detail internal calls.
18723         
18724         * icall.c: Added internal calls for process lookup, and some
18725         process details
18726
18727 2002-09-26  Martin Baulig  <martin@gnome.org>
18728
18729         * assembly.c (mono_install_open_assembly_hook): New global
18730         function to install a function to be invoked each time a new
18731         assembly is loaded.
18732         (mono_assembly_open): Run this callback function if set.
18733
18734         * debug-mono-symfile.c: Put back line numbers for the dynamic
18735         symbol file and also record the .il file as source file.  This
18736         allows us to install the temporary symbol file as `file.dbg' just
18737         like a compiler-generated one.
18738
18739 2002-09-26  Nick Zigarovich <nick@chemlab.org>
18740
18741         * Corrected typo in gc.c (BOHEM vs BOEHM).
18742
18743 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18744
18745         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
18746         GetProperties. Also avoid calling g_slist_length in GetProperties and
18747         GetMethods.
18748
18749 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18750
18751         * reflection.c: avoid unaligned stores (bug spotted by
18752         Mark Crichton  <crichton@gimp.org>).
18753
18754 2002-09-25  Martin Baulig  <martin@gnome.org>
18755
18756         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
18757         instead of guint64 for addresses and added prologue/epilogue info.
18758
18759 2002-09-25  Martin Baulig  <martin@gnome.org>
18760
18761         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
18762         store line number info.  For the dynamic symbol file, we only need
18763         to provide the JIT generated dynamic line number info for the dynamic
18764         symbol file.
18765
18766 2002-09-25  Martin Baulig  <martin@gnome.org>
18767
18768         * debug-mono-symfile.h: Incremented version number.
18769
18770 2002-09-24  Martin Baulig  <martin@gnome.org>
18771
18772         * class.c (mono_debugger_class_init_func): New global function
18773         pointer variable.
18774         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
18775         call it.
18776
18777         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
18778         function.  This is called via the mono_debugger_class_init_func
18779         hook to add all types to the dynamic type table.
18780         (ves_icall_MonoDebugger_GetType): New interncall to get a class
18781         from its metadata token.
18782
18783         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
18784         New interncall for the debugger.
18785
18786 2002-09-24  Nick Drochak <ndrochak@gol.com>
18787
18788         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
18789         before using it in case it is null.
18790         
18791 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18792
18793         * metadata.c: allow custom modifiers in local var signatures
18794         (bug spotted by Zoltan Varga).
18795
18796 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18797
18798         * class.c: deal with the <Module> class that may have a NULL vtable.
18799         Eliminate warnings.
18800
18801 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18802
18803         * image.c, image.h: more strong name helpers.
18804         * monosn.c: more work: convert pem keys to cryptoapi format.
18805
18806 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18807
18808         * string-icalls.c: speedup IndexOf.
18809
18810 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18811
18812         * icall.c: updates from Zoltan.2.Varga@nokia.com.
18813
18814 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18815
18816         * icall.c: cleanup: use mono_object_domain ().
18817
18818 2002-09-23  Martin Baulig  <martin@gnome.org>
18819
18820         * debug-mono-symfile.c: Improved type support.
18821
18822 2002-09-22  Martin Baulig  <martin@gnome.org>
18823
18824         * debug-mono-symfile.c: Added support for reference types and strings.
18825
18826 2002-09-22  Martin Baulig  <martin@gnome.org>
18827
18828         * debug-mono-symfile.c: Started to work on the type table.
18829
18830 2002-09-21  Martin Baulig  <martin@gnome.org>
18831
18832         * debug-mono-symfile.c: Largely reworked the symbol table format.
18833         The symbol table is now incrementally updated each time a new
18834         method is added.  We're now also using our own magic and version
18835         so that you don't need to recompile all your classes if the
18836         dynamic table changes.
18837         (mono_debug_update_mono_symbol_file): Removed.
18838         (mono_debug_symfile_add_method): New function to add a method.
18839
18840 2002-09-21  Martin Baulig  <martin@gnome.org>
18841
18842         * icall.c
18843         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
18844         New interncall.
18845
18846         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
18847         New interncall to get a method from its metadata token.
18848
18849 2002-09-21  Martin Baulig  <martin@gnome.org>
18850
18851         * debug-mono-symfile.c: Create type table.
18852
18853 2002-09-20  Martin Baulig  <martin@gnome.org>
18854
18855         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
18856
18857 2002-09-20  Martin Baulig  <martin@gnome.org>
18858
18859         * debug-mono-symfile.c: Provide information about params and locals.
18860
18861 2002-09-20  Martin Baulig  <martin@gnome.org>
18862
18863         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
18864         New interncall.
18865
18866         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
18867         interncall to get a method from its metadata token.
18868
18869 2002-09-20  Martin Baulig  <martin@gnome.org>
18870
18871         * debug-mono-symfile.c: Added a few checks for method->header
18872         being non-NULL.  This should never happen, but for the moment
18873         let's use a g_warning() rather than a g_assert().
18874
18875 2002-09-19  Mark Crichton  <crichton@gimp.org>
18876
18877         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
18878         even if support for it isn't present.  Added an #ifdef to fix this.
18879
18880         * socket-io.c: Added checks back for Solaris support.
18881
18882 2002-09-19  Martin Baulig  <martin@gnome.org>
18883
18884         * debug-mono-symfile.c (read_string, write_string): Reflect latest
18885         changes in the symbol file format.
18886
18887 2002-09-18  Martin Baulig  <martin@gnome.org>
18888
18889         * debug-mono-symfile.c: Set version number to 21.
18890
18891 2002-09-18  Dick Porter  <dick@ximian.com>
18892
18893         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
18894         on netbsd.  Fixes bug 30051.
18895
18896 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18897
18898         * reflection.c:
18899         (set_version_from_string): little fix.
18900
18901 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18902
18903         * monosn.c, Makefile.am: added strong name utility.
18904         * reflection.h, reflection.c: implemented delayed signing,
18905         locale, version and hash id assembly attributes.
18906
18907 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18908
18909         * loader.c, metadata.c: load param attributes in signatures.
18910
18911 2002-09-16  Martin Baulig  <martin@gnome.org>
18912
18913         * debug-mono-symfile.c: Added string table with all method names.
18914
18915 2002-09-14  Martin Baulig  <martin@gnome.org>
18916
18917         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
18918         fast method lookup.
18919
18920 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18921
18922         * reflection.c: record the public key token of referenced assemblies.
18923
18924 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18925
18926         * image.c, image.h: added functions to get the strong name and the
18927         public key of an assembly.
18928         * pedump.c: use them.
18929
18930 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
18931
18932         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
18933
18934 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
18935
18936         * marshal.c (mono_marshal_get_managed_wrapper): Added
18937         MONO_TYPE_BOOLEAN 
18938
18939 2002-09-11  Martin Baulig  <martin@gnome.org>
18940
18941         * gc.c: Call GC_unregister_disappearing_link() on all links when
18942         finalizing them, this is necessary to aviod a crash in boehm's
18943         finalize handler.
18944
18945 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18946
18947         * gc.c: handle GetTarget for finalized objects spotted and fixed by
18948         nick@chemlab.org.
18949
18950 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18951
18952         * icall.c: implemented MonoType::Module.
18953         * reflection.c, reflection.h: mono_module_get_object () from
18954         Tomi Pakarinen <tomi.pakarinen@welho.com>.
18955
18956 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18957
18958         * icall.c: ignore overridden methods in GetMethods ().
18959         Fix for FieldInfo::SetValue().
18960         * object.c: handle float/double in runtime invoke.
18961
18962 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18963
18964         * object.c: allow a constructor to be called again on an object.
18965
18966 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18967
18968         * class.h, class.c: move field layout code to it's own function and
18969         export it. Get an interface id earlier. Move fields in MonoClass
18970         so they are more cache friendly and align the bitfields.
18971         * loader.c: temporary handle get_param_names() for a runtime method.
18972         * reflection.c, reflection.h: more code to handle runtime creation of
18973         types.
18974
18975 2002-09-09  Martin Baulig  <martin@gnome.org>
18976
18977         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
18978         signature with the pinvoke field being set for the actual call.
18979
18980 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18981
18982         * icall.c: removed some unused icalls. Start of map of glib charsets
18983         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
18984
18985 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18986
18987         * debug-helpers.c: break infinite loop (found and fixed by
18988         Holger Arnold <harnold@gmx.de>).
18989
18990 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18991
18992         * icall.c: target may be null in create_delegate.
18993
18994 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18995
18996         * marshal.c: handle a boolean return type.
18997
18998 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18999
19000         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
19001
19002 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19003
19004         * gc.c: fix weakreferences.
19005
19006 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19007
19008         * icall.c: added icall to get default codepage.
19009
19010 2002-09-03  Dick Porter  <dick@ximian.com>
19011
19012         * threads.h: 
19013         * threads.c: Use MonoThread instead of MonoObject where
19014         apropriate.
19015
19016         Store running thread objects in a hash table, so that we have all
19017         the info to hand when waiting for them to finish
19018         (means we don't need OpenThread() any more, so mingw builds should
19019         be fully functional again.)
19020
19021         * verify.c:
19022         * object.h: Added thread ID to MonoThread
19023
19024 2002-09-03  Martin Baulig  <martin@gnome.org>
19025
19026         * icall.c (System.Reflection.Assembly::get_location): New interncall.
19027
19028 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19029
19030         * icall.c: fixed leak in get_temp_path. Thanks lupus.
19031
19032 2002-09-03  Martin Baulig  <martin@gnome.org>
19033
19034         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
19035         argument to store the end address of the disassembled instruction.
19036
19037         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
19038         here from debug-symfile.h.
19039         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
19040         JIT into this struct.
19041         (MonoSymbolFile): Added `char *image_file' field.
19042         (MonoDebugGetMethodFunc): Removed.
19043         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
19044         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
19045         (mono_debug_find_method): New method.
19046
19047         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
19048         create a full symbol file.
19049         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
19050         and static symbol files.
19051         (mono_debug_find_method): The symbol file keeps an internal method hash,
19052         call this to get a MonoDebugMethodInfo from a MonoMethod.
19053
19054         * debug-symfile.[ch]: Removed.
19055
19056 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
19057
19058         * image.c (do_mono_image_open): Remove linker version check.
19059
19060 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
19061
19062         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
19063         wrappers for instance methods.
19064         
19065 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19066
19067         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
19068
19069 2002-08-28  Dick Porter  <dick@ximian.com>
19070
19071         * Makefile.am: Export HOST_CC for w32 builds
19072
19073 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19074
19075         * file-io.c process.c: MonoString are null terminated, no
19076         need for mono_string_to_utf16() anymore.
19077
19078 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19079
19080         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
19081
19082 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
19083
19084         * icall.c, reflection.h: speedup System.MonoType.
19085
19086 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19087
19088         * reflection.c: allow null as the value of a string argument in
19089         custom attributes constructors.
19090
19091 2002-08-27  Martin Baulig  <martin@gnome.org>
19092
19093         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
19094         `trampoline_address' field.
19095
19096 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
19097
19098         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
19099         check (fixes bug #29486) 
19100
19101 2002-08-27  Martin Baulig  <martin@gnome.org>
19102
19103         * debug-mono-symfile.c: Changed the file format in a way that allows us
19104         open it read-only and to use a specially malloced area for all the
19105         dynamic data.  We can now also generate a symbol file on-the-fly if we're
19106         debugging IL code and there is no MCS generated symbol file for it.
19107
19108 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19109
19110         * object.c: added a define for a good string and array
19111         creation speedup (not enabled by default because we need to deal with
19112         the synch stuff).
19113
19114 2002-08-26  Martin Baulig  <martin@gnome.org>
19115
19116         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
19117         function to create a dynamic symbol file.  This is used by the
19118         debugger to create a symbol file for IL code on-the-fly.
19119
19120 2002-08-26  Martin Baulig  <martin@gnome.org>
19121
19122         * loader.c (mono_lookup_pinvoke_call): Include the error message
19123         from g_module_error() in the error message.
19124
19125 2002-08-24  Martin Baulig  <martin@gnome.org>
19126
19127         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
19128         function to update the symbol file.  The symbol file is mmap()ed
19129         writable, but private.  This allows us to install the symbol file
19130         together with the assembly.
19131
19132 2002-08-24  Martin Baulig  <martin@gnome.org>
19133
19134         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
19135         but they can read the new symbol file format which mcs is now creating.
19136
19137         * debug-symfile.c (mono_debug_find_source_location): Moved to
19138         debug-mono-symfile.c; this is now operating on the new symbol file.
19139
19140 2002-08-23  Martin Baulig  <martin@gnome.org>
19141
19142         * debug-helpers.c (mono_method_desc_from_method): New function to get
19143         a MonoMethodDesc from a MonoMethod.
19144
19145 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19146
19147         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
19148         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
19149
19150 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19151
19152         * string-icalls.[ch]: make helper methods static.
19153
19154 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19155
19156         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
19157         types to it and to SetValueInternal.
19158
19159         * object.c: Moved handle_enum label to its proper place. This was the
19160         f... bug! ;-)
19161
19162         This time i compiled mcs and gtk-sharp and they both work.
19163
19164 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19165
19166         * icall.c: reverted partially my previous patch until 
19167         object.c:set_value handles enums correcly.
19168
19169 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19170
19171         * icall.c:
19172         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
19173         (ves_icall_System_Environment_get_MachineName): removed warning when
19174         compiling under cygwin.
19175
19176 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19177
19178         * object.c: fixed field_get_value() for reference types.
19179
19180 2002-08-22  Dick Porter  <dick@ximian.com>
19181
19182         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
19183         Don't free a buffer while it's still needed.  Patch from Jonathan
19184         Liger <Jonathan.liger@wanadoo.fr>
19185
19186 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
19187
19188         * icall.c (ves_icall_System_Environment_get_Platform): Add new
19189         internal call.
19190
19191 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
19192
19193         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
19194         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
19195
19196         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
19197         we call unmanaged code which throws exceptions.
19198
19199 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19200
19201         * appdomain.h: added per-domain entry_assembly.
19202         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
19203         arguments.
19204         * icall.c: Assembly::GetEntryAssembly icall.
19205         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
19206         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
19207
19208 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19209
19210         * appdomain.h, gc.c: added mono_domain_finalize ().
19211
19212 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19213
19214         * object.c:
19215         (mono_print_unhandled_exception): changed g_warning by g_printerr
19216         because g_log has a 1024 characters limit (yeah, i got a big stack
19217         trace). Don't print exception name, that should be in ToString 
19218         returned string.
19219
19220 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19221
19222         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19223         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19224
19225 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19226
19227         * object.c:
19228         (mono_print_unhandled_exception): after previous commit, i realized
19229         that MS calls ToString on the exception. I changed this function to
19230         do that. This way we get stack_trace for free.
19231
19232 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19233
19234         * object.c:
19235         (mono_print_unhandled_exception): invoke Message property instead of
19236         getting 'message' field from Exception. Don't allocate memory for
19237         'trace' and 'message' if not needed.
19238
19239 2002-08-18  Dick Porter  <dick@ximian.com>
19240
19241         * unicode.c: Fix asserts to match Encoder.cs checks
19242
19243 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19244
19245         * marshal.c: fix unaligned store issue and a few wrong
19246         opcode argument types.
19247
19248 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19249
19250         * icall.c: added GetUninitializedObjectInternal internal call.
19251
19252 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19253
19254         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19255         to the right domain.
19256
19257 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19258
19259         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19260
19261         * class.c (class_compute_field_layout): set blittable to false for Strings
19262
19263         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19264
19265 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19266
19267         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19268         first chunk of code to create types at runtime. Code to
19269         handle ReflectedType/DeclaringType. Make reflection handles
19270         domain specific.
19271
19272 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19273
19274         * class.c: set correct name in arrays.
19275
19276 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19277
19278         * appdomain.c (mono_domain_transfer_object): make it work with
19279         valuetypes. bug fixes.
19280
19281 2002-08-12  Dick Porter  <dick@ximian.com>
19282
19283         * object.h: Rename some parameters to avoid c++ keywords (Patch
19284         from Joseph Wenninger <kde@jowenn.at>)
19285
19286 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19287
19288         * icall.c: added icall to implement Assembly.GetFile*.
19289
19290 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19291
19292         * reflection.h, reflection.c: code to embed managed resources.
19293
19294 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19295
19296         * class.c: move all the type size stuff into
19297         class_compute_field_layout().
19298
19299 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19300
19301         * class.c: ensure enums have always the correct instance size.
19302         * unicode.c: remove wrong assert.
19303
19304 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19305
19306         * assembly.c: fix mem corruption issue.
19307         * image.h, image.c: added mono_image_get_resource () to access
19308         managed resources.
19309         * icall.c: implemented Assembly.EntryPoint property and some
19310         Managed Resources related internalcalls.
19311
19312
19313 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19314
19315         * image.c, image.h: impemented mono_image_get_entry_point ().
19316         * appdomain.c: use mono_image_get_entry_point.
19317
19318 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19319
19320         * reflection.c: support the object type argument when loading
19321         custom attributes.
19322
19323 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19324
19325         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19326         String as return type.
19327
19328 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19329
19330         * reflection.c: fix encoding of named args for custom attrs to match
19331         the ms implementation. Read them back when instantiating custom
19332         attributes.
19333
19334 2002-08-02  Radek Doulik  <rodo@ximian.com>
19335
19336         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19337         by Dietmar as quick fix
19338         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19339         16 as stack size, used on more places as quick fix before Dietmar
19340         will fix it properly
19341
19342 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19343
19344         * object.h, object.c: added accessors for fields and properties.
19345
19346 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19347
19348         * class.c, class.h: made mono_class_get_field_from_name ()
19349         loop on parent types.
19350         Added mono_class_get_property_from_name ().
19351
19352 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19353
19354         * class.c, class.h: move the code to setup the type vtable in its own
19355         function so that it can be reused also for types created at runtime.
19356         Eliminate the "class" identifier from the header file.
19357         * reflection.c: setup the vtable for enums so that we can create
19358         objects for use in SetConstant ().
19359
19360 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
19361
19362         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
19363         instead of the delegate itself as this pointer (bug #28383)
19364
19365 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19366
19367         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19368         conversions.
19369
19370 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19371
19372         * loader.c: don't set the pinvoke bit on icalls.
19373
19374 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19375
19376         * debug-helpers.c (mono_method_full_name): only print a number to
19377         indicate wrapper type (so that the output is more readable in traces).
19378
19379 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19380
19381         * class.c (mono_class_init): include method override patch from Paolo
19382
19383 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19384
19385         * icall.c: fixed GetTypeCode().
19386
19387 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19388
19389         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19390         use real delegate invoke function to make it work with multicast
19391         delegates (fix bug# 28291).
19392
19393 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19394
19395         * object.c: load constant strings.
19396
19397 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19398
19399         * reflection.c: no magic numbers.
19400         * tabledefs.h: security action enum.
19401
19402 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19403
19404         * assembly.c: fix possible memory corruption.
19405
19406 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19407
19408         * reflection.h, reflection.c: added support for linking resources.
19409         * verify.c: check we have an updated corlib.
19410
19411 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19412
19413         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19414         string arrays.
19415         (mono_marshal_string_array): null terminate unmanaged string arrays.
19416         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19417
19418 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19419
19420         * icall.c: Type.GetType () can now return also types from the
19421         calling assembly.
19422
19423 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19424
19425         * loader.h, loader.c: stack walking support.
19426         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19427         GetCallingAssembly.
19428
19429 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19430
19431         * marshal.c: added optimisations for blittable types 
19432
19433         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19434         (mono_class_setup_mono_type): set blittable attribute for single
19435         and double.
19436
19437         * marshal.c (mono_string_utf8_to_builder): impl.
19438         (mono_string_builder_to_utf8): impl.
19439         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19440
19441 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19442
19443         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19444         (mono_marshal_get_managed_wrapper): impl. byref types
19445
19446 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19447
19448         * icall.c:
19449         (search_method): don't display debug message. 
19450
19451 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19452
19453         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19454
19455 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19456
19457         * appdomain.c: set the missing filename when throwing exception.
19458
19459 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19460
19461         * metadata.c (mono_type_size): code cleanup
19462         (mono_type_stack_size): removed some test code
19463
19464 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
19465
19466         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
19467         mono_get_exception_file_not_found now.
19468
19469         * exception.c (mono_exception_from_name_two_strings): New version
19470         that will call a constructor with two string arguments. 
19471         (mono_get_exception_file_not_found): New helper routine, used to
19472         report file-not-found errors.
19473
19474 2002-07-20  Dick Porter  <dick@ximian.com>
19475
19476         * process.h:
19477         * process.c: Pass file handles to CreateProcess
19478         
19479         * icall.c:
19480         * file-io.h:
19481         * file-io.c: Implemented CreatePipe
19482
19483 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19484
19485         * metadata.c (mono_get_param_info): set alignment for value types
19486
19487 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19488
19489         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
19490         Constify mono_domain_assembly_open().
19491         * loader.c: handle null namespace in icalls.
19492
19493 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19494
19495         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
19496         (emit_str_to_ptr_conv): marshal object as structs
19497
19498         * metadata.c (mono_type_to_unmanaged): marshal object as structs
19499
19500         * marshal.c (mono_marshal_get_runtime_invoke): support value types
19501
19502 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
19503
19504         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
19505         (mono_marshal_get_native_wrapper): we an now return value types
19506
19507 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19508
19509         * verify.c: more checks implemented.
19510
19511 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
19512
19513         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
19514         (fix bug #27695)
19515         (mono_marshal_get_native_wrapper): allow byref arguments
19516         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
19517         impl. PtrToStringXXX methods
19518         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
19519         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
19520         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
19521         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
19522         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
19523
19524 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19525
19526         * reflection.c: fix buglet in parsing an assembly name.
19527
19528 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19529
19530         * marshal.c (emit_ptr_to_str_conv): first impl.
19531
19532 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19533
19534         * object.c, class.h: cache the vtable in the class as suggested by
19535         vargaz@freemail.hu (Zoltan Varga).
19536
19537 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19538
19539         * class.h, loader.c: added mono_field_from_token().
19540         * verify.c: first cut of type checking code.
19541
19542 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19543
19544         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
19545
19546 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
19547
19548         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
19549         (fix bug #27782)
19550         (mono_marshal_get_remoting_invoke): impl.
19551         (mono_delegate_begin_invoke): impl.
19552         (mono_mb_emit_save_args): impl.
19553         (mono_delegate_end_invoke): impl.
19554         (mono_marshal_get_delegate_begin_invoke):
19555         (mono_marshal_get_delegate_end_invoke):
19556         (mono_marshal_get_delegate_invoke): generate a special name for
19557         those methods (including the signature) and associate them whith
19558         the delegate class. 
19559
19560 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
19561
19562         * reflection.[ch]: 
19563         (mono_reflection_type_from_name): now it has a MonoImage parameter
19564         which is used as the default image to search the type in. If the image
19565         is NULL or getting the type from it fails, it defaults to corlib.
19566
19567         * icall.c: changed 1 call to mono_reflection_type_from_name to match
19568         new parameter.
19569
19570 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19571
19572         * reflection.c: update the parameter table index.
19573
19574 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19575
19576         * domain.c: don't include the mark byte in the string hash.
19577
19578 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19579
19580         * icall.cs: icall for Type.GetTypeCode ().
19581         * verify: a couple of fixes and disabled local initialization checks.
19582
19583 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
19584
19585         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
19586
19587         * debug-helpers.c (mono_method_full_name): print the type of the
19588         runtime wrapper
19589
19590         * metadata.c (mono_signature_hash): a hash function for signatures
19591         (mono_signature_hash): better hash algorithm
19592
19593         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
19594
19595         * debug-helpers.c (mono_method_full_name): this can now generate
19596         method names with signatures
19597
19598         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
19599         method dont have this pointers.
19600
19601 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19602
19603         * reflection.c: fixup typebuilder tokens.
19604         * image.c: fix buglet.
19605         * marshal.h: remove whitespace.
19606         * metadata.h, metadata.c: reinstate code that was removed.
19607         * verify.c: handle catch directives and fix another couple of bugs.
19608
19609 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
19610
19611         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
19612         (mono_marshal_get_native_wrapper): make it comp. with the old code
19613         (mono_marshal_get_native_wrapper): support boolean
19614         (mono_marshal_get_managed_wrapper): support more types
19615
19616 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
19617
19618         * class.c (class_compute_field_layout): compute class->blittable attribute.
19619
19620 2002-07-09  Dick Porter  <dick@ximian.com>
19621
19622         * threads.c: Make the thread cleaning up cope with threads that
19623         call ExitThread()
19624
19625 2002-07-08  Radek Doulik  <rodo@ximian.com>
19626
19627         * reflection.c (method_encode_code): use non-translated values to
19628         compute finally_start, this fixes exception handling on ppc, yay!
19629
19630         * decimal.h (struct signscale): fix endianess
19631
19632 2002-07-07  Radek Doulik  <rodo@ximian.com>
19633
19634         * reflection.c: swap box_val and not val
19635
19636 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19637
19638         * reflection.c, reflection.h: handle full assembly info in type name.
19639         Handle Type arguments when loading custom attributes.
19640         * icall.c: updated to use new mono_reflection_type_from_name () method.
19641
19642 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19643
19644         * loader.c:
19645         (method_from_memberref): also print assembly name when method not found.
19646
19647 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19648
19649         * icall.c:
19650         (ves_icall_TypeGetProperties): fixed bug #27473. 
19651
19652 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19653
19654         * reflection.c: display image name and token when cannot find the
19655         .ctor for an attribute.
19656
19657 2002-07-05  Martin Baulig  <martin@gnome.org>
19658
19659         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19660
19661 2002-07-04  Dick Porter  <dick@ximian.com>
19662
19663         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
19664         compile on mingw.  This will cause mingw builds to not wait for
19665         subthreads to terminate after the main thread does.  I've lodged a
19666         bug with the mingw developers for them to wrap OpenThread().
19667
19668 2002-07-03  Dick Porter  <dick@ximian.com>
19669
19670         * threads.c: Store thread IDs instead of handles, because
19671         GetCurrentThread() returns a pseudohandle and therefore stores
19672         useless values.  mono_thread_cleanup() continues checking the
19673         array of threads until it is empty, to cope with subthreads
19674         spawning new threads after the main thread has finished.
19675
19676         * profiler.h:
19677         * profiler.c:
19678         * profiler-private.h: Pass the thread ID to thread profiler
19679         functions, instead of a handle
19680
19681 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19682
19683         * verify.c: fixes to make it more usable.
19684         * pedump.c: added --verify code to verify IL code in an assembly.
19685
19686 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19687
19688         * reflection.c: turn errors into warnings to allow compiling corlib.
19689
19690 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19691
19692         * reflection.c: add special cases to compile corlib.
19693
19694 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19695
19696         * reflection.c: handle properties with only a set method.
19697
19698 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19699
19700         * opcodes.h: add enum with opcodes in opval order.
19701
19702 2002-07-01  Dick Porter  <dick@ximian.com>
19703         
19704         * object.h:
19705         * object.c (mono_runtime_run_main): Removed unneeded argument
19706
19707 2002-06-28  Martin Baulig  <martin@gnome.org>
19708
19709         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19710
19711 2002-06-27  Dick Porter  <dick@ximian.com>
19712
19713         * threads.c: Store the handle in both the parent thread and in the
19714         subthread, to minimise the time between starting a new thread and
19715         storing its ID.
19716
19717 2002-06-26  Dick Porter  <dick@ximian.com>
19718
19719         * appdomain.c (mono_runtime_cleanup): Close the socket library
19720         after all the threads have finished, not before
19721
19722 2002-06-26  Martin Baulig  <martin@gnome.org>
19723
19724         * debug-symfile.c (mono_debug_find_source_location): Added
19725         `guint32 *line_number' argument.  If it's not NULL, store the line number
19726         there and return the file name without the line number.
19727
19728 2002-06-25  Dick Porter  <dick@ximian.com>
19729
19730         * icall.c:
19731         * process.h:
19732         * process.c: Process forking and other support functions
19733
19734 2002-06-25  Dick Porter  <dick@ximian.com>
19735
19736         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
19737         things dont happen when the image is closed.
19738         (mono_image_lookup_resource): Walk the resource section looking
19739         for a particular entry
19740
19741         * cil-coff.h: PE resource section decoding
19742
19743 2002-06-25  Dick Porter  <dick@ximian.com>
19744         
19745         * assembly.h:
19746         * assembly.c: 
19747         (mono_assembly_foreach): Accessor functions to walk the list of
19748         loaded assemblies
19749         (mono_assembly_set_main):
19750         (mono_assembly_get_main): Process methods need to know which
19751         assembly is the "main" one
19752
19753         * object.c (mono_runtime_run_main): Record the main assembly
19754
19755         * debug-helpers.c: Fix typo
19756
19757 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
19758
19759         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
19760         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
19761
19762 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19763
19764         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
19765
19766 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
19767
19768         * image.c (do_mono_image_open): Initialize reference count,
19769         otherwise we leak the MonoImage.
19770
19771 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19772
19773         * reflection.c: small tweak to handle self-hosting.
19774
19775 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19776
19777         * reflection.c: fix type name parse code.
19778
19779 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19780
19781         * reflection.c: break out of the loop.
19782         * image.c: special case corlib.
19783
19784 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19785
19786         * reflection.c: add all the custom attrs at the end to ensure the
19787         ctors have been properly initialized when the attributes are defined
19788         in the current assembly.
19789
19790 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19791
19792         * reflection.c: handle correctly multiple-nested types.
19793
19794 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19795
19796         * row-indexes.h: fix typos.
19797         * reflection.c: adjust for typos and fix method_def_or_ref
19798         encoding in MethodImpl table.
19799
19800 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19801
19802         * reflection.c: fix entry point patching (thanks Serge!).
19803
19804 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
19805
19806         * verify.c: add check for System.Exception
19807
19808 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19809
19810         * image.c, class.c: minifix for code just c&p'ed.
19811         * reflection.c: warning fix.
19812         * object.h, loader.h, domain.c: load also StringBuilder.
19813
19814 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19815
19816         * marshal.h, marshal.c: some support code to handle complex marshaling.
19817
19818 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19819
19820         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
19821         Better signatures with vtable error dump.
19822
19823 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
19824
19825         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
19826
19827 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
19828
19829         * icall.c (ves_icall_Type_GetField): impl.
19830
19831 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19832
19833         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
19834         to retrieve a marshal description blob for a field or param.
19835
19836 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19837
19838         * reflection.h, reflection.c: change order of nested type emission
19839         to avoid table corruption. The NestedTypes table is sorted.
19840         * icall.c: change order of GetConstructor results to workaround mcs bug.
19841
19842 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19843
19844         * reflection.h, reflection.c: handle field and param marshal
19845         information.
19846
19847 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19848
19849         * icall.c, marshal.c marshal.h: more Marshal class implementation.
19850
19851 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19852
19853         * reflection.c: fix call convention.
19854
19855 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19856
19857         * reflection.h, reflection.c: mono_image_get_memberref_token()
19858         takes a type instead of a class, now. Added
19859         mono_image_get_array_token() to create tokens for the special
19860         multi-dim array methods.
19861
19862 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19863
19864         * assembly.c: handle modules (no assembly table). Split
19865         loading references in its own function.
19866         * class.c: handle moduleref resolution scope.
19867         * image.c, image.h: cache module name in image.
19868
19869 2002-06-07  Martin Baulig  <martin@gnome.org>
19870
19871         * reflection.c (mono_image_get_type_info): Only add a class layout entry
19872         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
19873
19874 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19875
19876         * icall.c: more signature fixes that used uint instead of int.
19877
19878 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19879
19880         * reflection.c: fixed signature of field refs.
19881
19882 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19883
19884         * class.c, reflection.c: handle typerefs of nested types
19885         (both on read and when writing files).
19886
19887 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19888
19889         * icall.c: fix method signatures that tried to workaround the previous
19890         typo, d'oh!
19891
19892 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19893
19894         * debug-helpers.c: fix typo.
19895
19896 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19897
19898         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
19899         rewrote the PE/COFF writing code (our programs are understood by the
19900         ms runtime, now).
19901
19902 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19903
19904         * gc.c, gc.h, icall.c: weakreference support.
19905
19906 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19907
19908         * Makefile.am, mono-config.c: use $(sysconfdir).
19909
19910 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19911
19912         * icall.c: changed default precision of Double.ToString() to 15.
19913         Fixed memory leak. Unified with Single.ToString.
19914
19915 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19916
19917         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
19918
19919 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19920
19921         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
19922         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
19923         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
19924         and myself.
19925
19926 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19927
19928         * debug-symfile.c, sysmath.c: yet more compilation fixes.
19929
19930 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19931
19932         * reflection.c, socket-io.c: more compilation fixes.
19933
19934 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19935
19936         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
19937         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
19938         unicode.c: warning and compiler compatibility fixes.
19939
19940 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19941
19942         * class.h, metadata.c: fixed warnings/compilation errors.
19943
19944 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19945
19946         * Makefile.am, mono-config.c, mono-config.h: configuration file
19947         support routines.
19948         * loader.c, loader.h: make Dll mapping configurable at runtime in the
19949         config file. Export methods to insert and lookup mappings.
19950
19951 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19952
19953         * reflection.c: handle types and boxed objects in custom attr
19954         constructors.
19955
19956 2002-05-30  Martin Baulig  <martin@gnome.org>
19957
19958         * debug-symfile.c
19959         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
19960
19961 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
19962
19963         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
19964         to lookup the implmap row for a P/Invoke method.
19965         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
19966         P/Invoke method from the runtime on an as needed basis.
19967
19968 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
19969
19970         * metadata.c (mono_metadata_parse_signature): impl.
19971
19972 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19973
19974         * class.c: handle .pack directive.
19975
19976 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19977
19978         * object.c: initialize static fields with RVA data.
19979
19980 2002-05-25  Martin Baulig  <martin@gnome.org>
19981
19982         * debug-symfile.c
19983         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
19984
19985 2002-05-24  Martin Baulig  <martin@gnome.org>
19986
19987         * debug-symfile.c
19988         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
19989         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
19990         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
19991
19992 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19993
19994         * object.c: special case string ctros in invoke.
19995         * gc.c: silly whitespace changes.
19996
19997 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
19998
19999         * threadpool.[ch]: impl. a threadpool that can
20000         be used by mint and mono.
20001
20002 2002-05-22  Martin Baulig  <martin@gnome.org>
20003
20004         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
20005         The first argument is now a `MonoReflectionModuleBuilder *', the return
20006         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
20007         `methods' field to get the method builder.  The `token' argument is the
20008         unfixed token.
20009
20010         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
20011         invalid characters instead of g_assert_not_reached()ing.  This seems
20012         to be the behaviour of mscorlib.
20013
20014 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
20015
20016         * object.c (mono_runtime_invoke_array): applied patch from Rachel
20017         Hestilow to fix bug #25104
20018
20019 2002-05-21  Martin Baulig  <martin@gnome.org>
20020
20021         * debug-symfile.c (mono_debug_find_source_location): New function.
20022         Looks up an IL offset in the line number table and returns the source
20023         location as a string.
20024
20025 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20026
20027         * icall.c:
20028         (mono_double_ToStringImpl): changed %f by %g until we have something
20029         better.
20030
20031 2002-05-21  Nick Drochak  <ndrochak@gol.com>
20032
20033         * icall.c : Use different name for Math.Pow's icall.  Needed to check
20034         parameters first in C#.
20035
20036 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20037
20038         * icall.c, reflection.h: added icall to get info about an event.
20039
20040 2002-05-20  Radek Doulik  <rodo@ximian.com>
20041
20042         * object.c (mono_value_box): don't use memcpy for boxing on BIG
20043         endian
20044         (mono_value_box): don't use memcpy for small sizes on
20045         architectures with unaligned access
20046
20047 2002-05-20  Martin Baulig  <martin@gnome.org>
20048
20049         * reflection.c (mono_reflection_setup_internal_class): Don't crash
20050         if `tb->parent == NULL'.
20051         (mono_reflection_create_internal_class): New function.  This is
20052         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
20053         for enum types.
20054
20055         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
20056         New interncall.
20057
20058 2002-05-19  Martin Baulig  <martin@gnome.org>
20059
20060         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
20061         argument to get the length, don't default to the array length.
20062
20063 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
20064
20065         * assembly.c (mono_assembly_setrootdir): New function used to
20066         override the MONO_ASSEMBLIES directory.
20067
20068 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20069
20070         * icall.c: ValueType_GetHashCode() initialize local var.
20071
20072 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20073
20074         * reflection.c: sort custom attributes table.
20075
20076 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20077
20078         * reflection.c: support named args in custom attributes (write support).
20079
20080 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20081
20082         * reflection.c: fix finally position calculation.
20083
20084 2002-05-15  Radek Doulik  <rodo@ximian.com>
20085
20086         * reflection.c: fixed endianess at many places
20087
20088         * icall.c (ves_icall_InitializeArray): comment out debug msg
20089
20090 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
20091
20092         * object.c (mono_unhandled_exception): new function to handle
20093         unhandled exceptions.
20094         (mono_unhandled_exception): call the UnhandledException event.
20095         (mono_runtime_delegate_invoke): impl.
20096
20097 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
20098
20099         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
20100         returns the RVA, not the direct pointer to the data. Handle the case
20101         when the class size is fixed.
20102
20103 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20104
20105         * reflection.c: fix some endianess issues.
20106
20107 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
20108
20109         * object.c (mono_runtime_invoke): is now able to catch exceptions.
20110
20111         * threads.c (mono_thread_init): added a callback which is invoked
20112         at thread start.
20113
20114 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20115         
20116         * icall.c: make GetHashCode return non-negative values.
20117
20118 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20119
20120         * object.c, icall.c, gc.c: revert to address-based hashcode.
20121
20122 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
20123
20124         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
20125
20126 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20127
20128         * icall.c, class.c: special case <Module>.
20129
20130 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
20131
20132         * icall.c: fix bug in GetNow().
20133
20134 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
20135
20136         * object.c (mono_runtime_class_init): make sure that we call all
20137         static class constructors.
20138
20139 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20140
20141         * reflection.c: sort methodsemantics table.
20142
20143 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20144
20145         * reflection.h, reflection.c: honour init locals setting.
20146
20147 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
20148
20149         * icall.c: copied Double ToStringImpl for Single ToStringImpl
20150
20151 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20152
20153         * reflection.c: support ContructorBuilders in attribute blob creation.
20154
20155 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20156
20157         * reflection.c: some changes to build a binary that can be run
20158         directly in windows.
20159
20160 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20161
20162         * loader.c: print a big message when an icall can't be found.
20163
20164 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20165
20166         * string-icalls.c: fix bug 24248.
20167
20168 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20169
20170         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
20171         icall.c, reflection.h: separate assembly loading by pathname and by
20172         assembly name. Use the MONO_PATH env var to search for assemblies.
20173
20174 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20175
20176         * assembly.c, image.h: add some support for assemblies
20177         with multiple modules.
20178         * class.c, class.h: export mono_class_from_typeref().
20179         * loader.c: remove duplicated code and use mono_class_from_typeref(),
20180         instead.
20181
20182 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20183
20184         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
20185         documentation says (the ECMA one is correct).
20186
20187 2002-05-02  Dick Porter  <dick@ximian.com>
20188
20189         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
20190         Don't name the synchronisation mutex.
20191
20192 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
20193
20194         * rand.c
20195         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
20196         Make the prototypes match.
20197         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
20198         Same.
20199
20200         * icall.c
20201         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
20202         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
20203         all systems have tm.tm_zone, so use strftime() with %Z to print
20204         the timezone abreviation into a temp string.
20205
20206         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
20207         rather than mono_array_addr() on a MonoString on Big Endian
20208         machines.
20209
20210 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
20211
20212         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
20213         fix bug 24041
20214
20215 2002-04-30  Dick Porter  <dick@ximian.com>
20216
20217         * socket-io.c: Cope with SOCKET being an integer rather than a
20218         pointer now.
20219
20220         * threads.c: Added Thread_free_internal, to deal with thread
20221         handle cleanup.  Moved calls to handle_store() and handle_remove()
20222         to start_wrapper(), so each can only be called once.  Allocate
20223         synchronisation blocks with GC_malloc(), and use GC finalisation
20224         to close the handles.
20225
20226         * icall.c: added System.Threading.Thread::Thread_free_internal
20227
20228 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20229
20230         * icall.c: support Environment.Exit, CommandLineArgs().
20231
20232 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20233
20234         * object.c, object.h: added mono_runtime_run_main () and
20235         mono_runtime_get_main_args () for use in System.Environment.
20236
20237 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20238
20239         * gc.c: fix thinko, enable actual finalization since the jit is now
20240         fixed.
20241
20242 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20243
20244         * gc.c, object.c: take into account that an object may be offset wrt the address
20245         returned by GC_malloc().
20246
20247 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20248
20249         * image.c: handle files without entries in the assembly table (modules).
20250
20251 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20252
20253         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20254         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20255         allowed to be null when it's System.Object class setup.
20256
20257 2002-04-27  Martin Baulig  <martin@gnome.org>
20258
20259         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20260         if `tb->parent == NULL' rather than crashing.
20261
20262 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20263
20264         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20265         calling acos() where asin() should have been called.
20266
20267 2002-04-26  Martin Baulig  <martin@gnome.org>
20268
20269         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20270         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20271         there's a subdirectory called `System', but we don't want to read that
20272         subdirectory as an assembly.
20273
20274 2002-04-25  Martin Baulig  <martin@gnome.org>
20275
20276         * debug-symfile.c: Reflect latest MonoString changes.
20277
20278 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20279
20280         * rand.c, rand.h: instance method icalls need to have an explicit
20281         this pointer as first argument in the C implementation.
20282
20283 2002-04-25  Nick Drochak <ndrochak@gol.com>
20284
20285         * icall.c: Fix typo in map for GetNonZeroBytes
20286
20287 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20288
20289         * string-icalls.c : String does now passes unit tests without any 
20290         errors, the following changes has been made:
20291         
20292         Implemented replace methods.
20293         Renaming of methods to (try) follow the standard.
20294         Fixed compare ordinal
20295         Made all memory allocated directly to function instead of via icall function.
20296         Small performance fix in is_in_array function
20297                         
20298  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20299
20300         c (mono_string_Internal_ctor_charp_int_int):
20301         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20302         sindex < 0, throw ArgumentOutOfRangeException instead of
20303         ArgumentNullException.
20304
20305         Added new check for length == 0, however
20306         I need to make it return String.Empty from the C code.
20307         
20308         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20309         that calculate the length for us here.
20310         
20311         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20312         mono_string_new_utf16 with mono_string_new, since value is utf8.
20313
20314 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20315
20316         * object.c: register the object for finalization if needed.
20317         Allocate one more char in the string for the terminating 0 char.
20318
20319 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20320
20321         * class.c, class.h, image.c: check if a type implemenst a destructor.
20322         Use the proper key for array class lookups.
20323         * icall.c: register the icalls in the System.GC class.
20324         * gc.c, gc.h: GC-related functions and icalls.
20325
20326 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20327
20328         * icall.c:
20329         * socket-io.c:
20330         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20331         changed a couple of free () by g_free ().
20332
20333         * decimal.c: one-liner in the comments for decimal2string ().
20334
20335 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20336
20337         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20338
20339 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20340
20341         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20342         * object.c (mono_runtime_invoke_array) : handle null in params
20343
20344 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20345
20346         * string-icalls.c: fixed bug in split (one off bug)
20347
20348 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20349
20350         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
20351         * icalls.c: added String::Equals as internal method
20352
20353 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20354
20355         * threads.c: fixed bug in the double interlocked functions
20356
20357 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
20358
20359         * threads.c: implemented all of the new interlocked icalls.
20360         * string-icalls.c: fix a bug in insert.
20361         * icalls.c: added the icalls for interlocked, removed old string functions.
20362         
20363 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20364
20365         * loader.c: fix off-by-one error when reading argument names.
20366
20367 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20368
20369         * profiler.c: win32 counter implementation (untested).
20370         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20371         (the latter needs testing and more complete impl. from win32 folks).
20372
20373 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20374
20375         * object.c: mono_array_new_full workaround mono_array_class_get
20376         problem.
20377
20378 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20379
20380         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20381         * object.h (mono_string_chars): Changed casting type.
20382
20383 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20384
20385         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20386                            method signatures to use gunichar2 instead of gint16.
20387
20388 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20389
20390         * object.h, object.c: domain-specific versions of mono_object_new and
20391         mono_array_new.
20392
20393 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20394
20395         * object.c: changed String layout
20396
20397         * string-icalls.c (mono_string_Internal_ctor_chara): added
20398         internal string constructors.
20399
20400 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20401
20402         * threads.c: pass 'this' to the thread start routine.
20403
20404 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20405
20406         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20407         InternalCompareStr don't call twice mono_string_cmp_char for the last
20408         character. Improved performance in mono_string_cmp_char.
20409
20410 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20411
20412         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20413         code into its own library: libmonoruntime.
20414
20415 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20416
20417         * object.h, object.c: changed array format so that szarrays do not
20418         require a bounds structure.
20419         * icall.c, appdomain.c: support for new szarray format.
20420
20421 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20422
20423         * metadata.c: compare also the retuns type when comparing signatures:
20424         we didn't do this as an optimization since really overloaded methods
20425         must differ also in the arguments, but this doesn't work with
20426         low-level IL code (or when using explicit conversion operators: see
20427         bug#23498 for an example).
20428
20429 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20430
20431         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20432
20433 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20434
20435         * icall.c: make MonoType::GetElementType its own icall.
20436
20437 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20438
20439         * icall.c: remove MonoMethod_get_Name().
20440         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20441         object.
20442
20443 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20444
20445         * string-icalls.c: optimized a few methods.
20446
20447 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20448
20449         * icall.c: added all new string internal calls
20450         * string-icalls.c: added, new string internal call implementation.
20451         * object.c: added mono_string_new_size for allocating a string a size
20452
20453 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20454
20455         * object.c (mono_object_isinst): use the same code as in the
20456         optimized x86 version.
20457
20458 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20459
20460         * profiler.c: TSC-based timer code (faster and more accurate).
20461         Not hooked up in configure, yet (set USE_X86TSC to 1).
20462
20463 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
20464
20465         * profiler.c, profiler.h: track time spent compiling methods.
20466         * threads.c: track thread creation/destruction.
20467
20468 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
20469
20470         * profiler.c, profiler.h, profiler-private.h: profiling interface
20471         and sample implementation. Moved here so that it can be used also by
20472         the jit.
20473
20474 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
20475
20476         * reflection.c, reflection.h: keep types and other handles separate in
20477         the hash tables for referred tokens. Add guid for modules.
20478
20479 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20480
20481         * assembly.c: fix bugs found with valgrind.
20482         * metadata.h, metadata.c: added mono_metadata_guid_heap().
20483
20484 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
20485
20486         * threads: added icall support for getting current domain for
20487                    the thread.
20488  
20489 2002-04-13  Martin Baulig  <martin@gnome.org>
20490
20491         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
20492         (MonoDebugVarInfo): Added `index' field for register based addresses.
20493         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
20494         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
20495         `MonoDebugVarInfo *params' and `guint32 this_offset' with
20496         `MonoDebugVarInfo *this_var'.
20497
20498         * debug-symfile.c (relocate_variable): New static function to write
20499         a location description for a local variable or method parameter.
20500
20501 2002-04-12  Martin Baulig  <martin@gnome.org>
20502
20503         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
20504         stack offset and begin/end scope address of a local variable.
20505         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
20506         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
20507         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
20508
20509         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
20510         Added new relocation types for start/end scope of a local variable.
20511
20512 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20513
20514         * object.h: add mono_object_domain() macro.
20515         * reflection.c: handle typespecs.
20516         * icall.c: MonoMethod::get_Name() implementation.
20517
20518 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20519
20520         * icall.c: String::GetHashCode() icall implementation.
20521
20522 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20523
20524         * icall.c: String::IndexOfAny icall.
20525         * object.c, object.h: make array->max_length more useful.
20526         Intrduced mono_object_class() and mono_string_length() macros.
20527
20528 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20529
20530         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
20531         instead of g_unichar_isdigit.
20532
20533 2002-04-11  Nick Drochak  <ndrochak@gol.com>
20534
20535         * icall.c: Implement a simple Double.ToString().
20536
20537 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20538
20539         * appdomain.h: only io-layer.h is supposed to be included.
20540         * icall.c: explicitly import environ. Fix warning.
20541
20542 2002-04-10  Nick Drochak  <ndrochak@gol.com>
20543
20544         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
20545                 return true even if it's not Daylight Savings time.
20546                 Only return false for the case where the function isn't
20547                 implemented for a plaform (read Windows).
20548
20549 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20550
20551         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
20552         data with a mutex.
20553
20554 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
20555
20556         * mempool.c (mono_mempool_alloc): only use g_malloc when
20557         absolutely necessary.
20558
20559 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20560
20561         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
20562
20563         * class.c (mono_class_vtable): use domain mempool to allocate vtable
20564         (mono_class_proxy_vtable): use domain mempool
20565
20566 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20567
20568         * appdomain.h, appdomain.c: split initialization that requires the
20569         execution engine support into mono_runtime_init().
20570
20571 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20572
20573         * class.c (mono_class_init): don't include vtable inside MonoClass
20574         to save some memory, gather some statistics.
20575         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
20576
20577 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20578
20579         * icall.c: internalcall implementation for ValueType.Equals().
20580
20581 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
20582
20583         * object.c (mono_message_init): moved 
20584         (mono_runtime_exec_main): new arch. independent impl.
20585         (mono_runtime_invoke_array): new method - like
20586         mono_runtime_invoke, but you can pass an array of objects.
20587         (mono_remoting_invoke): new arch. independent impl.
20588         (mono_message_invoke): new arch. independent impl.
20589         (mono_runtime_class_init): new arch. independent impl.
20590         (mono_runtime_object_init): new arch. independent impl.
20591
20592 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20593
20594         * metadata.c, object.c, reflection.c: documented the exported
20595         functions.
20596
20597 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20598
20599         * icall.c: simpler code to pass the assembly builder data to corlib.
20600         Implement GetNestedTypes() internalcall.
20601
20602 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20603
20604         * class.c: warn if a type can't be loaded.
20605
20606 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
20607
20608         * image.h: typedef MonoImageOpenStatus
20609         * types.h: removed unused file
20610         
20611 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
20612
20613         * icall.c: Enum_ToObject accepts enum value arguments.
20614
20615 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20616
20617         * class.c: move initialization of properties, events and nested
20618         classes, so that they happen for interfaces, too.
20619
20620 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20621
20622         * icall.c: cleanup some ugly casts in Array_SetValue*.
20623
20624 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20625
20626         * icall.c: the values array fro enums is of the correct type, now.
20627         Implement (correctly) getFullName instead of assQualifiedName for
20628         MonoType.
20629         * reflection.h, reflection.c: added mono_type_get_name ().
20630
20631 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20632
20633         * assembly.c, image.h: for each MonoImage, record from wich assembly
20634         it was loaded.
20635         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
20636         Make Type.Assembly work.
20637
20638 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
20639
20640         * debug-symfile.h: use char* instead of gpointer to avoid
20641         unnecessary casts.
20642
20643         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
20644
20645         * icall.c (ves_icall_InternalExecute): impl. FielSetter
20646         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
20647
20648 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
20649
20650         * icall.c (mono_message_init): impl. (code cleanup)
20651         (ves_icall_InternalExecute): impl. FieldGetter
20652
20653         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
20654         defined we call all (non-static)methods through the vtable. 
20655
20656 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
20657
20658         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
20659         finalizer even though the memory is still referenced (and the chunk of
20660         memory is not freed).
20661
20662 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20663
20664         * assembly.c: fix brokeness.
20665
20666 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
20667
20668         * class.c: kill some warnings. Check explicit interface method
20669         implementation also without considering the namespace.
20670         Load also literal strings in static class data.
20671
20672 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
20673
20674         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
20675         (default_assembly_name_resolver): Make the resolver take the
20676         "base" directory where the assembly was originally defined, so we
20677         can load DLLs that are in the same directory as the assembly that
20678         is being referenced.
20679
20680 2002-03-28  Dick Porter  <dick@ximian.com>
20681
20682         * file-io.h: 
20683         * file-io.c:
20684         * socket-io.c: 
20685         * unicode.h: 
20686         * unicode.c: Warning cleanups
20687
20688 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
20689
20690         * object.h, reflection.h: use the correct type instead of MonoObject.
20691
20692 2002-03-28  Martin Baulig  <martin@gnome.org>
20693
20694         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
20695         (mono_debug_update_symbol_file): Initialize classes if necessary.
20696
20697 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
20698
20699         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
20700         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
20701
20702 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
20703
20704         * assembly.h: fix function prototype.
20705         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
20706         * mono-endian.h: use const cast.
20707
20708 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20709
20710         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
20711
20712 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
20713
20714         * loader.c: don't assert when a typeref can't be loaded, give
20715         a chance to the runtime to trow an exception instead.
20716         * loader.h: fix warning.
20717
20718 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20719
20720         * class.c (mono_class_proxy_vtable): added proxy support
20721
20722 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
20723
20724         * icall.c: removed last of PAL calls, added System.Environment
20725         * file-io.h, file-io.c: MonoIO implementation
20726         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
20727
20728 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
20729
20730         * appdomain.c: do not use the byte marker in ldstr table lookup.
20731         * debug-helpers.c: allow two ':' to separate class and method name.
20732         * object.c: allocate arrays bounds with the GC, too.
20733         * verify: add a few more checks.
20734
20735 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
20736
20737         * reflection.c: output also literal strings. Allocate parameter data
20738         with GC_malloc() (thanks, Martin, for catching this!).
20739
20740 2002-03-26  Martin Baulig  <martin@gnome.org>
20741
20742         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
20743         include the `this' offset in the `param_offsets'.
20744
20745 2002-03-25  Martin Baulig  <martin@gnome.org>
20746
20747         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
20748         mono_debug_get_class() function to get the classes. Added new
20749         relocation types for arrays and strings.
20750         (mono_debug_get_class): New static function to search in all
20751         referenced assemblies for a metadata token.
20752
20753         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
20754
20755 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20756
20757         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
20758         hold gc-allocated objects. Make the string heap a stream like the
20759         others. Removed duplicated code when writing stream info.
20760         Added asserts to catch possible buffer overflows. Set the sorted map
20761         for tables that need sorting. Added some documentation.
20762
20763 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
20764
20765         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
20766         for interned strings and vtables.
20767
20768 2002-03-24  Martin Baulig  <martin@gnome.org>
20769
20770         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
20771         it in the array since it was created with g_slist_prepend().
20772
20773 2002-03-24  Martin Baulig  <martin@gnome.org>
20774
20775         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
20776         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
20777         (mono_debug_method_from_token): Renamed to
20778         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
20779         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
20780
20781         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
20782         relocation types.
20783
20784         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
20785
20786 2002-03-24  Martin Baulig  <martin@gnome.org>
20787
20788         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
20789         (mono_debug_method_from_token): New func.
20790
20791         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
20792         New interncall, calls mono_debug_local_type_from_signature().
20793         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
20794         calls mono_debug_method_from_token().
20795
20796 2002-03-23  Martin Baulig  <martin@gnome.org>
20797
20798         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
20799         specifies the number of bytes to be converted, not the array size.
20800         Return the number of chars, not the number of bytes.
20801         (ves_icall_iconv_get_chars): The `byteCount' argument
20802         specifies the number of bytes to be converted, not the array size.
20803
20804 2002-03-23  Martin Baulig  <martin@gnome.org>
20805
20806         * reflection.h (MonoReflectionSigHelper): New type.
20807
20808         * reflection.c (mono_reflection_sighelper_get_signature_local),
20809         (mono_reflection_sighelper_get_signature_local): New functions.
20810
20811         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
20812         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
20813         interncalls.
20814
20815 2002-03-23  Martin Baulig  <martin@gnome.org>
20816
20817         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
20818         is_writeable is set.
20819         (mono_raw_buffer_update): New function to write the modified map
20820         back to disk.
20821
20822         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
20823
20824         * debug-symfile.c (mono_debug_update_symbol_file): Call
20825         mono_raw_buffer_update() when done writing.
20826
20827 2002-03-23  Martin Baulig  <martin@gnome.org>
20828
20829         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
20830
20831         * debug-symfile.c: Added support for arguments and local variables.
20832
20833 2002-03-23  Dick Porter  <dick@ximian.com>
20834
20835         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
20836         protected by ifdefs, hence breaking the w32 build.
20837
20838 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20839
20840         * object.c: implement is_interned() the right way.
20841
20842 2002-03-21  Martin Baulig  <martin@gnome.org>
20843
20844         * debug-symfile.[ch]: New files to handle debugging information
20845         files. There's also support to dynamically update these symbol
20846         files to include machine dependent information.
20847
20848 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
20849
20850         * threads.c (mono_thread_create): new function to create thread
20851         from C
20852
20853 2002-03-20  Martin Baulig  <martin@gnome.org>
20854
20855         * icall.c (ves_icall_InternalInvoke): Create a new object if the
20856         method is a constructor.
20857         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
20858         points to ves_icall_InternalInvoke().
20859
20860 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
20861
20862         * file-io.c: Flush shouldn't throw exceptions.
20863
20864 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
20865
20866         * file-io.c: FileStream flush support; FileSetLength now
20867         restores file pointer.
20868
20869 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
20870
20871         * class.c: set image for pointer classes.
20872
20873 2002/03/19  Nick Drochak <ndrochak@gol.com>
20874
20875         * sysmath.c: Forgot one.
20876
20877 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
20878
20879         * sysmath.c: Avoid redefining existing names.
20880
20881 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
20882
20883         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
20884         handled by runtime as icall rather than dllimport from libm.so
20885         * file-io.c, file-io.h: fixed handle argument type.
20886
20887 2002-03-18  Dick Porter  <dick@ximian.com>
20888
20889         * reflection.c (mono_image_get_type_info): rename interface to
20890         iface, because of "#define interface struct" on windows.
20891
20892 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
20893
20894         * class.c, class.h: rename and export mono_ptr_class_get().
20895         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
20896         * reflection.c, reflection.h, icall.c: better/saner type name
20897         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
20898         method signatures.
20899
20900 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
20901
20902         * class.c (mono_class_init): removed hardcoded GHC_SLOT
20903
20904         * icall.c (ves_icall_InternalInvoke): impl.
20905
20906 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20907
20908         * reflection.c: output the interface map table, too.
20909
20910 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
20911
20912         * class.c (class_compute_field_layout): separate computation of 
20913         static field layout
20914
20915 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
20916
20917         * icall.c: added System.Buffer support.
20918         * file-io.c: moved file icalls from PAL to FileStream.
20919
20920 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
20921
20922         * icall.c (ves_icall_System_Object_GetHashCode): impl.
20923
20924 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
20925
20926         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
20927
20928 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20929
20930         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
20931
20932 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
20933
20934         * debug-helpers.{c,h}: moved here from monograph some useful functions
20935         to locate a method by name/signature in a class or image. Included
20936         also a small and flexible IL disassembler.
20937
20938 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20939
20940         * reflection.c: fixup tokens in methods with small header size, too.
20941
20942 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
20943
20944         * object.c (mono_string_to_utf8): remove assert(!error), instead
20945         print a warning. 
20946
20947 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
20948
20949         * icall.c: update to the new mono_Array_class_get interface.
20950
20951 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
20952
20953         * appdomain.c, object.c: Boehm-GC enable.
20954         * icall.c: make get_data_chunk() support split data requests.
20955         Ensure a class is initialized in more cases. Return only the first
20956         property found in GetProperties() or the compiler gets confused. 
20957         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
20958         * reflection.h, reflection.c: add fixup mechanism for field and method
20959         tokens. Initialize assembly->typeref in a single place. Output
20960         properties after events. Support custom attributes for events, too.
20961         Typo fix for paramter custom attrs.
20962
20963 2002-03-07  Martin Baulig  <martin@gnome.org>
20964
20965         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
20966
20967 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
20968
20969         * class.c (mono_array_class_get): fix. for multi. dim. arrays
20970
20971 2002-03-06  Martin Baulig  <martin@gnome.org>
20972
20973         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
20974         non-zero lower bounds. See testcases #F10-#F13.
20975
20976 2002-03-05  Martin Baulig  <martin@gnome.org>
20977
20978         * exception.c (mono_get_exception_argument_out_of_range): New exception.
20979
20980         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
20981         ves_icall_System_Array_GetValue(), only calculate the absolute array position
20982         here.
20983         (ves_icall_System_Array_SetValue): Likewise.
20984         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
20985         as argument and does the actual work. This function is used when copying a
20986         multi-dimensional array.
20987         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
20988         now do all the widening conversions of value types.
20989         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
20990
20991 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20992
20993         * class.c: remove some magic numbers and use the smbolic names,
20994         instead. Added init_events() to load event info at class init time.
20995         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
20996         and mono_metadata_methods_from_event().
20997         * reflection.h, reflection.c: added support for writing out the evnets
20998         related information.
20999
21000 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21001
21002         * reflection.h, icall.c: use a different method (GetInterfaces)
21003         to gather interface info and add isbyref, isprimitive and
21004         ispointer to the ves_icall_get_type_info() return value.
21005
21006 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21007
21008         * class.h: stared adding support for events.
21009         * icall.c: split find_members implementation. Added debug icall to get
21010         the address of an object.
21011         * reflection.c: handle TypeBuilders in mono_type_get_object().
21012
21013 2002-03-01  Martin Baulig  <martin@gnome.org>
21014
21015         * icall.c (ves_icall_System_Array_GetLength): This must throw an
21016         ArgumentOutOfRangeException(), not an ArgumentException().
21017         (ves_icall_System_Array_GetLowerBound): Likewise.
21018         (ves_icall_System_Array_GetValue): Improved argument checking.
21019         (ves_icall_System_Array_SetValue): Improved argument checking.
21020
21021 2002-03-01  Martin Baulig  <martin@gnome.org>
21022
21023         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
21024         called with invalid arguments rather than just dying with g_assert().
21025         (ves_icall_System_Array_SetValue): Likewise.
21026         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
21027         raise a NotImplementedException instead.
21028         (ves_icall_System_Array_GetLength): Added argument checking.
21029         (ves_icall_System_Array_GetLowerBound): Added argument checking.
21030
21031 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
21032
21033         * object.h (mono_assert): new macros mono_assert and
21034         mono_assert_not_reached
21035
21036 2002-02-28  Martin Baulig  <martin@gnome.org>
21037
21038         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
21039         and "System::String::IsInterned" to "System::String::_IsInterned".
21040
21041 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
21042
21043         * icall.c: remove hacks for typebuilder. Added icall to create a
21044         modified type from a tybebuilder.
21045         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
21046         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
21047         to create a backing MonoClass for a TypeBuilder.
21048
21049 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21050
21051         * class.c, class.h: more refactoring of class init.
21052         Export mono_class_setup_mono_type() and mono_class_setup_parent().
21053
21054 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
21055
21056         * marshal.c, marshal.h: start of marshaling interface.
21057
21058 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21059
21060         * icall.c: fix order in assembly qualified name icall.
21061
21062 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21063
21064         * class.c: do not free str, since we store it in the hash table.
21065         * reflection.h: add label field to MonoILExceptionInfo.
21066         * reflection.c: handle references to more than one assembly. Handle
21067         case when there isn't a module created in the assembly.
21068
21069 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21070
21071         * class.c: Fix typo. Start refactoring of class init code.
21072
21073 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21074
21075         * appdomain.c: exit with 1 on error.
21076         * class.c: we already have the name in MonoClassField.
21077         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
21078         MonoStreamHeader instead of an offset of image->raw_metadata.
21079
21080 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
21081
21082         * appdomain.c (mono_init): Be even more descriptive about the error.
21083
21084 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
21085
21086         * appdomain.c: give the user an informative message when corlib can't
21087         be loaded.
21088
21089 2002-02-26  Martin Baulig  <martin@gnome.org>
21090
21091         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21092         New icall to get the time zone data.
21093
21094 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21095
21096         * reflection.c: set virtual and raw size of section correctly.
21097         * threads.c: transfer domain information to newly created threads.
21098
21099 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21100
21101         * class.c: when instancing a class in a domain, load the default
21102         vaules for static fields from the constant table. Fix System.Enum to
21103         not be an enum.
21104         * icall.c: implement Object::GetType() internalcall. Implemented
21105         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
21106         Fixed checking of binding flags in find_members().
21107         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
21108         * reflection.c: handle enumerations when writing to the constant
21109         table. Use a different object cache for types.
21110
21111
21112 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
21113
21114         * object.c (mono_object_isinst): fix for arrays
21115
21116         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
21117
21118 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21119
21120         * object.c: don't use mprotect ()  and fix intern pool hash table
21121         lookup for big endian systems.
21122
21123 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21124
21125         * icall.c: change type_is_subtype_of () signature.
21126
21127 2002-02-21  Mark Crichton  <crichton@gimp.org>
21128
21129         * rand.c, rand.h: Added random number generator for
21130         System.Security.Cryptography classes.
21131
21132         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
21133
21134         * icall.c: Added System.Security.Cryptography calls.
21135
21136 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21137
21138         * class.c, icall.c, metadata.c: better support for pointer types.
21139         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
21140         * reflection.c: Add support for getting custom attrs for properties
21141         and simplify some code.
21142
21143 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21144
21145         * icall.c: change getToken () and add custom attribute GetBlob()helper
21146         method.
21147         * reflection.h: add custom attrs array to the reflection builder structures.
21148         * reflection.c: encode and emit custom attributes for all the relevant
21149         reflection objects. Cache fieldref and methodref tokens. Change
21150         mono_image_create_token() interface to take a MonoDynamicAssembly.
21151         More complete custom attributes decoder. Load custom attributes for
21152         Assembly, Field, Method and Constructor objects, too. Make the
21153         returned array an Attribute[] one, not object[]. Added
21154         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
21155         custom attribute constructor.
21156
21157 2002-02-20  Dick Porter  <dick@ximian.com>
21158
21159         * icall.c:
21160         * rawbuffer.c:
21161         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
21162         problem code out for now).
21163
21164 2002-02-19  Radek Doulik  <rodo@ximian.com>
21165
21166         * object.c (mono_ldstr): use hash table to avoid multiple swapping
21167
21168 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
21169
21170         * icall.c: register the GetCustomAttributes method.
21171         * object.c, object.h: add mono_string_new_len ().
21172         * reflection.h, reflection.c: added mono_runtime_invoke(),
21173         mono_install_runtime_invoke(). Added
21174         mono_reflection_get_custom_attrs () to load custom attributes and
21175         create the attribute objects.
21176
21177 2002-02-19  Dick Porter  <dick@ximian.com>
21178         * threads-dummy-types.c:
21179         * threads-dummy-types.h:
21180         * threads-dummy.c:
21181         * threads-dummy.h:
21182         * threads-pthread-types.c:
21183         * threads-pthread-types.h:
21184         * threads-pthread.c:
21185         * threads-pthread.h:  Deleted obsolete files
21186
21187 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
21188
21189         * class.c (mono_class_vtable): runtime init the class when we
21190         allocate static class data.
21191
21192         * icall.c (ves_icall_System_Array_SetValue): check for null values.
21193
21194         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
21195         and String - but we will need generic marshalling support in the
21196         future. 
21197         (mono_init): set the domain name in a ms compatible way
21198
21199         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
21200         String[].
21201
21202 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
21203
21204         * object.c (mono_array_clone): use alloca() instead of g_malloc  
21205         for sizes
21206
21207         * appdomain.c (mono_domain_unload): impl.
21208
21209 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21210
21211         * appdomain.c, object.c: fix intern pool implementation.
21212         * class.c: fix alignment code.
21213
21214 2002-02-16  Radek Doulik  <rodo@ximian.com>
21215
21216         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
21217         and s2 > s1, just copy lower bytes to be compatible with little
21218         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
21219         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
21220
21221         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21222         force big_endian to be 1 for big endian machines 
21223         (ves_icall_iconv_new_decoder): ditto
21224
21225 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21226
21227         * socket-io.c (convert_sockopt_level_and_name): If the system
21228         doesn't define SOL_IP or SOL_TCP, get them by hand using
21229         getprotobyname() and caching the values (because this could be a
21230         slow operation).
21231         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21232         Use the appropriate struct when the system does support it. Ie,
21233         not all systems have struct ip_mreqn so use struct ip_mreq when
21234         appropriate.
21235
21236 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21237
21238         * reflection.c: handle finally clauses.
21239
21240 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21241
21242         * socket-io.c: use g_snprintf() instead of snprintf.
21243
21244 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21245
21246         * reflection.c (mono_param_get_objects): Cast second argument to
21247         mono_method_get_param_names to a const char** to silence the
21248         compiler warning.
21249
21250         * appdomain.c (mono_domain_assembly_open): Put parens around the
21251         truth statement in the for-loop.
21252
21253         * unicode.c (iconv_convert): Got rid of a compiler warning about
21254         int i being unused when the system has a new iconv.
21255         (iconv_get_length): Same.
21256
21257         * image.c (load_class_names): Cast the second argument to
21258         g_hash_table_insert() to char* to hush compiler warnings about the
21259         arg being a const.
21260         (mono_image_open): Same here.
21261
21262         * socket-io.c: Don't conditionally include sys/filio.h or
21263         sys/sockio.h here anymore since we now get them from
21264         io-layer/io-layer.h
21265         (inet_pton): If the system doesn't support inet_aton, implement
21266         using inet_addr and also #define INADDR_NONE if it isn't defined
21267         by the system.
21268
21269 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21270
21271         * metadata.c, metadata.h: added function to get packing and size info
21272         of a typedef.
21273         * reflection.h, reflection.c: handle field RVA data. Save info about
21274         the table layout if needed. Assign typedef indexes to all the types
21275         before dumping the info about them to avoid forward reference problems.
21276
21277 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21278
21279         * socket-io.c (convert_sockopt_level_and_name): ifdef
21280         SO_ACCEPTCONN because it is not defined on my system (old debian)
21281
21282 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21283
21284         * opcode.c: use stddef.h to get NULL.
21285
21286 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21287
21288         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21289         for FIONBIO, FIONREAD and SIOCATMARK.
21290         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21291         define INADDR_NONE and besides, inet_addr() is deprecated and
21292         should not be used. Use inet_pton() instead - it also has the
21293         added bonus that it can easily handle IPv6 addresses as well.
21294         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21295
21296 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21297
21298         * decimal.c: remove _MSC_VER conditional.
21299
21300 2002-02-13  Dick Porter  <dick@ximian.com>
21301
21302         * socket-io.c: 
21303         * icall.c: Internal calls for Blocking, Select, Shutdown,
21304         GetSocketOption and SetSocketOption
21305
21306 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21307
21308         * assembly.cs: better resolver: use it instead of some kludgy
21309         code.
21310
21311 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21312
21313         * reflection.c: the best way to speed-up the compiler is to avoid
21314         infinite loops.
21315
21316 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21317
21318         * class.c (mono_class_vtable): changed the object layout
21319         (obj->vtable->class). 
21320         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21321
21322 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21323
21324         * assembly.c: look for assemblies in the assembly dir, too.
21325
21326 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21327
21328         * class.c: fix thinko in mono_class_from_type().
21329
21330 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21331
21332         * exception.h, exception.c: added TypeLoadException.
21333         * object.h, object.c: added mono_array_clone ().
21334         * icall.c: handle throwOnError in AssemblyGetType().
21335         Added Array.Clone().
21336         * opcode.h, opcode.c: use a single value for the opcode val.
21337         Compile fix for non-gcc compilers.
21338
21339 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21340
21341         * opcodes.c, opcodes.h: export interesting info about opcodes.
21342
21343 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21344
21345         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21346         icalls. 
21347
21348         * class.c (class_compute_field_layout): set element_class for enums
21349         (mono_class_create_from_typedef): set element_class for normal classes
21350
21351         * icall.c (ves_icall_System_Enum_get_value): impl.
21352
21353         * class.c (mono_class_create_from_typedef): do not set valuetype
21354         flag for System.ValueType and System.Enum
21355
21356 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
21357
21358         * unicode.c (iconv_convert): fix big endian problem.
21359
21360 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21361
21362         * class.c: add asserts if we are ever going to scribble over memory.
21363         * socket-io.c: not all systems have AF_IRDA defined.
21364
21365 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21366
21367         * class.c (class_compute_field_layout): do not consider static
21368         fields to compute alignment
21369
21370 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21371
21372         * appdomain.c (mono_appdomain_get): impl.
21373         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21374
21375 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21376
21377         * icall.c: ignore "file://" prefix when loading an assembly.
21378
21379 2002-01-23  Dick Porter  <dick@ximian.com>
21380
21381         * socket-io.c:
21382         * icall.c:
21383         * Makefile.am: Added socket support
21384
21385 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21386
21387         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21388         code back.  This should return the assemblies that are loaded by
21389         the runtime on behalf of an application domain. 
21390
21391         The current implementation is still broken, it just returns every
21392         assembly loaded, but until we get real applications domain this
21393         will do.
21394
21395 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21396
21397         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21398         AppDomain object.
21399
21400 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21401
21402         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21403         the mono_class_from_name lookup.
21404         (ves_icall_get_parameter_info): ditto.
21405         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21406         method.
21407         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21408
21409 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21410
21411         * class.c: load also nested classes on class init.
21412         System.ValueType instance methods gets passed boxed
21413         values, unless methods in derived classed that get a pointer to the
21414         data.
21415         * icall.c: use better name parsing code in GetType().
21416         * image.c, image.h: add mono_image_loaded ().
21417         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21418         * reflection.c, reflection.h: added mono_reflection_parse_type().
21419
21420 2002-01-22  Veronica De Santis <veron78@interfree.it>
21421
21422         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21423         * threads.c : Added the implementation of internal calls for events
21424         * threads.h : Added prototypes of internal calls for events
21425         
21426 2002-01-21  Radek Doulik  <rodo@ximian.com>
21427
21428         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21429
21430 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21431
21432         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21433         (mono_class_value_size): use min_align
21434
21435 2002-01-20  Dick Porter  <dick@ximian.com>
21436
21437         * threads.h:
21438         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21439         so it compiles on w32.
21440
21441 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21442
21443         * metadata.c (mono_type_stack_size): impl.
21444
21445         * class.c (mono_class_get_field): impl. memberref token
21446
21447 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21448
21449         * icall.h : Added the internal calls mapping for CreateMutex_internal
21450                     and ReleaseMutex_internal.
21451         * threads.h : Added the prototype of mutexes internal calls.
21452         * threads.c : Added the implementations of mutexes internal calls.
21453
21454 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21455
21456         * metaparse.h: removed unused file.
21457         * reflection.c, reflection.h: added stream_data_align () function 
21458         to align data in streams and keep stream aligned. Add support for
21459         exception support in method headers.
21460
21461 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
21462
21463         * unicode.c: make iconv_convert () return the number of bytess written
21464         in the output buffer.
21465
21466 2002-01-15  Dick Porter  <dick@ximian.com>
21467         * threads.c: Make the runtime's idea of infinite timeouts coincide
21468         with the class library's
21469
21470         Fix a particularly egregious bug in mono_thread_cleanup(). That
21471         code was so utterly bogus it must have been written on a Monday.
21472
21473 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21474
21475         * reflection.h: add subtypes field to TypeBuilder.
21476         * reflection.c: encode constants for literal fields.
21477         Handle subtypes. Fix user string token (and add a zero byte)
21478         at the end.
21479         
21480 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
21481
21482         * class.c (mono_class_init): bug fix: assign slot numbers for
21483         abstract methods.
21484
21485 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21486
21487         * reflection.c: don't try to output a code RVA for abstract methods.
21488         Small fixes for method header format. Output parameter info to the
21489         ParamDef table. Save method overriding info to MethodImpl table.
21490         Fix property support. Allow typedef.extends to be a type in the
21491         building assembly.
21492         * verify.c: fix off-by-one error.
21493
21494 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
21495
21496         * class.c: fix mono_class_from_mono_type () for szarray types.
21497         Remove unused cache check in mono_class_from_type_spec().
21498         * icall.c: *type_from_name () functions handle simple arrays and byref.
21499         * reflection.c: handle byref and szarray types. Handle methods without
21500         body (gets P/Invoke compilation working). Handle types and fields in
21501         get_token ().
21502         * reflection.h: add rank to MonoTypeInfo.
21503
21504 2002-01-10  Dick Porter  <dick@ximian.com>
21505
21506         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
21507         internal calls
21508
21509 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21510
21511         * icall.c: initialize class in type_from_handle ().
21512         Loop also in parent classes for get_method ().
21513         * reflection.c: properly encode class and valuetype types.
21514         Start on encoding TypeBuilder types. Handle fieldrefs.
21515         Use correct length when registering a user string.
21516         Handle ConstructorBuilder and MonoMethod in get_token ().
21517         Make mono_type_get_object () aware of cached types.
21518         * object.c: back out change to mono_string_new ().
21519
21520 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
21521         * object.c: mono_string_new should return a NULL when the string 
21522         passed in is NULL -- not try to deference it.
21523         
21524 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21525
21526         * icall.c: hack to make IsSubType work for TypeBuilders.
21527         * reflection.c: emit constructors before methods.
21528         Retrieve param names in mono_param_get_objects().
21529
21530 2002/01/05  Nick Drochak  <ndrochak@gol.com>
21531
21532         * Makefile.am: fix list of headers and sources so automake 1.5
21533         doesn't complain. Removed \# at end of list.
21534
21535 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21536
21537         * reflection.c: get token for a method ref. Set return type of
21538         constructor to void.
21539         * loader.c: debug message.
21540         * class.c: typo fix.
21541
21542 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
21543
21544         * icall.c: fix array init with rank > 1. FindMembers
21545         loops in parent class as well.
21546         * image.c: do not insert nested types in name cache.
21547         * reflection.c: warning fix.
21548         * reflection.h: add override method (for interface impl).
21549
21550 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
21551
21552         * metadata.c: fix customattr decoding.
21553
21554 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
21555
21556         * rawbuffer.cs: Added native Win32 implementation, avoids using
21557         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
21558
21559 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
21560
21561         * class.c: make the low-level routines handle the cache.
21562
21563 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
21564
21565         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
21566
21567 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
21568
21569         * class.c: fix mono_array_element_size() for objects.
21570         * class.h, class.c: add properties to MonoClass and load them
21571         at init time.
21572         * icall.c: check with isinst() when assigning a value to an array
21573         instead of requiring the classes to match exactly.
21574         Implemented icall for System.Type::GetType().
21575         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
21576         enums. Handle bindingflags when looking for methods and fields.
21577         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
21578         and mono_metadata_methods_from_property().
21579         * reflection.h, reflection.c: added structures for propreties,
21580         parameters and enums. Implemented mono_property_get_object() and
21581         mono_param_get_objects().
21582
21583 2001-12-18  Dick Porter  <dick@ximian.com>
21584
21585         * file-io.c: Use mono_string_to_utf16() instead of
21586         mono_string_chars()
21587
21588         * object.c: Added mono_string_to_utf16(), which copies the non
21589         NULL-terminated MonoString into a new double-null-terminated
21590         buffer.
21591
21592 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
21593
21594         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
21595
21596 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
21597
21598         * file-io.c: raise exceptions if handle is invalid.
21599
21600 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
21601
21602         * assembly.c: yet another check for mscorlib.
21603         * class.c, class.h: load nesting info for classes.
21604         * icall.c: many new functions to support the Reflection classes.
21605         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
21606         * reflection.h, reflection.c: mono_image_create_token(),
21607         mono_assembly_get_object(), mono_type_get_object(),
21608         mono_method_get_object(), mono_field_get_object(): methods to return
21609         objects that parallel the C representation of assemblies, types,
21610         methods, fields.
21611
21612 2001-12-11  Dick Porter  <dick@ximian.com>
21613
21614         * icall.c:
21615         * file-io.c: Internal calls for file IO.
21616
21617 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
21618
21619         * tabledefs.h: missing FileAttributes.
21620         * verify.h, verify.c: use is_valid_string () to simplify and check for
21621         valid strings more correctly. Fix warnings and speeling.
21622         Check more tables: Filed, File, ModuleRef, StandAloneSig.
21623         Check code: branches, maxstack, method calls.
21624
21625 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
21626
21627         * object.c (mono_object_allocate): removed static, so that the jit
21628         can allocate value types.
21629
21630         * icall.c (ves_icall_System_DateTime_GetNow): impl.
21631
21632 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21633
21634         * class.c: init enum types right away and register the
21635         token->MonoClass map in mono_class_create_from_typedef ().
21636         * verify.h, verify.c: first cut of the verifier.
21637         * pedump.c: add --verify switch to verify metadata tables.
21638         * tabledefs.h: add some missing enums.
21639
21640 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
21641
21642         * class.c (mono_install_runtime_class_init): impl.
21643         (mono_class_init): renamed mono_class_metadata_init to
21644         mono_class_init, also removed the metadata_inited flag
21645
21646         * object.c (mono_object_isinst): use faster algorithm
21647
21648 2001-11-30  Radek Doulik  <rodo@ximian.com>
21649
21650         * mono-endian.h: reverted last change
21651         added function prototypes
21652
21653         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
21654         add mono-endian.c back
21655
21656         * mono-endian.c: returned back, as Paolo pointed out, it's needed
21657         for unaligned access, I've mistaked it with endianess. I am
21658         sorry.
21659         (mono_read16): fix reverted endianess
21660         (mono_read64): ditto
21661         (mono_read32): ditto
21662
21663 2001-11-30  Dick Porter  <dick@ximian.com>
21664
21665         * exception.c: Implement mono_exception_from_name()
21666
21667 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21668
21669         * metadata.h, metadata.c: remove params_size and locals_size and their
21670         calculation from the metadata code: they are only usefult to the
21671         interp.
21672
21673 2001-11-29  Radek Doulik  <rodo@ximian.com>
21674
21675         * object.c (mono_ldstr): swap bytes here, it's probably not the
21676         best place, but works for me now, I'll redo it once I know mono
21677         better, also note that I add PROT_WRITE and don't reset back, also
21678         note that it's only affects big endians, so x86 should be OK
21679
21680         * mono-endian.h (read16): use just glib macros for both endians
21681
21682         * mono-endian.c: removed as glib macros are used in in
21683         mono-endian.h so we don't need to care about endianess for read
21684         macros as glib does that for us already
21685
21686 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
21687
21688         * class.h, class.h: take minimum alignment into consideration so
21689         that the fields of a class remain aligned also when in an array.
21690
21691 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21692
21693         * loader.h, loader.c: add mono_method_get_param_names().
21694         * class.c: 0-init class fields.
21695
21696 2001-11-26  Dick Porter  <dick@ximian.com>
21697
21698         * icall.c:
21699         * threads-types.h:
21700         * threads.c: New file that handles System.Threading on all platforms
21701
21702         * object.c: 
21703         * object.h: Remove the synchronisation struct from MonoObject,
21704         replace it with a pointer that gets initialised on demand
21705
21706         * Makefile.am: Replace all the system-specific threading code with
21707         a single file that uses the new wrapper library
21708
21709 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
21710
21711         * class.c, class.h: add mono_install_trampoline() so that the runtime
21712         can register a function to create a trampoline: removes the ugly
21713         requirement that a runtime needed to export arch_create_jit_trampoline.
21714         * object.h, object.c: added mono_install_handler() so that the runtime
21715         can install an handler for exceptions generated in C code (with
21716         mono_raise_exception()). Added C struct for System.Delegate.
21717         * pedump.c: removed arch_create_jit_trampoline.
21718         * reflection.c: some cleanups to allow registering user strings and
21719         later getting a token for methodrefs and fieldrefs before the assembly
21720         is built.
21721         * row-indexes.h: updates and fixes from the new ECMA specs.
21722
21723 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
21724
21725         * class.h, class.c: add enum_basetype field to MonoClass.
21726         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
21727         to get index in the constant table reated to a field, param or
21728         property.
21729         * reflection.h, reflection.c: handle constructors. Set public-key and
21730         version number of the built assembly to 0.
21731         * row-indexes.h: update from new ECMA spec.
21732
21733 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21734
21735         * class.h, class.c: add a max_interface_id to MonoClass.
21736         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
21737         since it's used to do that. Added mono_type_type_from_obj().
21738         Make GetType() return NULL instead of segfaulting if the type was not
21739         found. Handle simple arrays in assQualifiedName.
21740         * object.h: add a struct to represent an Exception.
21741         * reflection.c: output call convention in method signature.
21742         Add code to support P/Invoke methods and fixed offsets for fields.
21743
21744 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
21745
21746         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
21747         the value.
21748         * icall.c: use mono_array_addr instead of array->vector: fixes the
21749         reflection image writing.
21750         * reflection.c: init call convention byte to 0 in method signature.
21751         Encode the property signature. Don't output property-related methods
21752         twice. Really process the properties for a type (don't cast a field to
21753         a property, my mom always told me that).
21754         Fix 64 bit issues in pointer alignment in a different and more
21755         readable way.
21756
21757 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
21758
21759         * loader.h: Removed type class from MonoDefaults, added monotype
21760
21761         * loader.c: Loaded MonoType, removed loading of Type
21762
21763         * icall.c (my_mono_new_object): Now returns a System.MonoType,
21764         and fills in System.Type._impl with a RuntimeTypeHandle rather
21765         than the actual MonoClass *
21766
21767         (ves_icall_type_from_handle): change from type_class to
21768         monotype_class
21769
21770         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
21771         implemented
21772
21773         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
21774         implemented
21775
21776         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
21777
21778         (ves_icall_System_Reflection_Assembly_GetType): implemented
21779
21780         (ves_icall_System_MonoType_assQualifiedName): implemented
21781
21782         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
21783
21784 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
21785
21786         * assembly.c (mono_assembly_open): Implement a cache for the
21787         assemblies. 
21788
21789         (mono_assembly_close): only destroy the assembly when the last
21790         reference is gone.
21791         
21792 2001-11-09  Dick Porter  <dick@ximian.com>
21793
21794         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
21795
21796 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
21797
21798         * class.c (mono_class_metadata_init): bug fix: compute the right slot
21799
21800 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21801
21802         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
21803         from Martin Weindel.
21804         * object.h: add mono_string_chars ().
21805
21806 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
21807
21808         * reflection.c (build_compressed_metadata): Eliminates warnings
21809         and uses 64-bit clean code.
21810
21811         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
21812         (mono_type_equal): Change signature to eliminate warnings.
21813
21814 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21815
21816         * icall.c, loader.c: remove the internalcall array constructors.
21817         Changes to match the new MonoArray structure.
21818         * object.h, object.c: an array object doesn't allocate an extra
21819         vector. Add mono_array_new_full () to create jagged arrays easily.
21820
21821 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21822
21823         * metadata.h, metadata.c: add mono_metadata_field_info () to
21824         retreive all the info about a field from vairous tables.
21825         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
21826         * class.h, class.c: augment MonoClassField with more info.
21827         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
21828         policy and load a field's RVA if needed.
21829
21830 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
21831
21832         * class.c (mono_class_metadata_init): create a trampoline for all
21833         virtual functions instead of actually compiling them.
21834
21835 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
21836
21837         * class.h, class.c: include name in MonoClassField.
21838         * class.c: fix fundamental type of System.Object and System.String.
21839         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
21840         tokens in ldtoken.
21841         * icall.c: remove internalcalls for the Reflection stuff that is now
21842         done in C# code.
21843         * loader.c: mono_field_from_memberref () implementation.
21844         * mono-endian.c: thinko (s/struct/union/g).
21845         * object.c, object.h: make the mono_string_* prototypes actually use
21846         MonoString instead of MonoObject.
21847         * reflection.c, reflection.h: updates for changes in the reflection
21848         code in corlib: we use C structures that map to the actual C# classes.
21849         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
21850         fat method header if needed and use the info from the ILGenerator for
21851         methods. Handle fields in types. Misc fixes.
21852
21853 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
21854
21855         * class.c (mono_class_metadata_init): bug fix: always allocate
21856         space for static class data
21857
21858 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
21859
21860         * class.c (mono_compute_relative_numbering): use relative
21861         numbering to support fast runtime type checks.
21862
21863 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
21864
21865         * class.c (mono_class_create_from_typeref): added debugging output
21866         to print class name when MonoDummy is returned instead of real class
21867
21868 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
21869
21870         * class.c (mono_class_metadata_init): interface offset table now
21871         contains pointers into the vtable - this is more efficient for the jit
21872
21873 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
21874
21875         * class.c (mono_class_metadata_init): use a temporary vtable (the
21876         old algorithm only worked for the interpreter, but not for the jit)
21877
21878 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
21879
21880         * loader.c (method_from_memberref): use mono_class_get to get the
21881         class of an array instead of using System.Array directly.
21882         (mono_get_method): also add MEMBERREF methods to the method cache
21883         which usefull for arrays.
21884
21885 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
21886
21887         * pedump.c (arch_compile_method): added to compute vtable entry
21888
21889         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
21890         number of interfaces.
21891         
21892         * class.h: merged MonoArrayClass into MonoClass
21893
21894         * class.c (mono_class_create_from_typedef): compute the vtable size and
21895         allocate space to include the vtable inside MonoClass
21896         (mono_class_metadata_init): initialize the vtable
21897
21898 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
21899
21900         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
21901         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
21902         * image.c: endian fixes by Laurent Rioux.
21903         * object.h, object.c: rename MonoStringObject to MonoString and
21904         MonoArrayObject to MonoArray. Change some function names to conform to
21905         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
21906         guint16* as first argument, so don't use char*.
21907         Provide macros to do the interesting things on arrays in a portable way.
21908         * threads-pthread.c: updates for the API changes and #include <sched.h>
21909         (required for sched_yield()).
21910         * icall.c: updates for the API changes above.
21911         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
21912         platforms that need them.
21913
21914 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
21915
21916         * class.c: set the correct type for all the fundamental
21917         type when loading the class.
21918
21919 2001-10-05  Dick Porter  <dick@ximian.com>
21920
21921         * threads-pthread.c (pthread_mutex_timedlock): Simple
21922         compatibility version for C libraries that lack this call.
21923
21924 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21925
21926         * class.c: MonoTypes stored in MonoClass are stored as
21927         fundamental MonoTypes when the class represents a
21928         fundamental type (System.Int32, ...).
21929         The TypeHandle return by ldtoken is a MonoType*.
21930         * icall.c: ves_icall_get_data_chunk () write out all the
21931         PE/COFF stuff. Implement ves_icall_define_method (),
21932         ves_icall_set_method_body (), ves_icall_type_from_handle ().
21933         * image.c: properly skip unknown streams.
21934         * loader.h, loader.c: add type_class to mono_defaults.
21935         * metadata.c, metadata.h: export compute_size () as
21936         mono_metadata_compute_size () with a better interface.
21937         Typo and C&P fixes.
21938         * pedump.c: don't try to print the entry point RVA if there is no entry point.
21939         * reflection.c, reflection.h: many cleanups, fixes, output method
21940         signatures and headers, typedef and typeref info, compress the metadata
21941         tables, output all the heap streams, cli header etc.
21942         * row-indexes.h: typo fixes.
21943
21944 2001-10-04  Dick Porter  <dick@ximian.com>
21945
21946         * object.h: Add a synchronisation mutex struct to MonoObject
21947
21948         * object.c (mono_new_object): Initialise the object
21949         synchronisation mutexes
21950
21951         * icall.c: System.Threading.Monitor internal calls
21952         
21953         * threads-pthread.h:
21954         * threads-pthread.c: System.Threading.Monitor internal calls
21955
21956         * threads-types.h: New file, includes the system-specific thread
21957         structures
21958         
21959         * threads-pthread-types.h:
21960         * threads-pthread-types.c: New files, handle pthread-specific
21961         synchronisation types
21962
21963         * threads-dummy-types.h: 
21964         * threads-dummy-types.c: New files of dummy support for
21965         thread-specific types
21966
21967         * metadata.c:
21968         * image.c:
21969         * pedump.c: include mono-endian.h not endian.h
21970         
21971         * Makefile.am: More threads files.
21972         Name mono-endian.h not endian.h
21973
21974 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
21975
21976         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
21977         stuff and implement a few more bits.
21978         * icall.c: a field needs to be dereferenced twice. Do not use the same
21979         name for two variables in the same scope.
21980         * image.c, image.h: cleanups.
21981
21982 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
21983
21984         * class.c (mono_class_metadata_init): bug fix: compute the right size
21985
21986 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
21987
21988         * icall.c: implemented some of the Reflection internalcalls.
21989         * image.c, image.h: start writing out the PE/COFF image.
21990         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
21991         that does the reverse than decode_blob_size ().
21992         * object.c: use mono_metadata_encode_value (). Move here
21993         temporary implementation of mono_string_to_utf8 ().
21994         * rawbuffer.c: make malloc_map static.
21995
21996 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21997
21998         * metadata.c: fix type comparison for arrays.
21999         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
22000         Added a couple of new classes to monodefaults.
22001         * icall.c: added a couple of Reflection-related internalcalls.
22002         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
22003         Added a byval_arg MonoType to MonoClass.
22004
22005 2001-09-28  Dick Porter  <dick@ximian.com>
22006
22007         * icall.c:
22008         * threads-pthread.h: 
22009         * threads-pthread.c: Implemented internal calls for
22010         LocalDataStoreSlot operations.  Applied mutexes around all shared
22011         data.  Reworked the thread creation and Start() operations to
22012         avoid a race condition.
22013         
22014         * threads-dummy.h:
22015         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
22016
22017 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
22018
22019         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
22020
22021 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
22022
22023         * class.c, loader.c: warn and return NULL instead of erroring out.
22024         * icall.c: added System.AppDomain::getCurDomain().
22025         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
22026
22027 2001-09-25  Dick Porter  <dick@ximian.com>
22028
22029         * threads-pthread.h:
22030         * threads-pthread.c: Implemented timed thread joining and added
22031         System.Threading.Thread::Join_internal internal call
22032
22033         * icall.c: Added System.Threading.Thread::Join_internal internal call
22034
22035         * threads-dummy.h:
22036         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
22037
22038 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
22039
22040         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
22041         mono_string_intern () to implement the semantics of the ldstr opcode
22042         and the interning of System.Strings.
22043         * icall.c: provide hooks to make String::IsIntern and String::Intern
22044         internalcalls.
22045
22046 2001-09-23  Dick Porter  <dick@ximian.com>
22047
22048         * threads-dummy.c: 
22049         * threads-dummy.h: New files of dummy threading routines
22050
22051         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
22052         support code based on system specifics
22053
22054         Rename PTHREAD_LIBS to THREAD_LIBS
22055         
22056 2001-09-23  Dick Porter  <dick@ximian.com>
22057
22058         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
22059         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
22060         internal calls.
22061         (mono_thread_init): Set up a Thread object instance to return when
22062         the main thread calls Thread.CurrentThread
22063         (mono_thread_cleanup): Wait for all subthreads to exit
22064
22065         * icall.c: New internal calls for System.Threading.Thread::Sleep
22066         (including Schedule) and CurrentThread
22067
22068         * threads.h: New file, to insulate thread-specific stuff from the
22069         rest of the code
22070
22071 2001-09-21  Dick Porter  <dick@ximian.com>
22072
22073         * threads-pthread.h: 
22074         * threads-pthread.c: New file, for handling pthreads-style
22075         threading support.  Start() now starts a new thread and executes
22076         the ThreadStart delegate instance.
22077
22078         * icall.c: Added the internalcall for
22079         System.Threading.Thread::Start_internal
22080
22081         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
22082
22083 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
22084
22085         * loader.c: work around the different signatures for delegates
22086         constructors csc generates in compiled code vs the ones compiled in mscorlib.
22087
22088 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22089
22090         * class.h, class.c: add mono_class_get_field_from_name ().
22091         * *: Fix C comments and other ANSI C issues.
22092
22093 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
22094
22095         * endian.h, assembly.c: fix some endianness issues.
22096
22097 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
22098
22099         * loader.h, load.c: add delegate_class to mono_defaults.
22100         Handle runtime provided methods in mono_get_method ().
22101
22102 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
22103
22104         * loader.c (mono_get_method): use pinvoke for internal call
22105
22106         * icall.c: use pinvoke for internal call
22107
22108         * loader.c (method_from_memberref): set the method name
22109
22110 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
22111
22112         * metadata.c: help the compiler generate better code for
22113         mono_class_from_mono_type ().
22114
22115 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
22116
22117         * class.c (mono_class_metadata_init): delayed computing of the
22118         class size to mono_class_metadata_init ()
22119
22120 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
22121
22122         * class.c, class.h: add an interfaces member to MonoClass.
22123         * image.c, image.h: add assembly_name field to MonoImage
22124         from the assembly table.
22125         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
22126
22127 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22128
22129         * class.c: Handle Array in mono_class_from_mono_type ().
22130         * metadata.c, pedump.c: some endian fixes.
22131
22132 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22133
22134         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
22135         * metadata.c: fix small problem introduced with the latest commit.
22136
22137 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
22138
22139         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
22140         We don't need a MonoMetadata pointer anymore to compare signatures in
22141         mono_metadata_signature_equal (), update callers.
22142         Reduced memory usage an number of allocations for MonoMethodHeader and
22143         MonoMethodSignature.
22144
22145 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
22146
22147         * metadata.c: added compare for szarray.
22148
22149 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
22150
22151         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
22152         and add a couple more types to it and mono_defaults. Give an hint on
22153         classes that need implementing in our corlib and are referenced
22154         in mscorlib.
22155
22156 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
22157
22158         * class.h, class.c: keep track if a class is also an Enum.
22159         * loader.c: Implement a couple more types for use in libffi
22160         marshalling. Gives better diagnostics when failing to dlopen
22161         a library. Set method->klass for P/Invoke methods, too.
22162
22163 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
22164
22165         * class.c, class.h: add a MonoType this_arg to MonoClass that
22166         represents a pointer to an object of the class' type that
22167         can be used by the interpreter and later the type cache.
22168         Add best guess alignment info for valuetype objects.
22169
22170 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
22171
22172         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
22173         into MonoType: one less level of indirection and allocation and
22174         simplifies quite a bit of code. Added cache for MonoTypes that are
22175         used frequently, so that we don't need to allocate them all the time.
22176
22177 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
22178
22179         * class.c (mono_class_create_from_typedef): System.Enum is also a
22180         value type, although it does not derive from System.ValueType
22181         (maybe a bug in the ms compiler?)
22182
22183         * metadata.c (mono_type_size): return the right size for value types
22184
22185         * loader.c (mono_get_method): only initialize method header if not abstract
22186
22187         * class.c (mono_class_from_mono_type): use mono_default values. 
22188
22189 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
22190
22191         * *: use MonoClass pointers instead of <type_tokens>
22192         
22193         * class.h: new flag: metadata_inited.
22194
22195         * class.c (mono_class_metadata_init): impl.
22196         (mono_class_instance_size): impl.
22197         (mono_class_data_size): impl.
22198
22199 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22200
22201         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
22202         MonoClass now has the name and name_space fields. 
22203         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
22204         mono_get_method () takes and optional MonoClass as argument.
22205         Removed mono_typedef_from_name() and added mono_class_token_from_name()
22206         instead that takes advantage of a map from class names to typedef
22207         tokens in MonoImage.
22208
22209 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
22210
22211         * metadata.c: zero is not a valid alignment boundary.
22212         Merge MONO_TYPE_VOID in default decoding code.
22213
22214 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
22215
22216         * image.h: merged MonoMetadata into MonoImage
22217
22218         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
22219         identify the type of elements.
22220
22221 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22222
22223         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22224         * cil-coff.h: split MonoMSDOSHeader and add size info.
22225         * image.c: add some consistency checks.
22226         * metadata.c: fix row size computation: one programmer
22227         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22228         add explanation for the locator routine.
22229         Fix decoding of size in method header.
22230         
22231 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22232
22233         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22234         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22235         function from gnome-libs.  This uses the right path separator
22236         based on the OS, and also works around a bug in some systems where
22237         a double slash is not allowed. 
22238         (default_assembly_name_resolver): Use g_concat_dir_and_file
22239         (mono_assembly_open): ditto.
22240
22241 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22242
22243         * metadata.c (mono_metadata_signature_equal): impl.
22244
22245         * *: void is now a realy MonoType (instead of using NULL)
22246         
22247         * metadata.c (do_mono_metadata_parse_type): use
22248         mono_metadata_parse_type to parse void value.
22249
22250 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22251
22252         * metadata.c, metadata.h: in the signature and method header store
22253         only the space required for holding the loca vars and incoming arguments.
22254
22255 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22256
22257         * metadata.c (do_mono_metadata_parse_type): treat void like any
22258         other type (instead of assigning NULL);
22259
22260 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22261
22262         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22263
22264 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22265
22266         * image.c (do_mono_image_open): added a cache for arrays.
22267
22268 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22269
22270         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22271         decode a single column from a row in a metadata table and changes
22272         to take advantage of it in the typedef locator (gives a nice speed up).
22273         Store offset info for function params.
22274
22275 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22276
22277         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22278
22279 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22280
22281         * assembly.c: how could mono_assembly_close () had ever worked?
22282         * metadata.c, metadata.h: provide offset info for local vars.
22283         Implement mono_type_size () to take care of alignment as well
22284         as size (it was mono_field_type_size in cli/class.c before).
22285
22286 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22287
22288         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22289
22290         * assembly.h (CORLIB_NAME): set to corlib.dll
22291
22292         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22293
22294 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22295
22296         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22297         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22298         tokentype.h: massive namespace cleanup.
22299
22300 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22301
22302         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22303
22304 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22305
22306         * metadata.c (mono_metadata_free_type): added check for type !=
22307         NULL (void) before calling mono_metadata_free_type()
22308
22309 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22310
22311         * metadata.h, row_indexes.h: added header with enumerations to use
22312         to index in the columns from tables in metadata and to decode coded
22313         tokens: we should start using this instead of embedding magic numbers
22314         all over the code.
22315
22316 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22317
22318         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22319         Move metadata_t info from cli_image_info_t to MonoImage, where
22320         it's easily accessible. Changed all the uses accordingly.
22321         Added the method and class caches to MonoImage.
22322         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22323         and mono_metadata_decode_value () signature to be more consistent
22324         with the other parse functions (and simplify code). Taken advantage
22325         of zero-length array allocation with GCC. Removed reduntant (and
22326         wrong) MonoFieldType struct and use MonoParam instead. Changed
22327         mono_metadata_parse_field_type () to use common code for parsing.
22328         Added mono_metadata_typedef_from_field () and
22329         mono_metadata_typedef_from_method () to lookup a typedef index from a
22330         field or method token.
22331         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22332
22333 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22334
22335         * metadata.c (mono_metadata_parse_field_type): Implement. 
22336         (do_mono_metadata_parse_type): Split engine from
22337         mono_metadata_parse_type, so that we can create smaller structures
22338         for things that just have one pointer to the MonoType (look at
22339         the MonoFieldType)
22340
22341 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22342
22343         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22344         as Jan Gray found out, it is incorrect. 
22345
22346 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22347
22348         * assembly.c: Implement asssembly loading.  This loads an image
22349         and loads all the referenced assemblies.  Come to think of it, we
22350         could always do lazy loading of the assemblies. 
22351
22352         * image.c (mono_image_open): Keep loaded images in a hashtable.
22353
22354         * image.h (MonoImage): Add reference count.
22355
22356 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
22357
22358         * assembly.c (mono_assembly_open): Keep track of the file name in
22359         case the assembly has no ASSEMBLY table.
22360
22361         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
22362         from get.c here.
22363
22364 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22365
22366         * metadata.c, metadata.h: decode local vars in method header
22367         parse function. Change callers accordingly.
22368
22369 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22370
22371         * metadata.h, cil-coff.h: protect against multiple inclusion.
22372         Added some new structures to hold information decoded from metadata:
22373         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22374         and relevant decoding/free functions.
22375         * metadata.c: implement decoding functions. Add warning for out of bounds
22376         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22377         all the info about a method signature and invocation. Remove check on
22378         uninitialized local var in parse_mh() and fix memory leak.
22379
22380 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22381
22382         * metadata.h: More macros.
22383
22384         * tokentype.h: New file.
22385
22386 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22387
22388         * assembly.c: added a consistency check and initialize
22389         some structures with g_new0().
22390         * metadata.c: fixed a couple more bugs in table size computation
22391         and add other checks for out-of bound access to metadata.
22392
22393 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22394
22395         * metatada.c: fix bugs computing table sizes. Spew a
22396         warning when index in string heap is out of bounds.
22397
22398 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22399
22400         * metadata.h: Add a couple of macros to manipulate tokens. 
22401
22402 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22403
22404         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22405         cli_section_tables).
22406
22407 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22408
22409         * metadata.c (mono_metadata_user_string): New function, provides
22410         access to the UserString heap. 
22411
22412 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22413
22414         * metadata.c: Add inline documentation.
22415
22416 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22417
22418         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22419         files. 
22420
22421 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22422
22423         * typeattr.h: New file, TypeAttribute flags. 
22424
22425 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22426
22427         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22428         mono_assembly_ensure_section): Section loading code.
22429         (load_section_tables): Load the sections.
22430
22431         * mono/metadata/metadata.c (mono_metadata_locate_token,
22432         mono_metadata_locate): Functions to locate the information
22433         definition given a token or a table and an index.
22434         (mono_metadata_compute_table_bases): New.
22435         (compute_size): New function to compute the sizes of the various
22436         tables.
22437
22438         * mono/metadata/metadata.h: Finish listing the different index
22439         types. 
22440
22441         * mono/metadata/pedump.c: Improve to dump new information.
22442
22443 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22444
22445         * mono/metadata/metadata.c: Entered all the tables matching
22446         Beta2. 
22447
22448         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22449
22450
22451