2007-08-16 Jb Evain <jbevain@novell.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-08-16  Jb Evain  <jbevain@novell.com>
2
3         * domain.c (supported_runtimes): add entry for
4         the 'moonlight' runtime version.
5
6 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
7
8         * verify.c (mono_method_verify): small typo sliped in.  
9
10 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
11
12         * verify.c (do_unbox_value): added, do type verification of
13         unboxing ops
14         * verify.c (mono_method_verify): use do_unbox_value
15
16
17 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
18
19         * verify.c (dump_stack_value): fixed typo, was printing string
20         instead of object on stack.
21         * verify.c (do_box_value): moved the byref check up as it leads
22         to invalid code and should be done earlier.
23         * verify.c: improved error messages for and ldobj
24
25 2007-08-15  William Holmes  <billholmes54@gmail.com>
26
27         * marshal.c (emit_marshal_custom): Omit the call to 
28           marshal_native_to_managed when calling native to managed 
29           and the argument is specified as an out argument.
30
31         Code is contributed under MIT/X11 license.
32
33 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
34
35         * verify.c: fixed the type checks for generics, function pointers and vectors.
36         Added type verification for ldobj and ldtoken. The verifier
37         would segfault if header or signature of a method contained references
38         to non-existant types.
39
40 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
41
42         * marshal.c (cominterop_get_ccw): Patch from
43         Bill Holmes to no walk up interface hierarchy. 
44         All parent methods should be present in the interface for COM.
45    
46         Code is contributed under MIT/X11 license.
47
48 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
49
50         * marshal.c (emit_marshal_com_interface): Patch from
51         Bill Holmes to handle COM Interfaces as return values
52         for native->managed calls.
53    
54         Code is contributed under MIT/X11 license.
55
56 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
57
58         * marshal.c (cominterop_get_idispatch_for_object): Implement
59         for runtime callable wrappers.
60    
61         Code is contributed under MIT/X11 license.
62
63 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
64
65         * pedump.c (main): changed from mono_init to mono_init_from_assembly
66         so 2.0 types are accessible
67
68
69 2007-08-13  Miguel de Icaza  <miguel@novell.com>
70
71         * domain.c (mono_init_internal): Call mono_assembly_load_friends
72         once we load mscorlib.   Due to the order in which we initialize,
73         the mono_assembly_load_full routine that loads mscorlib did not
74         load friends.   We now load it once we load the
75         mono_defaults.internals_visible_class class. 
76
77         * assembly.c: Expose the mono_load_friend_assemblies method.
78
79 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
80
81         * verify.c: improved the handling of boxing, better
82         type checking for unary ops and conversion. Fix bug
83         regarding managed pointer compatibility checking
84
85 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
86
87         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
88
89         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
90
91 2007-08-09  Raja R Harinath  <rharinath@novell.com>
92
93         * reflection.c (dup_type): Remove.
94         * class.c (dup_type): Remove.
95         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
96         instead of the dodgy 'dup_type'.
97         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
98         handle the case where 'dup_type' needed the second argument.
99
100 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
101
102         * domain.c: Fix a warning.
103
104 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
105
106         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
107         checking that methods with the same fqname are not overridden
108         with a method from an ancestor.
109
110 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
111
112         * threads.c (free_thread_static_data_helper): Avoid a crash if
113         thread->static_data is not yet set.
114
115 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
116
117         * marshal.c: Use correct image when emitting
118         native wrapper for COM calls.
119    
120         Code is contributed under MIT/X11 license.
121
122 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
123
124         * icall-def.h, security.c, security.h :
125           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
126
127 2007-08-07  Martin Baulig  <martin@ximian.com>
128
129         * mono-debug-debugger.h
130         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
131
132         * domain.c (mono_domain_free): Call
133         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
134
135 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
136
137         * verify.c (check_underflow, check_overflow): error message now returns IL offset
138         * verify.c (in_same_block): code should test if either offset is inside the clauses
139         * verify.c (mono_method_verify): push the exception into the eval stack of exception
140         and filter blocks
141
142 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
143
144         * image.c (mono_image_close): Fix a leak.
145
146         * object.c (mono_runtime_invoke_array): Avoid using alloca.
147
148         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
149
150 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
151
152         * domain.c, threads.c, threads-types.h: fix memory retention issue
153         with thread static variables not being cleared on domain unload.
154         Reuse thread static slots after domain unload.
155
156 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
157
158         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
159         nullable type.
160
161         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
162         now done in mono_runtime_invoke_array.
163
164         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
165         receiver is a nullable type.
166
167         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
168         generic parameter.
169
170 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
171
172         * marshal.c: Implement COM Objects as return type for 
173         managed->unmanaged calls. Added Release calls for COM Object
174         out/return values in managed->unmanaged calls.
175
176         Code is contributed under MIT/X11 license.
177
178 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
179
180         * threads.h, threads-type.h: move the hazard pointer declarations
181         to the private header.
182
183 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
184
185         * file-io.c, appdomain.c: memory leak fixes.
186
187 2007-08-02  Dick Porter  <dick@ximian.com>
188
189         * socket-io.c
190         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
191         SO_REUSEADDR setting into io-layer/sockets.c.
192
193 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
194
195         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
196         from Object when called on a generic parameter. Fixes #82211.
197
198 2007-08-01  Dick Porter  <dick@ximian.com>
199
200         * file-io.c (convert_share): Test FileShare values bit-by-bit.
201         Fixes bug 79250 yet again.
202
203 2007-07-30  Martin Baulig  <martin@ximian.com>
204
205         Merged the `debugger-dublin' branch.
206
207         * mono-debug.h
208         (MonoDebugDataTable): New typedef.
209         (MonoDebugMethodAddressList): New typedef.
210         (MonoDebugWrapperData): Removed.
211         (MonoDebugSymbolTable): Removed `current_data_table',
212         `current_data_table_size', `current_data_table_offset'.
213         (MonoDebugDataItemType): Moved into mono-debug.c.
214         (MonoDebugMethodJitInfo): Remove `address'.
215         (mono_debug_data_table): New global variable.
216         (mono_debug_lookup_method_addresses): New public function.
217         (mono_debug_find_method): Take a `MonoMethod *', not a
218         `MonoDebugMethodInfo *'.
219
220         * mono-debug.c: Drop support for the old symbol tables.
221
222 2007-06-28  Martin Baulig  <martin@ximian.com>
223
224         * mono-debug.c (mono_debug_debugger_version): New public variable.
225
226 2007-07-31  William Holmes  <billholmes54@gmail.com>
227
228         * metadata.c Changed mono_type_create_from_typespec to not insert
229           the type into the hash map until after
230           do_mono_metadata_parse_type has completed.
231         Fixes Bug #82194
232         Code is contributed under MIT/X11 license.
233
234 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
235
236         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
237         generic parameter. Fixes #82211.
238
239 2007-07-27  Jb Evain  <jbevain@novell.com>
240
241         * pedump.c (dump_metadata, dump_metadata_header): dump
242         versions contained in the metadata header.
243
244 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
245
246         * threads.c: register small_id_table with the GC.
247
248 2007-07-27  Mark Probst  <mark.probst@gmail.com>
249
250         * threads.c, threads.h, class-internals.h, object-internals.h:
251         Hazard pointers, to be used by lock-free parallel algorithms.
252
253 2007-07-26  Dick Porter  <dick@ximian.com>
254
255         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
256         routine on non-windows platforms, as I've not managed to think of
257         a non-kludgy way of doing this.  Finishes off bug 78739.
258
259 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
260
261         * object.c: properly setup interface_bitmap in proxy vtables.
262
263 2007-07-25  Marek Habersack  <mhabersack@novell.com>
264
265         * appdomain.c (get_shadow_assembly_location): do not use TickCount
266         to create unique shadow copy target directories, use the domain's
267         serial number instead. Each domain gets a unique target directory
268         that way.
269
270         * domain.c (mono_domain_create): added code to increment domain
271         shadow copy serial number and cache the value in the current
272         domain structure.
273
274         * domain-internals.h (struct _MonoDomain): added a new field -
275         shadow_serial to hold the serial number used in generation of
276         shadow-copy directories. This is to make sure that the directory
277         name is unique for each and every domain created. We avoid a race
278         condition with overriding assemblies already in use by other app
279         domains.
280
281 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
282
283         * class.c (mono_bounded_array_class_get): fixed memory leak when 
284         binding generic parameters.
285
286 2007-07-24  Raja R Harinath  <rharinath@novell.com>
287
288         * metadata.c (do_mono_metadata_parse_generic_class): Use
289         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
290         error.
291
292 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
293
294         * loader.c, class-internals.h, reflection.c: removed the per-method
295         generics hashtable: we use the global one through the call of
296         mono_class_inflate_generic_method ().
297
298 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
299
300         * class.c, metadata.c, class-internals.h: introduce yet another
301         generics global cache for inflated methods (fixes 98% of the perf
302         issue in bug #81806).
303
304 2007-07-23  Raja R Harinath  <rharinath@novell.com>
305
306         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
307         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
308         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
309         return a MonoGenericInst containing (a copy) of those types.
310         (mono_metadata_inflate_generic_inst): Update to changes.
311         (mono_metadata_parse_generic_inst): Likewise.
312         (mono_get_shared_generic_inst): Likewise.
313         * reflection.c (mono_class_bind_generic_parameters): Likewise.
314         (mono_reflection_bind_generic_method_parameters): Likewise.
315         * metadata-internals.h: Likewise.
316         * icall.c (free_generic_context): Kill.
317         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
318
319         * reflection.c (reflection_methodbuilder_to_mono_method): Use
320         mono_metadata_type_dup.
321         * marshal.c (mono_mb_create_method): Likewise.
322
323         * metadata.c (mono_metadata_type_dup): Rename from
324         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
325         MonoImage.  Handle a few more cases, esp. when no mempool is given.
326         * marshal.c, metadata-internals.h: Update to changes.
327
328 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
329
330         * class.c: fixed a small leak for array classes and removed warning.
331
332 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
333
334         * loader.c (mono_method_get_param_token): Make this work on generic methods.
335         Return 0x8000000 for return parameters. Fixes #82161.
336
337 2007-07-21  Marek Habersack  <grendello@gmail.com>
338
339         * appdomain.c (get_shadow_assembly_location): append the current
340         ticks value to the path. Avoids overwriting the same assemblies by
341         several threads at the same time.
342
343 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
344         and Raja R Harinath  <rharinath@novell.com>
345
346         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
347         Simplify slightly.
348         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
349         property for testing if a method is a generic method definition.
350
351 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
352
353         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
354
355 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
356
357         * verify.c: used function from private branch, reverted to the one in class.h 
358
359 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
360
361         * verify.c: a typo slipped in and the code wont compile
362
363 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
364
365         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
366         disabled box instruction as it is doing the wrong thing
367         improved stack dump messages, now it is easier to debug type related issues
368
369
370 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
371
372         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
373
374 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
375
376         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
377         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
378         grouped with class and valuetype. This change will simply 
379         the code as it should be handled just like unmanaged pointers.
380
381 2007-07-19  Mark Probst  <mark.probst@gmail.com>
382
383         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
384
385 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
386
387         * verify.c: several stack merge issues fixed, reference comparisons now
388         check the type size. strict type check now works correctly.
389         added more uses of IS_MANAGED_POINTER macro.
390         fixed issues pointed by running the test suite against .net.
391         
392
393 2007-07-19  Mark Probst  <mark.probst@gmail.com>
394
395         * class.c, loader.c, class-internals.h: Removed the
396         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
397         defines.
398
399         * icall.c: Better error checking in some internal reflection
400         methods.
401
402 2007-07-18  William Holmes  <billholmes54@gmail.com>
403
404         * filewatcher.c : removed unused variable 'filename' in 
405           ves_icall_System_IO_FSW_SupportsFSW
406
407 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
408
409         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
410         obsolete, removed.
411
412 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
413
414         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
415         
416         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
417
418 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
419
420         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
421         Implement generics support.
422         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
423
424         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
425         type_args and method_args arguments.
426         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
427         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
428         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
429
430 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
431
432         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
433           It adds a rootimage parameter to mono_reflection_get_type_internal,
434           adds new function mono_reflection_get_type_with_rootimage and use
435           the rootimage to resolve the types instead of the current image
436
437 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
438
439         * culture-info-table.h: Forgot to update after r78304.
440
441 2007-07-13  Raja R Harinath  <rharinath@novell.com>
442
443         * class.c (mono_class_is_open_constructed_type)
444         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
445
446 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
447
448         * class.c (mono_bounded_array_class_get):  method fails if used with
449         an incomplete TypeBuilder enum (no basetype field), fixed it by 
450         avoiding calculating the size for such array as it cannot be instantiated.
451         Fix bug #82015
452
453 2007-07-12  Raja R Harinath  <rharinath@novell.com>
454
455         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
456         field.
457         * metadata.c, reflection.c: Update to changes.
458
459 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
460
461         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
462         mono_class_is_valid_enum, they are used to valide a enum when loading.
463         * reflection.c: used new functions to throw TypeLoadException when and
464         invalid enum is build with TypeBuilder. Fixes #82018
465   
466 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
467
468         * object.c: forgot commit of mono_class_setup_methods () to access
469         iface->methods.
470         * object-internals.h: added a few more handy fields to
471         MonoIMTCheckItem.
472
473 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
474
475         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
476         iface->methods.
477
478 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
479
480         * class-internals.h, object-internals.h, object.c: IMT-based
481         interface invocation core from Massimiliano Mantione
482         (massi@ximian.com) with a reworked arch-specific interface,
483         bsearch implementation and a few bugfixes and memory savings by me.
484
485 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
486
487         * class.c (mono_class_create_from_typedef): mono would segfault if 
488         an enum did not have a __value field. It now throws a TypeLoadException
489         for such cases. Fix bug #82022
490
491 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
492
493         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
494
495 2007-07-09  Mark Probst  <mark.probst@gmail.com>
496
497         * class.c (mono_class_init): If a class is already inited but has
498         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
499
500 2007-07-09  Mark Probst  <mark.probst@gmail.com>
501
502         * class.c: Properly handle the case of an unimplemented interface
503         method.  Fixes: 81673.
504
505 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
506
507         * class-internals.h, object.c: cleanup patch from massi: use
508         MonoVTable->interface_bitmap since the vtable interfaces offset array
509         is going away.
510
511 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
512
513         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
514         GetMDStreamVersion icall instead.
515
516 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
517
518         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
519         not use mono_dl_build_path() with a full library name: makes
520         fallbacks to libgaim and libfam work.
521
522 2007-07-06  William Holmes  <billholmes54@gmail.com>
523
524         * assembly.c: Added a continue statement in probe_for_partial_name when
525          parse_assembly_directory_name fails.  Fixes : 82002
526
527 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
528
529         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
530         and added a verification  for TYPEDBYREF.
531         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
532         make native int interchangeable with int32 and some small cleanup and formating.
533         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
534         handle byref of byref.
535         * verify.c (push_local): handle byref of byref.
536         * verify.c (do_binop): invalid mix of values is unverifiable
537         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
538         added visibility checks
539         * verify.c (field related method): added visibility checks
540         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
541
542 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
543
544         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
545         string.
546
547 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
548
549         * profiler.c (mono_profiler_load): Fix an off-by-one error.
550
551         * marshal.c (emit_marshal_string): When returning a string from managed code,
552         allways make a copy even for unicode strings. Fixes #81990.
553
554 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
555
556         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
557         of byref generic inst types (bug #81997).
558
559 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
560
561         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
562         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
563
564 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
565
566         * marshal.c (emit_marshal_string): Add support for unicode strings in
567         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
568
569 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
570
571         * verify.c: field load/store are now verified, missing only access checks now
572
573 2007-06-28  Martin Baulig  <martin@ximian.com>
574
575         * mono-debug.c (mono_debug_debugger_version): New public variable.
576
577 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
578
579         * locales.c: When constructing DateTimeFormat or NumberFormat for
580         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
581         MonoCultureInfo contructed from the current locale is always
582         read-only and has UseUserOverride set to true. All MonoCultureInfo
583         instances returned for GetCultures have both IsReadOnly and
584         UseUserOverride set to true. Fixes part of bug #81930.
585
586 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
587
588        * icall-def.h: Update System.__ComObject icalls
589        * marshal.c: Avoid managed transition (and object creation)
590        when looking up COM interface in RCW.
591        * marshal.h: Ditto.
592        
593        Code is contributed under MIT/X11 license.
594
595 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
596
597         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
598         to avoid crashes during assembly unloading.
599
600 2007-06-22  Raja R Harinath  <rharinath@novell.com>
601
602         Fix MethodInfo.IsGenericMethodDefinition
603         * reflection.c (mono_reflection_bind_generic_method_parameters):
604         Rearrange code to ensure we always uses a generic method definition.
605         * class.c (mono_class_inflate_generic_method_full): Set
606         'generic_container' field only for generic method definitions.
607         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
608         Use presense of 'generic_container' field as indication of being a
609         generic method definition.
610
611 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
612
613         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
614
615         * object-internals.h: Reflect changes in the layout of the managed Delegate
616         class.
617         
618         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
619         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
620         runtime memory used by the dynamic method. Fixes #77146.
621
622 2007-06-21  Dick Porter  <dick@ximian.com>
623
624         * file-io.h: 
625         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
626         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
627         81767.
628
629 2007-06-21  Raja R Harinath  <rharinath@novell.com>
630
631         * reflection.c (method_encode_methodspec): Add a tripwire.
632         * class.c (inflate_generic_type): The fully open generic type is
633         not the same as the generic type definition.
634
635 2007-06-21  Martin Baulig  <martin@ximian.com>
636
637         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
638
639         * mono-debug-debugger.h
640         (MonoDebuggerBreakpointInfo): Removed.
641         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
642         (mono_debugger_remove_breakpoint): Likewise.
643         (mono_debugger_breakpoint_callback): Likewise.
644         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
645
646 2007-06-21  Raja R Harinath  <rharinath@novell.com>
647
648         * metadata.c (mono_metadata_lookup_generic_class): The fully open
649         generic type is not the same as the generic type definition.
650         * class.c (mono_generic_class_get_class): Likewise.
651
652 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
653
654         * icall.c: The second argument to 
655         System.Reflection.MethodBase.GetMethodFromHandleInternalType
656         is a MonoType not a MonoClass.
657
658 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
659
660         * verify.c: support for function pointers in the verifier
661
662 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
663
664         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
665
666 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
667
668         * assembly.c: removed Mono.Data.SqliteClient from the list of
669         forward-compatible assemblies as it breaks the ABI (bug #81899).
670
671 2007-06-19  Raja R Harinath  <rharinath@novell.com>
672
673         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
674         lookup/update with the loader lock.
675         * reflection.c (mono_class_bind_generic_parameters): No need to
676         protect mono_metadata_lookup_* with the loader lock.
677         * class.c (inflate_generic_type): Likewise.
678         
679         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
680         on a generic instantiated type.
681
682 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
683
684         *verify.c: produce meanfull error messages on verification error
685         *verify.c: fixed some cases of verification errors reported as validation errors
686         *pedump.c: fixed the error name array, now it shows validation errors properly
687         *verify.h: fixed the contant that should be used for verification errors
688
689 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
690
691         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
692         for bug #77596, 81858 and 80743 (generics data structures on domain
693         unload).
694
695 2007-06-15  Raja R Harinath  <rharinath@novell.com>
696
697         Avoid allocating 'MonoGenericContext' on the heap.
698         * class-internals (_MonoMethodInflated::context): Make field
699         inline, not a pointer.
700         * loader.c (method_from_methodspec): Allocate 'new_context' on the
701         stack.  Use the context embedded within the inflated method as the
702         hash key, rather than 'new_context'.
703         * class.c (inflate_generic_context): Simplify.  Return a struct
704         rather than allocating on the heap.
705         (mono_class_inflate_generic_method_full): Update to changes.  Now,
706         doesn't salt away a copy of the context -- simplifying the
707         lifetime rules of a 'MonoGenericContext *'.
708         (mono_method_get_context): Return pointer to embedded context.
709         (setup_generic_array_ifaces): Allocate temporary context on stack.
710         * reflection.c (inflate_mono_method): Likewise.
711         (mono_reflection_bind_generic_method_parameters): Likewise.
712         Use the context embedded within the inflated method as the hash key.
713
714         Avoid a source of allocation of 'MonoGenericContext'.
715         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
716         and 'cached_context' fields into embedded 'MonoGenericContext' field.
717         * class.c: Update to changes.
718         (mono_generic_class_get_context): Simplify drastically.  Now just
719         returns a pointer to the field.
720         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
721         argument as a const pointer.
722         (mono_metadata_generic_context_equal): Likewise.
723         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
724         Update to changes.
725
726 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
727
728         * verify.c improved the handling of brtrue/brfalse, factored out common code
729
730 2007-06-14  Raja R Harinath  <rharinath@novell.com>
731
732         Kill MonoGenericMethod.
733         * class-internals.h (MonoGenericContext::method_inst): Rename from
734         'gmethod' and convert to a MonoGenericInst.
735         (MonoGenericMethod): Remove.
736         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
737         * loader.c (method_from_methodspec): Update to changes.  Use a
738         MonoGenericContext as the key to the hashtable.
739         * metadata.c (mono_metadata_generic_context_equal): Rename from 
740         'mono_metadata_generic_method_equal' and take MonoGenericContext.
741         (mono_metadata_generic_context_hash): Likewise from
742         'mono_metadata_generic_method_hash'.  Change hash function.
743         (mono_metadata_load_generic_params): Update to changes.
744         (mono_get_shared_generic_method): Remove.
745         * metadata-internals.h (mono_get_shared_generic_method): Remove.
746         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
747         (inflate_generic_context): Likewise.
748         (mono_class_inflate_generic_method_full): Likewise.
749         (setup_generic_array_ifaces): Likewise.
750         (mono_class_create_from_typespec): Likewise.
751         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
752         (method_encode_methodspec): Update callsite.
753         (reflection_methodbuilder_to_mono_method): Update to changes.
754         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
755         MonoGenericContext as the key to the hashtable.
756         (inflate_mono_method): Update to changes.
757
758         * class-internals.h (MonoGenericMethod::container): Remove.
759         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
760
761 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
762
763         * profiler-private.h, profiler.c, profiler.h: added API to profile
764         exception events.
765
766 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
767
768         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
769
770 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
771
772         * verify.c: method invocation is now validated, now we verify parameter types on stack.
773         Fixed overflow and underflow not aborting the verification process.
774
775 2007-06-13  Mark Probst  <mark.probst@gmail.com>
776
777         * class-internals.h (MonoStats): Added stats entries for dynamic
778         code allocations.
779
780 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
781
782         * loader.c (mono_free_method): Free header->locals and header->clauses.
783
784         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
785         dynamic case.
786
787         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
788
789         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
790
791 2007-06-12  Raja R Harinath  <rharinath@novell.com>
792
793         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
794         the tables.
795
796 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
797
798         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
799
800 2007-06-11  Raja R Harinath  <harinath@gmail.com>
801
802         MonoGenericMethod on a diet
803         * class-internals.h (_MonoMethodInflated::reflection_info): Move
804         here ...
805         (_MonoGenericMethod::reflection_info): ... from here.
806         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
807         Update to changes.
808         * reflection.c (inflate_mono_method): Likewise.
809         (mono_reflection_bind_generic_method_parameters): Likewise.
810
811 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
812
813         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
814         *verify.c: factored long ldarg forms to share code with short forms
815
816 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
817
818         *verify.c: fixed code formating factored some duplicate code
819         into a new function
820
821         *verify.h: fixed binary incompatibility introduced earlier
822
823         *pedump.c: fixed formating
824
825 2007-06-11  Raja R Harinath  <harinath@gmail.com>
826
827         Fix assertion when disassembling Mono.C5.dll
828         * loader.c (method_from_methodspec): Avoid inflating a method
829         twice with the same context.  If the methodref is inflated, use
830         the declaring method instead.
831
832         * class.c (mono_class_from_generic_parameter): Fix case similar to
833         bug #81830 handled below, but for method containers.
834
835 2007-06-10  Raja R Harinath  <harinath@gmail.com>
836
837         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
838         get_shared_generic_class.  Directly inflate the instance.
839         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
840         (inflate_generic_class): Delete.
841         (get_shared_generic_class): Delete.  Move setting of
842         'cached_class' and 'cached_context' ...
843         * metadata.c (mono_metadata_lookup_generic_class): ... here.
844
845         * metadata.c (mono_metadata_lookup_generic_class): Change
846         signature to take the components of a MonoGenericClass rather than
847         an allocated MonoGenericClass.  Change semantics to be intern-like.
848         * reflection.c (mono_class_bind_generic_parameters): Update to
849         changes.  Make locking region tighter.
850         * class.c (inflate_generic_class): Update to changes.
851         (get_shared_generic_class): Likewise.
852         * metadata-internals.h: Likewise.
853
854         * reflection.c (mono_class_bind_generic_parameters): Take and
855         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
856         (mono_reflection_bind_generic_parameters): Use
857         'mono_class_bind_generic_parameters' rather than duplicate the code.
858         * class.c (mono_bounded_array_class_get): Update to changes.
859         * object-internals.h: Likewise.
860
861         * reflection.c (mono_class_bind_generic_parameters): Only support
862         parameterizing generic type definitions.  Remove support for other
863         open types.
864
865 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
866
867         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
868
869         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
870         in the dynamic case.
871
872 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
873
874         * threads.c: When cleaning up thread, reset the Background bit.
875         Fixes bug #81720.
876
877 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
878
879        * metadata.c: Move variable declarations to top of scope.
880        * verify.c: Move variable declarations to top of scope.
881
882        Code is contributed under MIT/X11 license.
883
884 2007-06-08  Raja R Harinath  <rharinath@novell.com>
885
886         * reflection.c (mono_class_bind_generic_parameters): Replace
887         open-coded loop with mono_metadata_inflate_generic_inst.
888
889         * class.c (get_shared_generic_class): Don't call
890         mono_get_shared_generic_inst.  Use the container's own
891         'class_inst'.
892
893         * metadata.c (mono_metadata_load_generic_params): Move
894         initialization of 'context' field here from ...
895         * class.c (mono_class_create_from_typedef): ... here, and ...
896         * loader.c (mono_get_method_from_token): ... here.
897
898         * class.c (get_shared_generic_class): Rename from
899         mono_get_shared_generic_class and make static.
900         (mono_get_shared_generic_inst): Move to metadata.c.
901         * loader.c (mono_get_shared_generic_method): Likewise.
902         * class-internals.h, metadata-internals.h: Update to changes.
903
904         Fix #81830
905         * class.c (mono_class_from_generic_parameter): Don't assume a
906         generic container owner exists.  Generic containers from monodis
907         don't have any.
908
909 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
910
911         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
912         * verify.h: new typedefs to returns the non-verifiable status
913         * verify.c: initial implementation of generics, stack merging and object compatibility check
914
915 2007-06-06  Mark Probst  <mark.probst@gmail.com>
916
917         * class.c, image.c, class-internals.h (MonoImage): class_cache is
918         a MonoInternalHashTable again (fixed bug in internal hash table
919         code).
920
921 2007-06-06  Mark Probst  <mark.probst@gmail.com>
922
923         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
924         MonoInternalHashTable again (fixed bug in internal hash table
925         code).
926
927 2007-06-06  Mark Probst  <mark.probst@gmail.com>
928
929         * class.c, image.c, class-internals.h, domain.c,
930         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
931         changes.  Have to figure out what makes them break the SWF
932         regression.
933
934 2007-06-04  Mark Probst  <mark.probst@gmail.com>
935
936         * class.c, image.c, class-internals.h (MonoImage): class_cache is
937         a MonoInternalHashTable now.
938
939 2007-06-04  Mark Probst  <mark.probst@gmail.com>
940
941         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
942         MonoInternalHashTable now.
943
944 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
945
946         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
947         invoke_impl code.
948
949         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
950
951         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
952         dependent trampoline.
953
954         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
955
956         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
957
958 2007-05-29  Robert Jordan  <robertj@gmx.net>
959
960         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
961
962 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
963
964         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
965
966 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
967
968        * marshal.c: Fix interface lookup loops for
969        cominterop_get_com_slot_for_method and 
970        cominterop_get_method_interface. Only need to lookup
971        if type is a class, else use interface type method is on.
972
973        Code is contributed under MIT/X11 license.
974
975 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
976
977         * reflection.c: HasSecurity can be present even if no specially 
978         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
979         SecurityAttribute). Fix CAS regression tests on buildbot.
980
981 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
982
983        * appdomain.c: Add configure checks for header files.
984        * image.c: Add configure checks for header files.
985        * file-io.c: Add configure checks for header files.
986        * debug-mono-symfile.c: Add configure checks for header files.
987        * threadpool.c: Add configure checks for header files.
988        * console-io.c: Add configure checks for header files.
989        * profiler.c: Add configure checks for header files.
990        * rawbuffer.c: Add configure checks for header files.
991        * icall.c: Add configure checks for header files.
992        * rand.c: Add configure checks for header files.
993        * socket-io.c: Add configure checks for header files.
994
995        Code is contributed under MIT/X11 license.
996
997 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
998
999         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1000         assertion as it breaks the build.
1001         
1002         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1003
1004         * reflection.c (lookup_custom_attr): Make a copy here too.
1005
1006         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1007         dynamic images.
1008
1009         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1010         images.
1011
1012         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1013         info.
1014
1015 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1016
1017         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1018         (load_cattr_value): Ditto.
1019
1020 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1021
1022         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1023
1024 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1025
1026         * threads.c: In "start_wrapper", set apartment_state to MTA if
1027         apartment_state is Unknown and we're running on 2.0 profile or
1028         higher.
1029         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1030         to main method, then set apartment_state to Unknown on 1.0 profile,
1031         and MTA on 2.0 profile.
1032
1033 2007-05-16  Jb Evain  <jb@nurv.fr>
1034
1035         * class-internals.h (MonoDefaults): Add an attribute_class and
1036           customattribute_data_class.
1037         * domain.c (mono_init_internal): Populate them.
1038         * reflection.c: Use them to remove duplicates. Make a vew
1039         MonoClass variables `static'.
1040
1041 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1042
1043         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1044         step in implementing IMT, so that all isinst checks now can go
1045         through the bitmap.
1046         This was needed because vtables for TransparentProxy need to look
1047         like the vtable of the "target" class, so they need to point to
1048         its interface bitmap directly.
1049
1050         * object.c: inside "mono_class_create_runtime_vtable" and
1051         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1052
1053 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1054
1055         * object-internals.h
1056           culture-info.h : added territory field in MonoCulture and
1057           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1058         * locales.c : fill territory field above too.
1059         * culture-info-table.h : regenerated.
1060
1061 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1062
1063         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1064         Fixes #81599.
1065
1066 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1067
1068         * object.c: Always initialize apartment, even if 
1069         there is no custom attributes on entry point.
1070         
1071         Code is contributed under MIT/X11 license.
1072
1073 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1074
1075         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1076         * metadata.c: If no encoding is set, check for unicode
1077         on class.
1078         
1079         Code is contributed under MIT/X11 license.
1080
1081 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1082
1083         * threads.c: Handle if mono_thread_current returns NULL 
1084         
1085         Code is contributed under MIT/X11 license.
1086
1087 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1088
1089         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1090         in start_wrapper. Added mono_thread_init_apartment_state and
1091         mono_thread_cleanup_apartment_state.
1092         * object.c: Initialize thread apartment state on main thread
1093         by checking for STAThreadAttribute on entry point.
1094         * object-internals.h: Add apartment_state field to MonoThread.
1095         * threads-types.h: Add unmanaged definition of 
1096         System.Threading.ApartmentState, MonoThreadApartmentState.
1097         
1098         Code is contributed under MIT/X11 license.
1099         
1100 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1101
1102         * class.c: Fix windows build.
1103         * class-internals.h: Fix windows build.
1104         
1105         Code is contributed under MIT/X11 license.
1106
1107 2007-05-08  Robert Jordan  <robertj@gmx.net>
1108
1109         * process.c (CreateProcess_internal):
1110         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1111         .CreateNoWindow was specified. Fixes #81496.
1112
1113 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1114
1115         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1116         step in implementing IMT, replaced it with two compact arrays
1117         (interfaces_packed and interface_offsets_packed) and a bitmap that
1118         is used for isinst checks (interface_bitmap).
1119
1120         * class.c: (compare_interface_ids): compare function to pass to
1121         bsearch when looking for an interface with a given id.
1122         (mono_class_interface_offset): reimplemented using bsearch on
1123         interfaces_packed, getting the offset from interface_offsets_packed.
1124         (print_implemented_interfaces): utility debugging function.
1125         (setup_interface_offsets): reworked to initialize interfaces_packed,
1126         interface_offsets_packed and interface_bitmap.
1127
1128         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1129         with uses of interfaces_packed and interface_offsets_packed.
1130
1131 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1132
1133         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
1134         mono_class_interface_offset prototype to wrap all accesses to
1135         "MonoClass.interface_offsets".
1136
1137         * class.c: Implemented mono_class_interface_offset, and wrapped all
1138         accesses to "MonoClass.interface_offsets".
1139
1140         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
1141         "MonoClass.interface_offsets".
1142
1143 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1144
1145         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1146         GetMethodFromHandle overloads (bug #78637).
1147
1148 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1149
1150         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1151         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1152
1153 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1154
1155         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1156         #81498.
1157
1158         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1159         gracefully.
1160         (mono_custom_attrs_from_index): Ditto.
1161
1162         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1163         Fixes #81501.
1164
1165 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1166
1167         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1168         is now allocated from a mempool.
1169
1170 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1171
1172         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1173         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1174
1175 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1176
1177         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1178         mono_loader_clear_error () too late. Fixes #81463.
1179
1180 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1181
1182         * culture-info-table.h : regenerated.
1183
1184 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1185
1186         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1187         is missing.
1188
1189 2007-04-25  Dick Porter  <dick@ximian.com>
1190
1191         * Makefile.am: Put the mingw enforced-optimisation back into the
1192         PLATFORM_WIN32 section.
1193
1194 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1195
1196         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1197         patch.
1198
1199         * image.c (mono_image_load_module): New API function to load a module reference.
1200
1201         * image.c (load_modules): Load modules lazily. Fixes #80812.
1202
1203         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1204         
1205         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1206
1207         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1208         to mono_image_load_module_dynamic.
1209
1210 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1211
1212         * marshal.c: Fix calling convention for CCW on non-windows
1213         platforms. STDCALL on windows, CDECL everywhere else to work 
1214         with XPCOM and MainWin COM.
1215         
1216         Code is contributed under MIT/X11 license.
1217
1218 2007-04-23  Martin Baulig  <martin@ximian.com>
1219
1220         Fix #80969.
1221
1222         * loader.c
1223         (method_from_memberref): Added `gboolean *used_context' argument.
1224         (mono_get_method_from_token): Likewise.
1225         (mono_get_method_full): Don't insert the method in the cache when
1226         `used_context' is true.
1227
1228 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1229
1230         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1231
1232         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1233         create new MonoTypes for returned types.
1234         * class.c (mono_generic_class_get_class): Export mono-internal.
1235         * class-internals.h: Update to changes.
1236
1237 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1238
1239         * threadpool.c, threadpool.h, icall-def.h: patch from
1240         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
1241
1242 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
1243
1244         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
1245         
1246         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
1247
1248         * threads.c (mono_thread_get_stack_bounds): New helper function.
1249
1250         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
1251         Correctly compute stack bounds when attaching. Fixes #81394.
1252
1253 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
1254
1255         * reflection.c: fix handling of doubles in custom attributes
1256         for the arm-fpa format (bug #81368).
1257
1258 2007-04-18  Raja R Harinath  <rharinath@novell.com>
1259
1260         * reflection.c (assembly_add_win32_resources): Mildly relax an
1261         bounds check to let the end pointer point just past the end of the
1262         allocated buffer.  (may fix #81384)
1263
1264 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1265
1266         * culture-info-table.h : regenerated.
1267
1268 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
1269
1270         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
1271         the thread is aborted early.
1272
1273 2007-04-05  Dick Porter  <dick@ximian.com>
1274
1275         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
1276         FindFirstFile()/FindNextFile() to find entries.  This lets the
1277         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
1278         81038.
1279
1280         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
1281         the parameters of
1282         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
1283
1284 2007-04-04  Martin Baulig  <martin@ximian.com>
1285
1286         * debug-helpers.c
1287         (mono_method_desc_full_match): Add support for nested classes.
1288
1289 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
1290
1291         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
1292
1293 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
1294
1295         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
1296         waiting for too many threads.
1297
1298 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1299
1300         * environment.c: Fix return value check on uname so we can get the 
1301         executing version on Solaris operating systems.
1302
1303 2007-03-28  Jb Evain  <jbevain@gmail.com>
1304
1305         * class.c (mono_type_get_name_recurse): Complete the
1306         fix for the creation of assembly qualified names for
1307         pointer types. Fixes #81208.
1308
1309 2007-03-27  Dick Porter  <dick@ximian.com>
1310
1311         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
1312         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
1313         changed.
1314
1315         * threads.c
1316         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
1317         the value of ReleaseMutex().
1318
1319 2007-03-27  Dick Porter  <dick@ximian.com>
1320
1321         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
1322         in little-endian order, not network endian, so must be converted
1323         to host endian here.  Fixes bug 80593.
1324
1325 2007-03-22  Jb Evain  <jbevain@gmail.com>
1326
1327         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
1328         qualified names for pointer types. Fixes #81208.
1329
1330 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
1331
1332         * marshal.c: Add support for PreserveSigAttribute. 
1333         
1334         Code is contributed under MIT/X11 license.
1335
1336 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
1337
1338         * process.c: Fix endianness issues. Fixes #81126.
1339
1340         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
1341         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
1342
1343         * image.c (mono_image_lookup_resource): Make this work on big-endian
1344         machines.Change API contract so the caller needs to free the return value.
1345         
1346         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
1347         API change.
1348         
1349 2007-03-14  Martin Baulig  <martin@ximian.com>
1350
1351         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
1352         mono_type_get_desc() as well.
1353
1354 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
1355
1356         * icall.c:  Fix environ access in VS.  
1357         
1358 2007-03-13  Alp Toker  <alp@atoker.com>
1359
1360         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1361         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1362         #63841.
1363
1364 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
1365
1366         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
1367         circular references among dynamic methods. Fixes #81091.
1368
1369         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
1370
1371 2007-03-09  Martin Baulig  <martin@ximian.com>
1372
1373         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
1374
1375 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
1376
1377         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
1378         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
1379         
1380         Code is contributed under MIT/X11 license.
1381         
1382 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
1383
1384         * loader.c: Reapply patch for bug #79424.
1385
1386 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1387
1388         * metadata.c (mono_type_to_unmanaged): Only convert object to
1389         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
1390
1391 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
1392
1393         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
1394         (and incorrectly set) is_reference field from MonoGenericInst.
1395
1396 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1397
1398         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
1399         a little earlier.
1400
1401         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
1402
1403         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
1404
1405 2007-03-05  Miguel de Icaza  <miguel@novell.com>
1406
1407         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
1408         FileOptions.1 value to mean "temporary", map that to
1409         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
1410
1411         Fixes 80688
1412
1413 2007-03-03  Marek Habersack  <mhabersack@novell.com>
1414
1415         * appdomain.c: implement MS .Net style shadow copying. Copies of
1416         the assemblies are made in a subdirectory of the dynamic base
1417         directory, the assembly names are preserved.
1418         Copy .mdb and .config files along with the assemblies being shadowed.
1419
1420 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1421
1422         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
1423         (emit_marshal_handleref): Ditto.
1424
1425         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
1426         on Visual C++. Fixes #80671.
1427
1428 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
1429
1430         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
1431         for clone operations.
1432
1433 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1434
1435         * marshal.c: Fix warnings.
1436
1437 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
1438
1439         * loader.c: allow case-insensitive matching of the dll name
1440         in dllmap handling when prefixed with "i:".
1441
1442 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
1443
1444         * threads.c: Fix #ifdef for dummy_apc function for VS.
1445
1446 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
1447
1448         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
1449
1450 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
1451         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
1452         giving precedence to the methods with a fully qualified name
1453         (InterfaceName.MethodName) when building the interface sections
1454         of the vtable.
1455
1456 2007-02-16  Dick Porter  <dick@ximian.com>
1457
1458         * threadpool.c (append_job): Fix fast-path array handling, so it's
1459         less likely the array will grow exponentially when the load is
1460         heavy.
1461
1462 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1463
1464         * metadata-internals.h, loader.c: fix dllmap lookup order
1465         for non-function maps, too, and prepare for fallback code.
1466
1467 2007-02-12  Robert Jordan  <robertj@gmx.net>
1468
1469         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
1470         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
1471         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
1472         GlobalFree. Fixes a part of bug #77075.
1473
1474 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
1475
1476         * loader.c: implemented typedef parent in field memberref.
1477
1478 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
1479
1480         * marshal.c: Fix warnings and remember to call Release on
1481         IUnknown of RCW.
1482         
1483         Code is contributed under MIT/X11 license.
1484
1485 2007-02-10  Miguel de Icaza  <miguel@novell.com>
1486
1487         * class-internals.h: Add MonoHandleRef definition, and
1488         handleref_class to mono_defaults. 
1489
1490         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
1491         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
1492
1493         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
1494         (do nothing on this stage)
1495         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
1496         (emit_marshal_handleref): New method, used for argument handling
1497         of HandleRefs. 
1498
1499 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
1500
1501         * class.c (mono_class_setup_parent): Lazily init com types.
1502         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
1503         init com types.
1504         * object.c (mono_remote_class_vtable): Lazily init com types.
1505         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
1506         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
1507         * domain-internals.h: Expose mono_init_com_types.
1508         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
1509         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
1510         Add support for COM Callable Wrapper marshalling.
1511         * marshal.h: Add icall definitions.
1512         * gc.c: Handle freeing of CCWs in finalizer code.
1513         
1514         Code is contributed under MIT/X11 license.
1515
1516 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
1517
1518         * reflection.c: changed all the signature encoding code to use
1519         a variable-sized buffer.
1520
1521 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1522
1523         * marshal.c: locking fixes: never take the loader lock
1524         or other runtime locks when holding the marshal lock
1525         (fixes bug#80664).
1526
1527 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
1528
1529         * marshal.c: make the delegate function pointer mapping
1530         work for the moving GC.
1531
1532 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
1533
1534         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
1535         for bug #80618.
1536
1537 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1538
1539         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
1540         gmodule.
1541
1542 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
1543
1544         * threadpool.c: made the code moving-GC safe.
1545
1546 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1547
1548         * assembly.c, boehm-gc.c, class-internals.h, class.c,
1549         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
1550         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
1551         warning cleanup.
1552         * reflection.c: warning cleanup, some threading and moving GC fixes.
1553
1554 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
1555
1556         * class.c, loader.c: create the needed Set/Get/Address array methods
1557         as well as the .ctors in mono_class_init (), fixes bug #80567.
1558
1559 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
1560
1561         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
1562         we doesn't decrease its alignment. Should fix the sparc build.
1563
1564 2007-01-24  Dick Porter  <dick@ximian.com>
1565
1566         * socket-io.c
1567         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
1568         Create the returned object if we need to ignore an unsupported
1569         socket option.  Fixes a segfault reported by Atsushi.
1570
1571 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
1572
1573         * class.c, object.c: restrict GC-tracked fields to
1574         UIntPtr fields used inside corlib, so we provide better
1575         type info to the GC and also allow broken packing as in
1576         bug #80580.
1577
1578 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
1579
1580         * sgen-gc.c: removed duplicated function.
1581
1582 2007-01-19  Miguel de Icaza  <miguel@novell.com>
1583
1584         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
1585         value that means that the value is not supported, but that we
1586         should not return a failure, but instead report this as a
1587         successful operation.
1588
1589 2007-01-19  Raja R Harinath  <rharinath@novell.com>
1590
1591         Fix tests/bug79956.2.il
1592         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
1593         (mono_generic_class_get_class): If the generic definition in an
1594         enum, copy over other fields related to it.
1595
1596 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
1597
1598         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
1599         genericinst enums (bug #79215).
1600
1601 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
1602         * class.c: Fix bug 80307.
1603
1604 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
1605
1606         * image.c: if the file table is not present, try to load
1607         all the modules, since we don't have info about them
1608         having or not metadata (bug #80517).
1609         * assembly.c: allow mono_assembly_load_references () to
1610         work for netmodules.
1611
1612 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1613
1614         * image.c, metadata-internals.h, object.c: execute module
1615         cctors when running on the 2 runtime if present (bug #80487).
1616
1617 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
1618
1619         * icall.c: optimized InitializeArray() on bigendian.
1620
1621 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
1622
1623         * icall.c: fix for the broken ARM FPA double format.
1624
1625 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
1626
1627         * icall.c: handle endian issues for r4 and r8 types, too, in
1628         the InitializeArray() icall.
1629
1630 2007-01-15  Miguel de Icaza  <miguel@novell.com>
1631
1632         * loader.c (mono_loader_error_prepare_exception): Clear the error
1633         once we have extracted the information from it, do this before we
1634         call into the JIT's class loading mechanisms.
1635
1636         * object.c (mono_class_create_runtime_vtable): Do not clear the
1637         loader error before calling mono_class_get_exception_for_failure
1638         as the loader error is needed inside
1639         mono_class_get_exception_for_failure to throw the error (thinko).
1640
1641         Fixes #80521
1642         
1643 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
1644
1645         * reflection.c: align fields rva data so it's faster to load at
1646         runtime.
1647
1648 2007-01-12  Raja R Harinath  <rharinath@novell.com>
1649
1650         Prepare to simplify GenericMethod handling.
1651         * class-internals.h (mono_method_get_context): New accessor function.
1652         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
1653         rather than directly accessing '->context' field.
1654
1655         * class-internals.h (_MonoGenericParam.method): Move ...
1656         (_MonoGenericContainer): ... here.  Add into union with klass field.
1657         * class.c, icall.c, loader.c, metadata.c, reflection.c:
1658         Update to changes.
1659
1660 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
1661
1662         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
1663         the wrapper type enum and reduce relocations.
1664
1665 2007-01-12  Raja R Harinath  <rharinath@novell.com>
1666
1667         * reflection.c (inflate_mono_method): Reuse method instantiation
1668         from the generic method, if available.
1669
1670 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1671
1672         * marshal.c (emit_marshal_variant): Fix conv_arg
1673         type in last commit, based on whether parameter is byref.
1674         
1675 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1676
1677         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
1678         marshalling.
1679         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
1680         MONO_TYPE_OBJECT back for VARIANT support.
1681
1682 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1683
1684         * marshal.c, marshal.h, icall-def.h: Implement 
1685         Marshal.ReAllocCoTaskMem.
1686
1687 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
1688
1689         * marshal.c: memory retention fixes: use the proper
1690         image cache for runtime_invoke method lookups.
1691
1692 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
1693
1694         * mempool.c: added code to help debug mempool allocations.
1695
1696 2007-01-11  Dick Porter  <dick@ximian.com>
1697
1698         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
1699         support (experimenting with faking it with IP_MTU_DISCOVER for
1700         systems that don't have IP_DONTFRAGMENT.)
1701         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
1702         icall.
1703
1704         * icall-def.h: new System.Net.Sockets.Disconnect icall.
1705
1706         * socket-io.h: Add new fields to MonoSocketAsyncResult
1707         corresponding to the new ones in Socket.cs.
1708
1709 2007-01-11  Raja R Harinath  <rharinath@novell.com>
1710
1711         Fix IronPython regression mentioned in #80249
1712         * metadata.c (do_mono_metadata_parse_generic_class): Clear
1713         'cached_context' field, since it may have been initialized as a
1714         side-effect of metadata parsing.
1715
1716         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
1717         (_MonoGenericClass.cached_class): Move here and rename from lone
1718         remaining field of ...
1719         (_MonoInflatedGenericClass): ... this.  Remove.
1720         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
1721         to changes.
1722
1723         Fix mcs/tests/test-128.cs regression.
1724         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
1725         2007-01-10 change below.
1726         [MONO_TYPE_OBJECT]: Recurse into array case.
1727
1728 2007-01-11  Raja R Harinath  <harinath@gmail.com>
1729
1730         * class-internals.h (mono_get_inflated_generic_class): Remove.
1731         * class.c (mono_get_inflated_generic_class): Remove.
1732         (mono_generic_class_get_class): Rename from
1733         mono_class_create_generic.
1734         (mono_class_from_mono_type) [GENERICINST]: Use it.
1735         * reflection.c, metadata.c: Update to changes.  Use
1736         'mono_class_from_mono_type'.
1737
1738 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
1739
1740         * reflection.c: use passed type when encoding an array element
1741         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
1742
1743 2007-01-09  Robert Jordan  <robertj@gmx.net>
1744
1745         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
1746         result arguments (someDelegate.EndInvoke (unrelatedAres)).
1747         Fixes bug #80392.
1748
1749 2007-01-09  Raja R Harinath  <rharinath@novell.com>
1750
1751         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
1752
1753         * object.c (set_value): Avoid aliasing between type->data.klass
1754         and type->data.generic_class.
1755
1756         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
1757
1758 2007-01-08  Raja R Harinath  <rharinath@novell.com>
1759
1760         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
1761         between type->data.klass and type->data.generic_class.
1762
1763 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
1764
1765         * marshal.c: In MS.NET, StringBuilder objects are not copied by
1766         value in out parameters.
1767
1768 2007-01-08  Raja R Harinath  <rharinath@novell.com>
1769
1770         Simplify invariant for MonoGenericClass::klass field.
1771         * class.c (mono_class_create_generic): Verify 'klass' is null.
1772         * metadata.c (do_mono_metadata_parse_generic_class): Don't
1773         initialize 'klass' field.
1774
1775 2007-01-05  Raja R Harinath  <rharinath@novell.com>
1776
1777         Ongoing work to avoid redundant data and simplify invariants.
1778         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
1779         'generic_class', and change type to a GenericInst.
1780         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
1781         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1782
1783 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
1784
1785         * class.c : skip io-layer under PLATFORM_WIN32.
1786
1787 2007-01-03  Tor Lillqvist  <tml@novell.com>
1788
1789         Fix #80305: In a bundled executable, look in the bundled exe
1790         assembly to determine the runtime version. Add the possibility to
1791         bundle also the machine.config file.
1792         
1793         * assembly.c (mono_assembly_open_from_bundle): Make
1794         non-static. Allow being called even if we have no bundled
1795         assemblies, and return NULL right away in that case.
1796
1797         * domain-internals.h: Declare mono_assembly_open_from_bundle()
1798         here.
1799
1800         * domain.c (app_config_parse): Take an assembly exe file name as
1801         parameter instead of a config file name. Check for a bundled
1802         config file for that assembly by calling
1803         mono_config_string_for_assembly_file() (see below) before looking
1804         for one in the file system.
1805         (get_runtimes_from_exe): Corrsponding change to call of
1806         app_config_parse().
1807         (get_runtimes_from_exe): Check for bundled assembly exe file first
1808         by calling mono_assembly_open_from_bundle(). If no bundled
1809         assembly exe file is found, call mono_image_open() as before to
1810         look it up in the file system.
1811
1812         * mono-config.c: Add variable bundled_machinec_onfig.
1813         (mono_config_string_for_assembly_file): New function.
1814         (mono_config_for_assembly): Move code snippet that looks for a
1815         bundled assembly .config file into the above new function. Call
1816         it.
1817         (mono_register_machine_config, mono_get_machine_config): New
1818         functions to set and retrieve
1819
1820         * assembly.h: Declare mono_register_machine_config().
1821
1822         * mono-config.h: Declare mono_get_machine_config() and
1823         mono_config_string_for_assembly_file().
1824
1825         * icall.c: No declaration of environ necessary on Win32. It is
1826         declared (as a macro expanding to a function call) in stdlib.h.
1827         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
1828         New internal mono function. Returns the value of
1829         mono_get_machine_config() as a Mono string.
1830
1831         * icall-def.h: Add get_bundled_machine_config().
1832
1833 2007-01-04  Raja R Harinath  <rharinath@novell.com>
1834
1835         Remove redundant field
1836         * class-internals.h (_MonoGenericContext.container): Remove field.
1837         * loader.c (mono_method_get_signature_full): Don't parse a
1838         "container" for a signature parse when the signature is inflated
1839         immediately.
1840         (method_from_methodspec): Likewise, for a generic_inst.
1841         * class.c, metadata.c, reflection.c: Update to changes.
1842
1843 2006-01-04  Raja R Harinath  <rharinath@novell.com>
1844
1845         * class-internals.h (_MonoGenericClass): Rename 'context' field to
1846         'cached_context', and change semantics -- it starts off NULL, and
1847         is initialized on demand.
1848         * class.c (mono_generic_class_get_context): New accessor to
1849         replace 'context' field accesses.
1850         (mono_class_get_context): New helper.
1851         (*): Update to changes.
1852         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
1853
1854 2007-01-03  Miguel de Icaza  <miguel@novell.com>
1855
1856         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
1857         before the memcpy.   Fixes Marshal2 regression.
1858
1859 2007-01-02  Jb Evain  <jbevain@gmail.com>
1860
1861         * blob.h: add a MONO_TYPE_ENUM definition
1862         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
1863         fix the encoding of arrays of enums in custom attributes.
1864
1865         Fixes #79666.
1866
1867 2007-01-01  Miguel de Icaza  <miguel@novell.com>
1868
1869         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
1870         string is null terminated, but only cut the string short if it
1871         overflows the buffer.   
1872         
1873         (mono_string_to_byvalstr): Also fix this routine.   The code here
1874         was not properly terminating a string (it was only terminated
1875         because of the previous catch-all memset). 
1876
1877         I left the memset, because I do not know if applications expect
1878         the runtime to clear this region. 
1879
1880         Fixes #79944.
1881
1882         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
1883         Clear the error before returning to unmanaged code to prevent the
1884         runtime from being confused later on (fixes  80420).
1885         (ves_icall_type_from_name): Always call mono_loader_clear_error
1886         after parsing a type that could have failed.
1887         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
1888
1889         * loader.c (mono_loader_clear_error): Fix indentation.
1890
1891 2006-12-28  Martin Baulig  <martin@ximian.com>
1892
1893         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
1894
1895 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
1896
1897         * reflection.c: patch from Rolf Bjarne Kvinge to fix
1898         getting a token for an EnumBuilder.
1899
1900 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
1901
1902         * reflection.c: be more careful in case resource generation
1903         fails to create the data array.
1904
1905 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
1906
1907         * sgen-gc.c: write barrier for clone and fix unregister handles.
1908
1909 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
1910
1911         * reflection.c: some fixes needed in the generics code for the moving GC.
1912
1913 2006-12-22  Robert Jordan  <robertj@gmx.net>
1914
1915         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
1916         account. Fixes bug #80299.
1917
1918 2006-12-21  Raja R Harinath  <rharinath@novell.com>
1919
1920         Fix WaitHandle usage in delegates.
1921         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
1922         * object.c (mono_wait_handle_new): Use the property set method to
1923         initialize the handle.
1924         (mono_wait_handle_get_handle): New.
1925         * threadpool.c (mono_async_invoke): Use it.
1926         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
1927         Likewise.
1928         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
1929
1930 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
1931
1932         * marshal.c (emit_marshal): Call emit_marshal_variant and
1933         emit_marshal_com_interface when applicable.
1934         (emit_marshal_variant, emit_marshal_com_interface): Add
1935         methods for this case and remove if's from emit_marshal_object.
1936         
1937 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
1938
1939         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
1940
1941 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
1942
1943         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
1944         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
1945         and GlobalFree on Windows. Remove FIXME.
1946
1947 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
1948
1949         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
1950         implementation for managed objects.
1951
1952 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
1953
1954         * object.c: implemented code to be used for checking
1955         that no reference field overlaps with non-references.
1956
1957 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1958
1959         * threadpool.c: fix queue code to be compatible with the
1960         moving GC.
1961
1962 2006-12-18  Miguel de Icaza  <miguel@novell.com>
1963
1964         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
1965         in structures by throwing ArgumentNullException.
1966
1967         (emit_marshal_safehandle): Also when they are null parameters.
1968
1969         (emit_marshal_safehandle): Add support for ref
1970         SafeHandles parameters
1971
1972 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1973
1974         * profiler.c: updated to use the mono-dl API instead of
1975         gmodule.
1976
1977 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1978
1979         * profiler.c: updated to use the mono-dl dynamic loading
1980         API instead of gmodule.
1981
1982 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
1983
1984         * profiler.c: use readlink, older versions of glib don't have
1985         g_file_read_link ().
1986
1987 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1988
1989         * profiler.c: try to detect the path to mono if libc fails to provide
1990         a useful name (bug #80286).
1991
1992 2006-12-16  Raja R Harinath  <rharinath@novell.com>
1993
1994         Fix #80242
1995         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
1996         instance, use the generic type definition instead.
1997         (ves_icall_Type_GetNestedTypes): Likewise.
1998         * class.c (mono_class_create_generic): Always set the
1999         nested_classes of a generic instance to NULL, even if the generic
2000         type definition has nested types.
2001
2002 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2003
2004         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2005         and fix on Linux.
2006         
2007 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2008
2009         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2010         my arguments were in the wrong order.   I also fixed the Windows
2011         version which seems to have had the same issue.
2012
2013         (mono_free_bstr): On Unix, this is g_free.
2014         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2015         conversions (for the tests in corlib to pass).
2016
2017 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2018
2019         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2020         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2021         exception if a ref SafeHandle in a struct has changed).
2022         
2023         (emit_struct_conv): Do not perform layout checks for classes
2024         derived from SafeHandle, as those are specially handled. 
2025
2026         (emit_object_to_ptr_conv): Add support for
2027         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2028
2029         (emit_marshal_safehandle): Implement conversion of return values
2030         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2031         
2032         * threads.c: WaitHandle now is compiled with two different handles
2033         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2034         for 2.0.
2035         
2036         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2037         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2038         these routines to cope with both kinds of fields.
2039
2040 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2041
2042         * metadata.c (mono_type_to_unmanaged): Handle the case where
2043         type->data.klass is a SafeHandle, and in that case, return the
2044         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2045         MONO_MARSHAL_CONV_SAFEHANDLE. 
2046
2047 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2048
2049         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2050         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2051         calling emit_marshal_object.
2052
2053         (emit_marshal_safehandle): Implement marshalling of
2054         SafeHandle parameters (no ref support yet).
2055
2056         (MarshalAction): Document the defines as I implement
2057         them for SafeHandle.
2058
2059         (emit_marshal_object): indentation police.
2060
2061         * class-internals.h: Define MonoSafeHandle.
2062         Add safehandle_class to MonoDefaults type.
2063
2064         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2065         list of classes to check for fields. 
2066
2067         * domain.c (mono_init_internal): Add SafeHandle to the list of
2068         mono_defaults loaded.
2069
2070 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2071
2072         Fix #80253
2073         * reflection.c (mono_reflection_bind_generic_parameters): If the
2074         generic type definition is a type builder, ensure that it is fully
2075         initialized before instantiating it.  Kill some dead code.
2076
2077 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2078
2079         * object.c: clear the loader_error () before loading
2080         more metadata stuff (bug #80258).
2081
2082 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2083
2084         * icall.c, icall-defs.h: type modifiers icalls for
2085         parameters and properties.
2086
2087 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2088
2089         * object.c, icall.c: fixed warnings.
2090
2091 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2092
2093         * marshal.c: fixed a couple of leaks and coding style in a few places.
2094
2095 2006-12-08  Dick Porter  <dick@ximian.com>
2096
2097         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2098         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2099         80173.
2100
2101 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2102
2103         * process.c: ProcessStartInfo may have only filename set and
2104         arguments can be NULL.
2105
2106 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2107
2108         * icall.c: fix leak found by Robert Jordan.
2109
2110 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2111
2112         * marshal.c, marshal.h: generate managed method to access an element
2113         of a multi-dimensional array.
2114
2115 2006-11-30  Paolo Molaro (lupus@ximian.com)
2116
2117         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2118
2119 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2120
2121         * icall.c: back out GetFields () fix until the serialization code is
2122         fixed to not depend on the incorrect behaviour.
2123
2124 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2125
2126         * profiler.c: provide defaults if none are set.
2127
2128 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2129
2130         * Makefile.am, attrdefs.h: new public header file with
2131         constants for attributes for use by embedders.
2132
2133 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2134
2135         * icall.c: GetFields () fix for bug #80064.
2136
2137 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
2138
2139         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
2140         removed long unused icalls.
2141
2142 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2143   
2144         * marshal.c: 
2145                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2146                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2147                 can be generated without a delegate class.
2148                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2149         
2150         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2151
2152 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2153
2154         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2155         #80069.
2156
2157 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2158
2159         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2160         icall-def.h: added icalls needed by System.GC.
2161
2162 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2163
2164         * loader.c: ensure the class in catch clauses is handled
2165         correctly for generics methods (fixes bug#79980).
2166
2167 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2168
2169         * monitor.h, monitor.c: added mono_locks_dump () function
2170         to help debug deadlocks involving managed locks.
2171
2172 2006-11-13  Dick Porter  <dick@ximian.com>
2173
2174         * file-io.c (get_file_attributes): If the file is a symlink try
2175         and get the stat data for the target, but also add the
2176         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2177         the specs for the windows symlink support, but will probably have
2178         to be reworked when I have test data from a vista machine.  Fixes
2179         bug 79887.
2180
2181 2006-11-13  Dick Porter  <dick@ximian.com>
2182
2183         * gc.c (mono_domain_finalize): 
2184         * marshal.c (mono_delegate_begin_invoke): 
2185         * threadpool.c (socket_io_init, mono_thread_pool_init)
2186         (mono_thread_pool_finish): 
2187         * monitor.c (mono_monitor_try_enter_internal): 
2188         * threads.c (mono_thread_resume, mono_thread_init)
2189         (mono_thread_suspend_all_other_threads)
2190         (mono_thread_execute_interruption): 
2191         * appdomain.c (mono_domain_unload): Check for NULL error returns
2192         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2193         75733.
2194
2195 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2196
2197         * process.c
2198         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2199         Only close the handle if the value of the handle is not
2200         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2201         robust.
2202
2203         Improvement for #75733, so that we do not run into this problem. 
2204
2205         
2206         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2207         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2208         internal variables.  Fixes #79462 
2209         
2210
2211 2006-11-09  Dick Porter  <dick@ximian.com>
2212
2213         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2214         Use poll() not select().  Fixes bug 79397.
2215
2216 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2217
2218         Fix #79872
2219         * assembly.c (mono_assembly_load_from_full): Check that the given
2220         image has an assembly manifest.
2221
2222 2006-11-09  Ankit Jain  <jankit@novell.com>
2223
2224         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2225         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2226         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2227
2228 2006-11-07  Dick Porter  <dick@ximian.com>
2229
2230         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2231         Put the old resolver behaviour back for pre-2.0 profiles.
2232
2233 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2234
2235         * threadpool.c: precise GC and locking fixes.
2236
2237 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2238
2239         * class.c: don't load types that have an explicit unaligned
2240         managed reference. Provide better info in the TypeLoad exception.
2241         Part of the fix for bug #79744.
2242         * object.c: use the correct check for class type load issues.
2243
2244 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2245
2246         * class.c: enforce alignment of fields with managed references
2247         even when Pack=1 is forced by the user (bug #77788).
2248
2249 2006-11-03  Dick Porter  <dick@ximian.com>
2250
2251         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2252         If the address reverse lookup fails, return it as the hostname
2253         anyway.  Fixes bug 79721.
2254
2255 2006-11-03  Dick Porter  <dick@ximian.com>
2256
2257         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
2258         Fix build on Windows.
2259
2260 2006-11-02  Dick Porter  <dick@ximian.com>
2261
2262         * icall-def.h: 
2263         * object-internals.h: 
2264         * exception.c (mono_get_exception_thread_interrupted): 
2265         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
2266         Fixes bug 74525.
2267
2268         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
2269         Check for pending Thread.Interrupt.
2270
2271 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
2272         * loader.c: Fixed bug 79684.
2273
2274 2006-10-27  Dick Porter  <dick@ximian.com>
2275
2276         * file-io.c (get_file_attributes): Force symlinks to directories
2277         to be returned as a regular file.  Fixes bug 79733.
2278 2006-10-26  Dick Porter  <dick@ximian.com>
2279
2280         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
2281         CreateFile to open a directory then we need to set the
2282         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
2283
2284 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
2285
2286         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
2287         friends.
2288
2289 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2290
2291         * sgengc.c: small cleanup of timer code.
2292
2293 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2294
2295         * sgen-gc.c: fix some warnings and start adding support for
2296         complete object removal on domain unload.
2297
2298 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
2299
2300         * assembly.c: build_assembly_name should not consider a version
2301         number without build or revision number invalid. Fixes bug #79715.
2302
2303 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
2304
2305         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
2306         call kernel32 function OutputDebugString directly.
2307         
2308         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2309         
2310 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
2311
2312         * reflection.c: small cleanup, using a function to insert a MonoString
2313         in the string heap.
2314
2315 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
2316
2317         * reflection.c: moving GC fixes.
2318
2319 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
2320
2321         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
2322         all the objects with finalizers belonging to an unloading appdomain.
2323
2324 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
2325
2326         * sgen-gc.c: added ability to allocate even when the nursery is fully
2327         pinned and fixed a couple of bugs.
2328
2329 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2330
2331         * threads.h: Revert the last change for now.
2332
2333         * threads.h (mono_thread_get_pending_exception): Rename this to
2334         mono_thread_get_undeniable_exception ().
2335
2336 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
2337
2338         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
2339         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
2340         when fname does not refer to valid assembly. This result in a more
2341         meaningful error message.
2342         * exception.c: added mono_get_exception_bad_image_format2 which 
2343         constructs a BadImageFormatException using the ctor taking a custom
2344         message and the file name. Passing in a NULL msg results in a default
2345         message.
2346         * exception.h: define mono_get_exception_bad_image_format2 function.
2347         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
2348         when file name pointed to an invalid IL image. Use 
2349         mono_get_exception_file_not_found2 to construct FileNotFoundException,
2350         as this results in a more meaningful error message.
2351
2352 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2353
2354         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
2355         #79465.
2356
2357 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
2358
2359         * metadata.c (mono_type_size): Change the align parameter to guint32 for
2360         consistency with the other _size functions.
2361         (mono_type_stack_size): Ditto.
2362
2363         * class.c object.c icall.c: Fix warnings caused by the above change.
2364
2365         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
2366
2367         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
2368
2369         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
2370
2371 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2372
2373         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
2374         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
2375         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
2376         threadpool.h, threads-types.h: mark more internal functions.
2377
2378 2006-10-11  Dick Porter  <dick@ximian.com>
2379
2380         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2381         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
2382         reproduce the bug even before applying the fix.)
2383
2384 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
2385
2386         * reflection.c: allow retrieving attributes for arguments in generic
2387         methods (bug #79241).
2388
2389 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
2390
2391         * debug-mono-symfile.c: properly check fopen () result (found by
2392         coverity).
2393
2394 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
2395
2396         * reflection.c: make error message clearer and fixed two
2397         issuelets found by Coverity.
2398
2399 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
2400
2401         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
2402
2403 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2404
2405         * object-internals.h, gc-internal.h, profiler-private.h:
2406         mark internal functions.
2407
2408 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2409
2410         * reflection.c: put data in the text section.
2411         * icall.c: recognize more types in type_from_typename ().
2412         * process.c, marshal.c: added some GC FIXMEs.
2413
2414 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2415
2416         * loader.c: check for NULL before initializing.
2417
2418 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
2419
2420         * gc.c (finalizer_thread): Use a non-alertable wait here.
2421
2422         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
2423         until the correct solution is found.
2424
2425 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2426
2427         * reflection.c (mono_module_get_object): Avoid an assert when operating on
2428         modules with no metadata. Fixes #79596.
2429
2430         * image.c (load_metadata_ptrs): Put back the error message when
2431         the #- heap is encountered since the support is not complete yet.
2432
2433 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2434
2435         * gc.c: do not allow the user to SuppressFinalize () a
2436         delegate because it would leak the trampoline if present.
2437
2438 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2439
2440         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
2441         PropertyPtr table.
2442
2443 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
2444
2445         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
2446
2447         * metadata.c (mono_metadata_get_param_attrs): Ditto.
2448
2449         * row-indexes.h: Add definitions for *Ptr tables.
2450
2451         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
2452
2453         * metadata.c (mono_metadata_translate_token_index): New helper function to
2454         translate table indexes used in uncompressed metadata.
2455         (mono_metadata_decode_table_row): Ditto.
2456         (mono_metadata_decode_table_row_col): Ditto.
2457
2458         * metadata.c: Add table schema for *Ptr tables.
2459
2460         * class.c loader.c: Use the new helper function to access the affected metadata
2461         tables.
2462         
2463         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
2464         #38532.
2465         
2466 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
2467
2468         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
2469         sequences which can be unbounded in size. Fixes #79583.
2470
2471 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
2472
2473         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
2474         static initialization.
2475
2476         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
2477
2478         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
2479
2480         * domain.c (mono_domain_free): Free up type_init_exception_hash.
2481
2482         * object.c (mono_runtime_class_init): Implement correct semantics when a static
2483         ctor fails, i.e. throw the same exception on subsequent accesses.
2484         
2485 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
2486
2487         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
2488         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
2489         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
2490         Handle marshalling of interfaces and VARIANTs contained in structs.
2491         
2492         Code is contributed under MIT/X11 license.
2493         
2494 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
2495
2496         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
2497         
2498         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
2499         mempool.
2500
2501 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2502
2503         * console-io.c: ignore previous SIGINT handler.
2504
2505 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
2506
2507         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
2508         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
2509         #79460, #79461, #79485.
2510
2511         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
2512
2513         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
2514         #79217.
2515
2516 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
2517
2518         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
2519         could be generated from it.
2520
2521 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
2522
2523         * rand.c: fix read loop to correctly handle EINTR.
2524
2525 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2526
2527         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
2528         internal calls are defined to keep methods closer to the declaring
2529         type and allow a significant reduction in runtime relocations and
2530         memory usage.
2531
2532 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
2533
2534         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
2535         exception message to have FileNotFoundException use the default
2536         assembly load error message. Fixes bug #79426.
2537         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
2538
2539 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2540
2541         * threadpool.c: (start_thread_or_queue) use the root domain when
2542         creating the thread instead of the async object one.
2543
2544 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
2545
2546         * class.c, object.c, class-internals.h, reflection.c:
2547         for arrays, store element_size inside MonoClass (speedup
2548         for array object creation).
2549
2550 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
2551
2552         * icall.c: fixed CodeBase to use the file name and not the module
2553         name (bug #79365).
2554
2555 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
2556
2557         * mono-debug.c, mono-debug.h: export find_method as
2558         mono_debug_find_method ().
2559
2560 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2561
2562         * debug-helpers.c, class-internals.h: added a few functions useful
2563         when debugging under gdb.
2564
2565 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2566
2567         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
2568         characters that need special handling.
2569
2570 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
2571
2572         * mono-config.c: make the os/cpu specification more flexible,
2573         allowing lists and negation.
2574
2575 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
2576
2577         * marshal.c: COM Interop fixes. Handle case where method->klass.
2578         is interface. Handle BSTR/MonoString when null. Use CDECL as 
2579         calling convention on non-windows platforms. This is for
2580         compatibility with XPCOM and MainWin COM.
2581         
2582         Code is contributed under MIT/X11 license.
2583         
2584
2585 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
2586
2587         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
2588         correctly. Fixes #79217.
2589
2590         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
2591
2592 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
2593
2594         * mono-config.c: allow both an os and cpu attribute for dllmap
2595         and dllentry elemnets to enable a single config file to be used
2596         for multiple architectures.
2597
2598 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
2599
2600         * loader.c: MonoLoaderError was cleared too soon on load failure.
2601         Fixes bug #79424.
2602
2603 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
2604
2605         * icall.c: use the defining class vtable when accessing a
2606         static field, not a pobblibly derived class.
2607
2608 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
2609
2610         * icall.c string-icalls.c: Remove references to unicode.h.
2611
2612         * unicode.h unicode.c Makefile.am: Remove these unused source files.
2613
2614         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
2615
2616         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
2617         indicating the image where custom marshaller types should be looked up.
2618         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
2619         custom marshallers, instead of corlib. Fixes #79425.
2620
2621 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
2622
2623         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
2624
2625 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
2626
2627         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
2628         Implement Environment.ProcessorCount.
2629         
2630         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
2631         Implement Environment.ProcessorCount.
2632         
2633         * icall.c: 
2634         Add Environment.ProcessorCount icall.
2635         
2636         Patch by Jason McFall.
2637
2638 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2639
2640         * assembly.c: don't append .exe/.dll when the filename already contains
2641         one of those extensions.
2642
2643 2006-09-12  Martin Baulig  <martin@ximian.com>
2644
2645         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
2646         to array interfaces.
2647
2648 2006-09-11  Martin Baulig  <martin@ximian.com>
2649
2650         * reflection.c (mono_image_build_metadata): Create the
2651         MethodImpl's after emitting all types and methods, so we don't
2652         need another fixup pass for them.
2653
2654 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
2655
2656         * class.c (mono_class_from_name_case): Fix regression introduced by the last
2657         change.
2658
2659 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
2660
2661         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
2662         unload.
2663
2664 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
2665
2666         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
2667         args is not set. Fixes #78926.
2668
2669 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
2670
2671         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
2672
2673         * image.c (load_class_names): Move this to class.c, and rename it to 
2674         'mono_image_init_name_cache'.
2675         (load_modules): Fix a warning.
2676
2677         * class.c icall.c image.c: Initialize image->name_cache lazily.
2678
2679         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
2680         on its name using information in the AOT file.
2681
2682         * class.c (mono_class_from_name): Use the new hook function.
2683
2684 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
2685
2686         * reflection.c (mono_param_get_objects): Handle enum default parameter values
2687         correctly.
2688
2689         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
2690         Fixes #79289.
2691         
2692 2006-09-06  Martin Baulig  <martin@ximian.com>
2693
2694         * icall.c (mono_lookup_internal_call): Small fix.
2695
2696 2006-09-05  Raja R Harinath  <rharinath@novell.com>
2697
2698         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
2699         double g_free.
2700
2701 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
2702
2703         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
2704         when --debug is specified.
2705
2706 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
2707
2708         * class.c (setup_generic_array_ifaces): Fix a warning.
2709
2710 2006-09-04  Miguel de Icaza  <miguel@novell.com>
2711
2712         * Temporarily remove the patch to assemly.c that checks the
2713         assembly versions as it breaks our gacutil.
2714
2715 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
2716
2717         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
2718
2719         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
2720         a net 1.0 runtime.
2721
2722         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
2723         created using the default ctor. Fixes #79152.
2724         (mono_string_builder_to_utf16): Ditto.
2725
2726 2006-09-01  Martin Baulig  <martin@ximian.com>
2727
2728         Fix handling of the generic array interfaces.
2729
2730         * class-internals.h
2731         (MonoDefaults): Removed `generic_array_class' and added
2732         `generic_ilist' class.
2733
2734         * class.c
2735         (mono_bounded_array_class_get): Add the new generic array interfaces.
2736         (setup_generic_array_ifaces): New static method; create vtable
2737         entries for each method in the generic array interfaces.
2738
2739         * metadata.c
2740         (select_container): Allow "parent-less" generic methods.
2741
2742         * marshal.c
2743         (mono_marshal_get_generic_array_helper): New public method.
2744
2745         * icall.c
2746         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
2747         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
2748         moved the interncall into System.Array.
2749
2750 2006-09-01  Raja R Harinath  <rharinath@novell.com>
2751
2752         A few more cases of avoiding work on types with ->byref set.
2753         Has the real fix for #79238
2754         * icall.c (is_generic_parameter): New helper.
2755         (ves_icall_Type_GetGenericParameterPosition): Use it.
2756         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
2757         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
2758         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
2759         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
2760         reference types.
2761         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
2762         reference types.
2763         (ves_icall_Type_get_IsGenericInstance): Likewise.
2764         (ves_icall_Type_get_IsGenericType): Likewise.
2765
2766 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
2767
2768         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
2769         class if possible.
2770
2771         * mempool.h (mono_mempool_get_allocated): New helper function.
2772
2773         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
2774         change.
2775
2776         * mempool.c: Fix warnings and the calculation of stats.
2777
2778         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
2779
2780         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
2781
2782         * loader.c (mono_get_method_from_token): Update method_count stat.
2783
2784         * class-internals.h (MonoStats): Add some stats.
2785
2786 2006-08-31 Robert Jordan  <robertj@gmx.net>
2787
2788         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
2789         with managed variants.
2790         All code is contributed under the MIT/X11 license.
2791         
2792 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
2793
2794         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
2795         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
2796
2797         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
2798
2799         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
2800         with cycles in classes.
2801
2802         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
2803
2804         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
2805         missing a [MarshalAs] directive. Fixes #79203.
2806
2807         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
2808         klass->marshal_info. Fixes #79217.
2809
2810 2006-08-30  Martin Baulig  <martin@ximian.com>
2811
2812         Committing a patch from Joachim Ante <joe@otee.dk>:
2813         Add support for binary data symbol stores.
2814
2815         * debug-mono-symfile.c
2816         (mono_debug_open_mono_symbol_file): Renamed into
2817         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
2818         arguments.
2819
2820         * mono-debug.c
2821         (mono_debug_open_image): Added `raw_contents' and `size' args.
2822         (mono_debug_init_2_memory): New public function.
2823
2824 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
2825
2826         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
2827
2828 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2829
2830         * appdomain.c: implement support for ShadowCopyFiles.
2831
2832 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
2833
2834         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
2835         when value is NULL (and should remove CID #51).
2836
2837 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2838
2839         * image.c: moved 2 functions to ../utils.
2840
2841 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
2842
2843         * gc.c: cope with the target object of a GC handle being NULL
2844         (bug #78877).
2845
2846 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
2847
2848         * class.c: recursively check parent's explicit implementations
2849         of interface methods (fixes bug #79125).
2850
2851 2006-08-19  Miguel de Icaza  <miguel@novell.com>
2852
2853         * filewatcher.c: Avoid warnings when building, do not redefine
2854         constants that are defined.
2855
2856         Remove warnings.
2857
2858 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2859
2860         * image.c: don't fail when the link points to an absolute path.
2861
2862 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
2863
2864         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
2865         Fix CID #3.
2866
2867 2006-08-17  Miguel de Icaza  <miguel@novell.com>
2868
2869         * image.c (full_path): A new method used to obtain the actual path
2870         of an assembly even in the presence of symbolic links.  
2871
2872         This is necessary for the case where we are running a binary that
2873         has been GACed, but we are using the "published" path name
2874         ($prefix/mono/1.0/blah.exe) which happens to point to the real
2875         file in the GAC.
2876
2877         This was the source of the failure for the `xsp' command with the
2878         recent AppDomain changes, as far as the runtime was concerned,
2879         there were two different assemblies: $prefix/mono/1.0/blah.exe and
2880         $prefix/mono/gac/blah/version/blah.exe.
2881
2882         (do_mono_image_open): use full path
2883
2884 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2885
2886         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
2887
2888 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
2889
2890         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
2891         domain_id is supplied. Fix CID #241 and corlib's unit tests.
2892
2893 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2894
2895         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
2896         small structures. Fixes #78990.
2897
2898 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2899
2900         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
2901
2902         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
2903
2904 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2905
2906         * appdomain.c:
2907         * marshal.c: don't load all the assemblies from a domain into newly
2908         created ones. The new domains might have different rules and load
2909         assemblies from different locations. Fixes bug #76757.
2910
2911         Patch by Lluis. Conflicts resolved by Brian Crowell.
2912
2913 2006-08-16  Alp Toker  <alp@atoker.com>
2914
2915         * socket-io.c: First half of the fix for #79084.
2916         Set sa_size to the length of the content, not that of the struct.
2917         Don't add NULL suffix to the content, this should be done in
2918         managed code if needed.
2919
2920 2006-08-14  Raja R Harinath  <rharinath@novell.com>
2921
2922         Fix part of #79012
2923         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
2924         mono_metadata_parse_type returns NULL.
2925
2926 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
2927
2928         * normalization-tables.h : new file for string normalization data.
2929         * locales.c, locales.h, icall.c :
2930           added load_normalization_resource() for string normalization,
2931           and icall as well.
2932         * Makefile.am : added normalization-tables.h to the sources.
2933
2934 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
2935
2936         * marshal.c: Add more helper functions to reduce code duplication and use them
2937         everywhere.
2938
2939 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
2940
2941         * marshal.c: Fix non-x86 stdcall warnings.
2942         
2943         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
2944         them everywhere.
2945
2946 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
2947
2948         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
2949         type check on multi-dimensional arrays. Fixes #79000.
2950
2951 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
2952
2953         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
2954         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
2955         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
2956         * class-internals.h: add is_com_object to class structure.
2957         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
2958         null checks to COM object marshalling. Fix .ctor call on RCW.
2959         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
2960         
2961         All code is contributed under the MIT/X11 license.
2962
2963 2006-08-09  Dick Porter  <dick@ximian.com>
2964
2965         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
2966         racing mono_monitor_allocator_lock() somewhere, so don't delete
2967         the critical section for now.  Found by running and exiting
2968         monodevelop.
2969
2970 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
2971
2972         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
2973         (ves_icall_System_ComObject_FindInterface): Ditto.
2974         (ves_icall_System_ComObject_CacheInterface): Ditto.
2975
2976         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
2977         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
2978
2979 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2980
2981         * threadpool.c: treat pipes from process asynchronous reads as sockets
2982         when reading from them, so we get select/poll or epoll to wait for
2983         data.
2984
2985 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
2986
2987         * loader.c: Fix a typo (CID #233) in the null check.
2988
2989 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
2990
2991         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
2992         Hopefully fixes #78949.
2993         
2994         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
2995         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
2996         bytes. Fixes #78972.
2997
2998 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2999
3000         * filewatcher.c: we need to set errno here.
3001
3002 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3003
3004         * filewatcher.c: let Win32Exception get the error value.
3005
3006 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3007
3008         * filewatcher.c: translate errno into win32 errors for Win32Exception
3009         to know what happened.
3010
3011 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3012
3013         * threadpool.c: Fix more warnings.
3014
3015         * assembly.c (search_loaded): Fix warnings.
3016
3017         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3018         (mono_async_invoke): Ditto.
3019
3020 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3021
3022         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3023         entries for __ComObject type in addition to ComImport types.
3024         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3025         about hash table.
3026         
3027         All code is contributed under the MIT/X11 license.
3028
3029 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3030
3031         * image.c: avoid tentative loading of modulerefs that contain
3032         no metadata (P/Invoke library names).
3033
3034 2006-07-28  Dick Porter  <dick@ximian.com>
3035
3036         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3037         mono_loader_lock() somewhere, so don't delete the critical section
3038         for now.  Found by running and exiting monodevelop.
3039
3040 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3041
3042         * filewatcher.c: define the inotify syscalls when we're building on
3043         linux and have sys/syscall.h. The build system might not have support
3044         for inotify but the target system might have it.
3045
3046 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3047
3048         * domain.c: Documentation updates.
3049
3050         * loader.c (mono_free_method): Do not release the method
3051         information if we are being profiled, as profilers will use this
3052         information at shut down to present some data to the user.
3053
3054         This is needed so that the profiler does not crash, as the
3055         profiler tends to keep MonoMethods around, and they might become
3056         invalid if we free these.
3057
3058         (mono_get_method_constrained): Return the original CIL stream
3059         method as well, so verification can be performed against it.
3060
3061 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3062
3063         * filewatcher.[ch]: support for inotify file system watcher.
3064         * icall.c: add new internal calls for the inotify file system watcher.
3065
3066 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3067
3068         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3069         #78888.
3070
3071 2006-07-20  Dick Porter  <dick@ximian.com>
3072
3073         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3074         warning.
3075
3076 2006-07-20  Dick Porter  <dick@ximian.com>
3077
3078         * threads.c (start_wrapper): Do the thread cleanup while we still
3079         hold a reference to its object.  Fixes bug 78123.
3080
3081 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3082
3083         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3084         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3085           "managed-to-managed".
3086         * icall.c: Redirect string constructors that take sbyte* to
3087           ves_icall_System_String_ctor_RedirectToCreateString.
3088         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3089           to CreateString () methods with matching signature.
3090         * reflection.c: Use original security informations for
3091           MONO_WRAPPER_MANAGED_TO_MANAGED.
3092         * security-manager.c: Use original security informations for
3093           MONO_WRAPPER_MANAGED_TO_MANAGED.
3094         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3095           that is a placeholder and only its address should be used.
3096         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3097           that is a placeholder and only its address should be used.
3098
3099 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3100
3101         Begin implementing COM Interop.
3102         * appdomain.c: Increment corlib version.
3103         * class.c: Set ComImport classes' parent to __ComObject.
3104         * loader.c: Mark cominterop methods as such.
3105         * domain.c: Add __ComObject class to MonoDefaults structure.
3106         * image.c: Add 2 hashtables to the image for COM Interop related methods
3107         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3108         using the mempool allocator
3109         
3110         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3111         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3112         declaration for mono_metadata_type_dup_mp.
3113         
3114         * debug-helpers.c: Added strings for two additional wrapper types
3115         * object.c: Create proxy objects for ComImport classes
3116         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3117         and added __ComObject class to MonoDefaults structure.
3118         
3119         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3120         MonoComInteropProxy and MonoComObject.
3121         
3122         * marshal.c: Added support for COM Interop
3123         (signature_cominterop): Converts managed signature to corresponding
3124         unmanaged COM signature.
3125         (cominterop_get_function_pointer): gets unmanaged function pointer via
3126         COM object vtable
3127         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3128         (cominterop_get_method_interface): returns interface type that method is defined on
3129         (mono_mb_emit_cominterop_call): emits native call to function pointer
3130         gotten from vtable
3131         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
3132         that matches signature of unmanaged function.
3133         (cominterop_get_native_wrapper): wrapper around adjusted method call.
3134         (cominterop_get_invoke): forwards call from proxy to __ComObject
3135         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
3136         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
3137         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
3138         
3139         * marshal.h: Added Marshal icall declarations.
3140         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
3141         so we can access them in finalizer
3142         
3143 2006-07-14  Dick Porter  <dick@ximian.com>
3144
3145         * object.c (mono_type_initialization_cleanup): Fix a race
3146         condition by temporarily commenting out the critical section
3147         deletion.
3148
3149 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3150
3151         * reflection.c (create_custom_attr): Fix some warnings.
3152         (create_custom_attr_data): Ditto.
3153         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3154         types. Fixes #78855.
3155
3156 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3157
3158         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3159
3160         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3161
3162 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3163
3164         * reflection.c (resolve_object): Add support for DynamicMethod.
3165
3166         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3167         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3168
3169 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3170
3171         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3172         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3173
3174 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3175
3176         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3177         Fixes #77888.
3178
3179 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3180
3181         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3182         slightly: remove a shadow local variable.
3183
3184 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3185
3186         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3187         definition that introduces the virtual function slot.
3188         Also fix Coverity #105.
3189
3190 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3191
3192         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3193         for dynamic assemblies. Fixes #78724.
3194
3195 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3196
3197         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3198         Fixes #78722.
3199
3200 2006-06-21  Martin Baulig  <martin@ximian.com>
3201
3202         * reflection.c
3203         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3204         fixes #76484.
3205
3206 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3207
3208         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3209
3210 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3211
3212         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3213         nor TYPEREFs.
3214         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3215         Inflate result if necessary.
3216         (mono_class_get_full): Remove old version.  Rename from
3217         'mono_class_get' and add 'context' argument.  Pass it to
3218         ..._create_from_typespec.
3219         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3220         (mono_ldtoken): Revert change below.
3221
3222 2006-06-20  Martin Baulig  <martin@ximian.com>
3223
3224         * class.c (mono_ldtoken): Don't pass the generic context to
3225         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3226
3227 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3228
3229         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3230         and later freeing it. Fixes #78638.
3231
3232 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3233
3234         * icall.c (mono_class_get_throw): Revert over-zealous error
3235         throwing, the caller for mono_class_get_throw will cope with
3236         errors when classes are not properly initialized already.
3237
3238         The code still copes with loader exceptions though.
3239
3240         Fixes the regression in reftype1 and reftype3 from the CAS tests.
3241         
3242 2006-06-14  Miguel de Icaza  <miguel@novell.com>
3243
3244         Fixes the `make run1' version of RuntimeAbort (to be commited,
3245         source is in Bugzilla).
3246         
3247         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
3248         FALSE on class loading failure instead of returning true.
3249
3250         * class.c (mono_class_create_from_typedef): It is possible for
3251         mono_metadata_interfaces_from_typedef_full to fail if a class is
3252         not found, cope with this.
3253         
3254
3255 2006-06-14  Dick Porter  <dick@ximian.com>
3256
3257         * socket-io.c: 
3258         * process.c: Fix a bunch of signed/unsigned warnings from gcc
3259         4.1.1
3260
3261 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
3262
3263         * culture-info-table.h : oops, forgot to make it nsync with r61548.
3264
3265 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3266
3267         * icall.c: Another fix for building mono in Visual Studio.
3268
3269 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3270
3271         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
3272         
3273 2006-06-09  Martin Baulig  <martin@ximian.com>
3274
3275         * debug-mono-symfile.c: Put this back and really fix it this
3276         time. Sorry for all the trouble.
3277
3278 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
3279
3280         * icall.c (mono_class_get_throw): Fix a warning.
3281         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
3282         ReflectionTypeLoadException if needed. Fixes #78606.
3283
3284         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
3285         (mono_class_init): Ditto.
3286
3287         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
3288         ref_only exceptions.
3289         (mono_loader_clear_error): Make this work even if there is no error.
3290
3291 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
3292
3293         * object-internals.h marshal.c marshal.h icall.c: Implement method 
3294         Marshal.GetComSlotForMethodInfo using internal call.
3295
3296 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
3297
3298         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
3299         a function for signalling it.
3300
3301         * class.c (mono_class_from_typeref): Use the new kind of loader error when
3302         a referenced assembly is not found.
3303
3304         * loader.c (mono_loader_error_prepare_exception): Add support for 
3305         LOADER_ERROR_ASSEMBLY. Fix formatting.
3306
3307 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3308
3309         * domain.c appdomain.c class-internals.h marshal.c: Add support 
3310         for VARIANT marshalling on windows and increment corlib version
3311         since Variant struct was added.
3312
3313 2006-06-03  Miguel de Icaza  <miguel@novell.com>
3314
3315         * debug-mono-symfile.c: Revert Martin's previous patch which broke
3316         stack trace line information:
3317
3318         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
3319         (Martin) when looking up B which is between A and C, return A not C.
3320
3321         Bug is #78573.
3322
3323         Thanks to Alexander Olk for tracking this down.
3324
3325 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
3326
3327         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
3328         
3329         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
3330         avoid clobbering its value.
3331         (mono_string_to_lpstr): Fix a warning on windows.
3332
3333 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3334
3335         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
3336
3337         * reflection.c loader.c: Removed references to 'dummy' flag.
3338
3339         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
3340
3341         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
3342         it gets GC tracking.
3343
3344         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
3345         GC tracking.
3346         
3347         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
3348
3349         * marshal.c threadpool.c: Update callers of mono_async_result_new.
3350
3351         * appdomain.c: Bump corlib version.
3352
3353 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3354
3355         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3356         CEE_STIND_REF when working with object references.
3357
3358 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3359
3360         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
3361         Fixes #78539.
3362
3363 2006-05-30  Miguel de Icaza  <miguel@novell.com>
3364
3365         * loader.c (method_from_memberref): Fix argument value for
3366         mono_loader_set_error_method_load (I was passing the MonoClass
3367         instead of the class name char *).
3368
3369 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3370
3371         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3372         CEE_STIND_REF when working with object references.
3373
3374 2006-05-30  Martin Baulig  <martin@ximian.com>
3375
3376         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
3377         mono_method_full_name() change and replace the ':' with a '.'
3378         here.
3379
3380 2006-05-30  Martin Baulig  <martin@ximian.com>
3381
3382         * debug-mono-symfile.c
3383         (mono_debug_symfile_lookup_location): Fix the algorithm:
3384         when looking up B which is between A and C, return A not C.
3385
3386 2006-05-29  Martin Baulig  <martin@ximian.com>
3387
3388         * mono-debug.h
3389         (MonoDebugMethodInfo): Make the typedef public.
3390         (MonoDebugSourceLocation): New public struct.
3391
3392         * mono-debug.c
3393         (mono_debug_source_location_from_address): Removed.
3394         (mono_debug_source_location_from_il_offset): Removed.
3395         (mono_debug_il_offset_from_address): Removed.
3396         (mono_debug_address_from_il_offset): Removed.
3397         (mono_debug_lookup_method): New public function.
3398         (mono_debug_lookup_source_location): New public function; replaces
3399         the old mono_debug_source_location_from_*() functions; see the
3400         inline documentation.
3401         (mono_debug_free_source_location): New public function.
3402         (mono_debug_print_stack_frame): New public function; see the
3403         inline documentation.
3404
3405         * debug-mono-symfile.c
3406         (mono_debug_find_source_location): Renamed into
3407         mono_debug_symfile_lookup_location(); only take a
3408         `MonoDebugMethodInfo *' and an `offset' argument; added inline
3409         documentation.
3410         (mono_debug_find_method): Renamed into
3411         mono_debug_symfile_lookup_method().
3412
3413 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
3414
3415         * assembly.c (mono_assembly_open_full): Dont overwrite the status
3416         returned by mono_image_open_full ().
3417
3418         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
3419         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
3420         #78517.
3421
3422         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
3423         #78518.
3424
3425 2006-05-27  Miguel de Icaza  <miguel@novell.com>
3426
3427         * class.c (mono_class_from_typeref): handle missing images
3428         earlier, deals with bug #78418.   Refactor code; 
3429
3430         Fix a warning introduced in my previous commit (some stale code
3431         from before I revisited my patch).
3432
3433         * class.c (mono_class_create_from_typedef): On failure, remove the
3434         class from the MonoImage->class_cache as the class is not
3435         initialized;   Fixes the leak pointed out by Paolo.
3436
3437 2006-05-25  Dick Porter  <dick@ximian.com>
3438
3439         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
3440         DeleteCriticalSections until I figure out which one may still be
3441         sometimes locked when mono_thread_cleanup is called.
3442
3443 2006-05-24  Dick Porter  <dick@ximian.com>
3444
3445         * threads.c (mono_thread_cleanup): Move the threading cleanup out
3446         of mono_thread_manage and back into its own function, so it can be
3447         called after the finalizer thread has finished.
3448
3449         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
3450
3451 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
3452
3453         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
3454         Fixes #78495.
3455
3456         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
3457         with non-blittable elements.
3458         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
3459
3460 2006-05-24  Martin Baulig  <martin@ximian.com>
3461
3462         * mono-debug-debugger.h (MonoDebuggerEvent): Added
3463         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
3464
3465         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
3466         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
3467         `mono_debugger_event_handler' to NULL.
3468
3469 2006-05-24  Martin Baulig  <martin@ximian.com>
3470
3471         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
3472
3473 2006-05-24  Martin Baulig  <martin@ximian.com>
3474
3475         * mono-debug-debugger.h
3476         (mono_debugger_create_notification_function): Added
3477         `MonoCodeManager *' argument.
3478
3479 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
3480
3481         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
3482
3483 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
3484
3485         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
3486         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
3487         implementation.
3488
3489 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
3490
3491         * icall.c: precise GC support: objects can't be stored in unmanaged
3492         memory anymore, even if they are kept alive by other references: since
3493         they can move the GC needs to be able to always find them.
3494
3495 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
3496
3497         * object.c: precise GC support for static fields. Support
3498         for moving GCs: write barriers and pinned allocation for interned
3499         strings.
3500
3501 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3502
3503         * domain.c, domain-internals.h: precise GC support for the MonoDomain
3504         structure.
3505
3506 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3507
3508         * class.c, gc.c: sgen and precise GC updates.
3509
3510 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
3511
3512         * marshal.h, marshal.c: added write barrier wrapper and precise type
3513         fixes.
3514
3515 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
3516
3517         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
3518         support.
3519
3520 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
3521
3522         * reflection.c: precise and sgen GC updates.
3523
3524 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
3525
3526         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
3527
3528 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
3529
3530         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
3531
3532 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
3533
3534         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
3535         MONO_TYPE_OBJECT. Fixes #78462.
3536
3537 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
3538
3539         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
3540         and blittable types.
3541
3542 2006-05-17  Miguel de Icaza  <miguel@novell.com>
3543
3544         * class.c (mono_class_get_exception_for_failure): Implement parts
3545         of a TODO: if the loader error is set (instead of the class
3546         error), we return a Loader exception that can be properly thrown
3547         elsewhere.
3548
3549         This was exposed by some Winforms 2.0 code that I tried to run
3550         (Atsushi pointed me to it).
3551
3552 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
3553
3554         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
3555         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
3556         
3557         * marshal.c (emit_marshal_vtype): Add limited support for 
3558         UnmanagedType.LPStruct. Fixes #78427.
3559
3560         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
3561         Applied a patch from kangaroo to fix #77523.
3562
3563 2006-05-17  Martin Baulig  <martin@ximian.com>
3564
3565         * threads.c
3566         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
3567         (debugger_thread_created): Removed.
3568         (debugger_thread_exited): Removed.
3569
3570 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
3571
3572         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3573
3574         * object-internals.h (MonoReflectionResource): Sync with managed version.
3575
3576 2006-05-12  Wade Berrier <wberrier@novell.com>
3577
3578         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
3579
3580 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
3581
3582         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
3583         functions try to allocate from the image mempool.
3584
3585 2006-05-12  Dick Porter  <dick@ximian.com>
3586
3587         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
3588
3589 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
3590
3591         * object.c: The FieldGetter and FieldSetter methods require the full
3592         name of the class, not only the name. Fixes bug #78277.
3593
3594 2006-05-11  Miguel de Icaza  <miguel@novell.com>
3595
3596         * loader.c (method_from_memberref): Do not pass the NULL klass to
3597         mono_loader_set_error_() methods.  Pass the non-NULL value
3598         (class). 
3599
3600 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
3601
3602         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
3603         (mono_assembly_close): Null out assembly->image->references after freeing it.
3604
3605         * image.c (mono_image_close): Free image->references.
3606         
3607         * reflection.c (mono_image_basic_init): Fix a small memory leak.
3608
3609 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3610
3611         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
3612         before checking if it's NULL (g_assert).
3613
3614 2006-05-10  Martin Baulig  <martin@ximian.com>
3615
3616         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
3617         I thought I already killed that two months ago, but now it somehow reappeared.
3618
3619 2006-05-10  Martin Baulig  <martin@ximian.com>
3620
3621         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
3622
3623 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
3624
3625         * reflection.c: Allocate memory for dynamically created methods in the image
3626         mempools.
3627
3628 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3629
3630         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
3631         don't use the ad pointer before checking if it's NULL (g_assert).
3632
3633 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
3634
3635         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
3636         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
3637
3638         * marshal.c: Allocate all signatures from mempools.
3639
3640         * marshal.c: Allocate some more signatures from mempools.
3641
3642 2006-05-09  Miguel de Icaza  <miguel@novell.com>
3643
3644         * object.c (mono_load_remote_field): The code used to provide a
3645         temporary variable for returning results if the user did not
3646         provide a result pointer.  But our temporary variable was allocted
3647         on the satck.
3648
3649         Fix calling code to always pass a result area.   Coverity ID 103.
3650
3651 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
3652
3653         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
3654         value, not the old. Fixes #78312.
3655         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
3656
3657         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
3658         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
3659         per-image cache.
3660
3661         * assembly.c (mono_assembly_close): Free image->references.
3662
3663         * assembly.c (mono_assembly_names_equal): Fix a warning.
3664         (mono_assemblies_cleanup): Cleanup more global data.
3665
3666         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
3667
3668         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
3669         ptr_cache and image->modules.
3670
3671         * image.c (mono_image_init): Allocate array_cache lazily.
3672         
3673 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3674
3675         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
3676         behavior was changed recently and has bad side effects.
3677
3678 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
3679
3680         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
3681         
3682         * assembly.c (mono_assembly_close): Remove a debug printf.
3683
3684         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
3685
3686         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
3687         to also allow for temporary references between mono_image_open ()/close ().
3688
3689         * domain.c (get_runtimes_from_exe): Add a FIXME.        
3690
3691 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
3692
3693         * marshal.c: Fix support for dynamic methods.
3694
3695         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
3696
3697         * marshal.c (mono_marshal_cleanup): New cleanup function.
3698
3699         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
3700         image mempools.
3701
3702         * class.c (mono_class_init): Fix leaking class->nested_classes.
3703
3704         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
3705
3706         * image.c (mono_image_init): Initialize the new cashes.
3707
3708         * image.c (mono_image_close): Destroy the new cashes.
3709
3710         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
3711
3712         * mempool.c (mono_mempool_strdup): New helper function.
3713
3714         * class-internals.h: Add prototype for mono_loader_unlock ().
3715
3716         * domain.c (mono_jit_info_table_find): Fix a warning.
3717         (mono_debugger_check_runtime_version): Ditto.
3718
3719         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
3720         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
3721         functions to these modules.
3722
3723         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
3724         metadata modules.
3725         
3726         * marshal.c (mono_free_bstr): Fix a warning.
3727
3728         * assembly.c (mono_assembly_open_full): Fix another small leak.
3729
3730         * object.c: Fix some unload leaks in the remoting code.
3731
3732         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
3733         function.
3734
3735         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
3736
3737         * reflection.c: Fix some unload leaks in dynamic assemblies.
3738
3739 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
3740
3741         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
3742         * marshal.h: Add BSTR support on Win32
3743         * icall.c: Add BSTR icalls
3744         * metadata.h: Add BSTR enums
3745
3746 2006-04-28  Miguel de Icaza  <miguel@novell.com>
3747
3748         Work to catch the crash from #76795 and turn it into an
3749         exception.   As I stubbed out pieces of the VisualBasic support,
3750         I found a number of places where the code was failing and I added
3751         checks to those places. 
3752         
3753         * metadata.c (do_mono_metadata_parse_generic_class): Make this
3754         function return a status code.  If we fail to parse the signature
3755         from mono_metadata_parse_generic_inst, return FALSE.
3756
3757         * loader.c (mono_get_method_from_token): If we fail to load the
3758         method (mono_class_get) return NULL.   
3759
3760         * (method_from_memberref): Return NULL if we are unable to parse
3761         the method signature
3762
3763         (mono_loader_error_prepare_exception): Since we now use the
3764         loader_error flag internally to stop processing, and obtaining
3765         exceptions that might be thrown will walk this code path the
3766         proper way of going from a MonoLoaderError into a
3767         MonoException was convoluted.   This new routine encapsulates the
3768         process of turning the error into an exception and *clearing* the
3769         error afterwards.
3770         
3771 2006-04-27  Miguel de Icaza  <miguel@novell.com>
3772
3773         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
3774         with missing assemblies), and to cope with:
3775
3776                 * Missing fieldref from a non-existing assembly.
3777                 * Missing methodref from a non-existing assembly.
3778
3779         The first batch of work to address *some* of the issues from 76661.
3780         
3781         * object.c (mono_class_create_runtime_vtable): If we fail to
3782         initialize the class raise the exception here. 
3783
3784         * metadata.c (mono_class_get_overrides_full): If any methods fail
3785         to load return the failure to the caller.
3786
3787         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
3788         flagging assemblies that failed to load.   
3789
3790         Do not crash if we are unable to load the assembly.
3791
3792         (mono_assembly_close): Do nothing with REFERENCE_MISSING
3793         assemblies. 
3794
3795         * loader.c (mono_loader_set_error_type_load): Change the
3796         convention to always pass unallocated strings, so we make our own
3797         copies (I know our own code had duplicated strings before, but
3798         this keeps the normal conventions).
3799         (method_from_memberref): Call mono_loader_set_error_method_load
3800         for all possible failures of loading the class. 
3801         Remove assert, turn into a loader error.
3802
3803         (mono_loader_error_to_exception): Move this routine from mini
3804         (mini_loader_error_to_exception) there was no need to have that in
3805         mini. 
3806
3807         * class.c (mono_class_from_typeref): If we were not able to load
3808         the assembly with mono_assembly_load_reference, call the
3809         mono_loader_set_error_type_load to register the problem.
3810
3811         (mono_class_setup_fields): If we fail to load the type from
3812         mono_metadata_parse_type_full, call mono_class_set_failure and
3813         break from the loop.
3814
3815         If class->exception_type is set, we do not layout the fields as
3816         that might crash the runtime, and instead return (from breaking
3817         from the previous loop).
3818
3819         (mono_class_setup_vtable): This now returns a boolean indicating
3820         whether the table was properly setup.   The decision is driven by
3821         mono_class_get_overrides_full which might run into non-existing
3822         methods. 
3823         
3824         (mono_class_init): Returns TRUE on success or FALSE if there was a
3825         problem in loading the type (incorrect assemblies, missing
3826         assemblies, methods, etc).
3827
3828         When we call mono_class_setup_fields we also check for a potential
3829         error inside this call (either a class exception or a general
3830         loader exception).
3831
3832         (mono_class_create_from_typedef): If the parent fails to load
3833         (calling mono_class_get_full) return NULL.
3834         
3835         ** Important **
3836
3837         calls to mono_metadata_parse_type_full should be checked
3838         everywhere and set the mono_class_set_failure
3839         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
3840
3841         The current patch checks the places where my manually constructed
3842         tests show the errors are showing up, but we should do it
3843         everywhere. 
3844
3845         ** Important2 **
3846
3847         mono_class_init return values should be tested everywhere, like
3848         the previous case this is something that we should audit
3849         everywhere and not only on the cases exposed by the tests I
3850         created. 
3851
3852 2006-04-26  Miguel de Icaza  <miguel@novell.com>
3853
3854         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
3855         boolean parameter and instead pass the information on `options'
3856         parameter (FileOptions).
3857
3858         * icall.c: Register the new signature for MonoIO.Open.
3859
3860         * debug-helpers.c (dis_one): Trying to understand how coverity
3861         works.  Fix Run 5, item 78.
3862
3863 2006-04-26  Dick Porter  <dick@ximian.com>
3864
3865         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
3866         dereference.
3867
3868 2006-04-25  Martin Baulig  <martin@ximian.com>
3869
3870         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
3871
3872         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
3873         debugger_thread_created().
3874         (debugger_gc_push_all_stacks): Don't handle the main thread in any
3875         special way.
3876         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
3877         (mono_debugger_finalize_threads): New function; undo the effects
3878         of mono_debugger_init_threads().
3879         (mono_debugger_create_all_threads): Removed.
3880
3881 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
3882
3883         * image.c (mono_image_close): Tidy up trace messages.
3884
3885         * assembly.c (mono_assembly_close): Ditto.
3886
3887         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
3888         no longer references an already freed assembly. Fixes #78168.
3889
3890 2006-04-21  Dick Porter  <dick@ximian.com>
3891
3892         * threads.c (mono_thread_detach): Fix reference counting when
3893         detaching threads.
3894
3895 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
3896
3897         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
3898         #78155.
3899
3900 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
3901
3902         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
3903         (mono_type_to_stind): Ditto.
3904
3905         * marshal.c: Use the new helper functions to simplify code.
3906
3907         * image.c (mono_image_close): Add some code for help debug assembly unloading
3908         problems.
3909
3910         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
3911         image mempool.
3912
3913         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
3914         assembly was already loaded in another appdomain. Fixes #78083.
3915
3916 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
3917
3918         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
3919         referenced assemblies.
3920         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
3921
3922         * domain.c (mono_domain_free): Add a trace message.
3923
3924         * appdomain.c (add_assemblies_to_domain): Ditto.        
3925
3926         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
3927         field.  
3928
3929 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
3930
3931         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
3932
3933 2006-04-12  Martin Baulig  <martin@ximian.com>
3934
3935         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
3936         `USE_INCLUDED_LIBGC'.   
3937
3938 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
3939
3940         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
3941         the patch contains ../ and a small directory name later. Hopefully fixes
3942         #78035.
3943
3944 2006-04-10  Martin Baulig  <martin@ximian.com>
3945
3946         Clean up the debugger's thread-handling code.
3947
3948         The debugger's thread-handling code has been moved from
3949         ../mini/debug-debugger.c to threads.c.  We now iterate directly
3950         over the `threads' hash, keep track of exiting threads and also
3951         use proper locking.
3952
3953         We can now debug XSP and XSP based applications with the debugger.
3954
3955         * object-internals.h (MonoThread): Added `gpointer end_stack'.
3956
3957         * threads.h
3958         (MonoThreadCallbacks): Removed; this was only used by the debugger.
3959         (mono_install_thread_callbacks): Likewise.      
3960
3961         * threads.c (mono_thread_callbacks): Removed.
3962         (debugger_thread_created, debugger_thread_exited): New static functions.
3963         (start_wrapper): Call debugger_thread_created().
3964         (thread_cleanup): Call debugger_thread_exited().
3965         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
3966         (mono_debugger_init_threads): New public function.
3967         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
3968         iterate directly over the `threads' hash and also use proper locking.
3969
3970         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
3971
3972         * mono-debug-debugger.h
3973         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
3974
3975 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
3976
3977         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
3978         argument type=array. Fixes #78057.
3979
3980 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
3981
3982         * culture-info-table.h : regenerated. Fixed bug #69652.
3983
3984 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
3985
3986         * loader.c metadata.c: Reapply a variant r59116.
3987         
3988         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
3989
3990         * class.c (mono_class_setup_interface_offsets): New internal function.
3991
3992         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
3993         interfaces too. Fixes #77398.
3994
3995         * reflection.c (encode_cattr_value): Add support for 
3996         parameter type=object, argument type=array.
3997         (load_cattr_value): Ditto. Fixes #77916.
3998
3999         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4000         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4001
4002         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4003         a byval char array and CharSet is Ansi.
4004
4005         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4006
4007 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4008
4009         * metadata.c: Add some locking comments.
4010         
4011         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4012         mempool.
4013         (mono_metadata_free_method_signature): Don't free the signature itself.
4014
4015         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4016
4017         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4018         reference the same MonoImage.
4019         (mono_assembly_load_from_full): Add an assert.
4020
4021 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4022
4023         * image.c (mono_image_close): Don't put the image we are about to free into the
4024         loaded_images_guid_hash.
4025
4026         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4027         to reduce code duplication.
4028
4029         * marshal.c: Register the native functions called by this module as icalls, to
4030         somewhat centralize the creation of MonoMethodSignature's.
4031
4032         * loader.c (mono_method_signature): Add a cache for method signatures.
4033
4034         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4035         the parameter attributes of a method.
4036         (mono_metadata_parse_method_signature_full): Refactored the computation of
4037         parameter attributes into a separate function. Also avoid one allocation in
4038         most cases.
4039
4040         * assembly.c (mono_assembly_close): Ditto.
4041
4042         * image.c (mono_image_close): Log trace messages with INFO level.
4043
4044         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4045
4046         * image.c reflection.c: Correct reference counting of image modules.
4047         
4048         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4049         of this function from the image mempool.
4050         
4051         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4052         to allow more cached types to be used.
4053
4054         * mono-debug.c (mono_debug_add_method): Appled patch from
4055         David S. Miller  <davem@sunset.davemloft.net>: Access 
4056         minfo->lexical_blocks[] entry elements using read32().
4057
4058 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4059
4060         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4061         methods as it is allocated from the mempool.
4062
4063         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4064         image mempool.
4065
4066         * metadata-internals.h: Add comments describing the reference counting scheme
4067         used for MonoImage and MonoAssembly.
4068
4069         * image.c assembly.c reflection.c: Rework reference counting of images and 
4070         assemblies so they are freed when the runtime is shut down. Free some 
4071         additional memory structures when an image is unloaded.
4072         
4073 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4074
4075         * class.c loader.c reflection.c: Allocate more data structures in
4076         the image mempool.
4077
4078 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4079
4080         * icall.c
4081         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4082         build on pre glib 2.4 systems.
4083
4084 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4085
4086         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4087
4088         * icall.c: Fix some warnings.
4089
4090 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4091
4092         * culture-info-table.h : regenerated.
4093
4094 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4095
4096         * threads.c, object-internals.h, verify.c: changed the culture caching
4097         code to use a normal MonoArray for storage so the GC can keep track of
4098         them easily. Fixed bits of the cache logic, too and simplified the
4099         code.
4100
4101 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4102
4103         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4104         thread for non-Boehm GCs.
4105
4106 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4107
4108         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4109         needed to keep track of the data for static fields.
4110
4111 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4112
4113         Fix #75172
4114         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4115         for interface classes.  Use 'num_methods' instead.
4116         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4117         before using '->vtable_size' field.
4118
4119 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4120
4121         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4122         doesn't contain managed pointers, so use a normal hashtable.
4123
4124 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4125
4126         * reflection.c, class-internals.h, domain.c: fixed handling of types
4127         used as values for objects in custom attributes (bug #77915):
4128
4129 2006-03-24  Martin Baulig  <martin@ximian.com>
4130
4131         * class.c (mono_class_setup_fields): Added support for generic
4132         instances; fixes #77580.
4133
4134 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4135
4136         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
4137
4138 2006-03-24  Dick Porter  <dick@ximian.com>
4139
4140         * file-io.c (get_file_attributes): More stat macro breakage.
4141         Fixes bug 77759.
4142
4143 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4144
4145         * profiler.c: added the file=filename option in the default profiler
4146         to output the profile data to filename.
4147
4148 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4149
4150         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4151         bug #77877.
4152
4153 2006-03-22  Martin Baulig  <martin@ximian.com>
4154
4155         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4156         allocated `MonoClassField *' in `fb->handle'.
4157
4158 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4159
4160         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4161         allocate interface ID to save memory and allow better ID reuse on
4162         appdomain unload. setup_generic_vtable () removal from Martin.
4163
4164 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4165
4166         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4167         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4168         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4169         write barriers for reference stores with managed objects accessed with
4170         C structures in the runtime and in embedding programs.
4171
4172 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4173
4174         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4175         'interface_id' and 'max_interface_id' fields of MonoClasses
4176         representing open generic types.
4177
4178 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4179
4180         * object.h, object.c, icall.c: added functions to deal with
4181         storing valuetypes that contain references in managed objects.
4182         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4183         fixes and comments around uses of mono_array_addr ().
4184
4185 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4186
4187         * object.h, icall.c, monitor.c: object.GetHashCode ()
4188         implementation that supports the moving garbage collector.
4189
4190 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4191
4192         * icall.c, threads-types.h, threads.c: implemented finalizer for
4193         LocalDataStoreSlot.
4194
4195 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4196
4197         * metadata.c (mono_type_size): Add a fixme.
4198         (mono_type_stack_size): Ditto.
4199
4200         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4201         'type_forwarders' field.
4202
4203         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4204         attribute from net 2.0.
4205
4206         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4207         from class.c.
4208
4209         * class.c (mono_class_setup_fields): Fix a warning.
4210         
4211         * class.c (mono_class_from_name): Add support for assemblyref entries
4212         in the EXPORTEDTYPE table.
4213
4214         * reflection.c: Add support for handling type forwarders under net 2.0.
4215
4216         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4217         
4218 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4219
4220         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4221         overwriting entries in ModuleBuild->types, also clean up the code
4222         a little. Fixes #77774.
4223
4224 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4225
4226         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4227         load friend assembly info when present.
4228
4229 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4230
4231         Fix crasher on gtest-158.cs.
4232         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4233         the return value if the MonoClass we want is yet in an
4234         inconsistent state.
4235         * class.c (mono_class_create_from_typedef): Add an comment
4236         explaining an order dependency between mono_class_setup_parent and
4237         mono_class_setup_mono_type.
4238
4239 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
4240
4241         * class.c: documentation updates and events bug fix.
4242
4243 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4244
4245         * class.c: some cleanup, locking fixes.
4246
4247 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
4248
4249         * class.c: fix the generics code to setup nested
4250         type info to the instantiated type (bug #77770).
4251
4252 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4253
4254         * marshal.c: fixed a few type correctness issues.
4255
4256 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4257
4258         * loader.c: the Set/Get/Addrtess array methods should be public.
4259
4260 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
4261
4262         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
4263         
4264         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
4265         info->wrapper.
4266
4267 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
4268
4269         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
4270
4271         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
4272
4273         * mempool.c (mono_mempool_alloc): Speed this up a bit.
4274         (mono_mempool_alloc0): Ditto.
4275
4276 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4277
4278         * socket-io.c:
4279         (create_object_from_sockaddr): it was allocating 4 extra bytes
4280         for the AF_UNIX data. Fixes bug #77747.
4281
4282 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
4283
4284         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
4285
4286 2006-03-09  Dick Porter  <dick@ximian.com>
4287
4288         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
4289         Fixes bug 76966 again.
4290
4291 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
4292
4293         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
4294         names from r57532
4295         * appdomain.c: Bumped corlib version to 48 (due to r57532)
4296
4297 2006-03-07  Martin Baulig  <martin@ximian.com>
4298
4299         * object.c
4300         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
4301
4302 2006-03-07  Martin Baulig  <martin@ximian.com>
4303
4304         * class.c
4305         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
4306         regression introduced in r56970; see gtest-252.cs.
4307
4308         * loader.c (mono_get_method_constrained): Correctly handle generic
4309         methods; see gtest-253.cs.
4310
4311 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
4312
4313         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
4314
4315 2006-03-04  Martin Baulig  <martin@ximian.com>
4316
4317         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
4318         compute the parent type at runtime, just like we're already doing
4319         it for interfaces.
4320
4321         * reflection.c
4322         (mono_reflection_bind_generic_parameters): Don't compute the
4323         parent type anymore.
4324
4325         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
4326
4327 2006-03-04  Martin Baulig  <martin@ximian.com>
4328
4329         * mono-debug-debugger.h
4330         (mono_debugger_create_notification_function): Allocate memory at
4331         runtime and return a pointer to it.
4332
4333 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
4334
4335         * assembly.c: Fix windows build.
4336         
4337         * assembly.c: Fix build.
4338
4339         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
4340
4341         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
4342         
4343 2006-03-03  Dick Porter  <dick@ximian.com>
4344
4345         * process.c
4346         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4347         Check parameters before dereferencing them.  Fixes Aaron's part of
4348         bug 77393.
4349
4350 2006-03-03  Raja R Harinath  <rharinath@novell.com>
4351
4352         Fix performance regression.
4353         * loader.c (find_method_in_class): Add 'from_class' argument.
4354         Rename 'klass' argument to 'in_class'.  The signature is compared
4355         against the method in 'in_class', and the corresponding method is
4356         returned from 'from_class'.
4357         (find_method): Walk both 'in_class' and 'from_class' in parallel.
4358         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
4359         type definition and generic instantiation in parallel.
4360         (mono_get_method_constrained): Update to changes.
4361
4362 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
4363
4364         * threads.c: make sure the domain is correct, too when doing
4365         mono_thread_attach ().
4366
4367 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
4368
4369         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
4370         windows. Fixes #77683.
4371
4372 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
4373
4374         * object.h, *: introduced specific way to set elements of an array
4375         of references to be used as write barrier. Still need to audit the
4376         uses of mono_array_addr.
4377
4378 2006-03-01  Miguel de Icaza  <miguel@novell.com>
4379
4380         * object-internals.h: New field to cache the assmebly name, patch
4381         from Tambet Ingo (tambet@ximian.com)
4382
4383 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4384
4385         * decimal.h, class-internals.h, metadata-internals.h,
4386         file-io.h: mark a few function declarations as internal, to
4387         reduce the number of PLT entries.
4388
4389 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4390
4391         * file-io.c: fix typo in warning message.
4392
4393 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
4394
4395         * loader.c: on unix, lookup the "*A" version of a function
4396         if charset is auto as a second option before failing.
4397
4398 2006-02-28  Raja R Harinath  <rharinath@novell.com>
4399
4400         * class.h (mono_class_inflate_generic_method): Revert to two
4401         argument version.
4402         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
4403         (mono_class_inflate_generic_method_full): Add.
4404         * class.c (mono_class_inflate_generic_method_full): Rename from
4405         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
4406         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
4407         * loader.c, reflection.c: Update to changes.
4408
4409 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
4410
4411         * icall.c: const fixes and small improvements.
4412
4413 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4414
4415         * threadpool.c: for asynchronous connect(), enable the same workaround
4416         for BSD 6 as for the Mac. Fixes bug #77637.
4417
4418 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
4419
4420         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
4421         formatted classes. Fixes #77524.
4422
4423 2006-02-24  Raja R Harinath  <rharinath@novell.com>
4424
4425         * class.c (inflate_generic_type): Add a couple more
4426         micro-optimizations.
4427         (inflate_generic_context): Don't use the 'gmethod' from
4428         'inflate_with'.
4429         (mono_class_inflate_generic_method): If the method has generic
4430         parameters, but the passed-in context doesn't have a 'gmethod',
4431         create one.  Use the possibly simplified generic instantiation
4432         from the declaring class instead of the one passed in.
4433
4434 2006-02-24  Raja R Harinath  <harinath@gmail.com>
4435
4436         Make generic method signature and method header handling lazy.
4437         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
4438         (inflate_generic_header): Likewise.
4439         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
4440         parameter to avoid inflating types.
4441         (mono_get_inflated_method): Empty out.
4442         * class.h (mono_class_inflate_generic_method): Update to changes.
4443         * loader.c (mono_get_method_from_token): Don't parse signature for
4444         generic methods, nor methods of generic classes.
4445         (mono_method_signature): Rename from 'mono_method_signature'.
4446         Inflate signature on demand.
4447         (mono_method_get_header): Inflate method header on demand.
4448         * reflection.c: Update to changes.
4449
4450 2006-02-23  Raja R Harinath  <rharinath@novell.com>
4451
4452         * metadata.c (mono_metadata_inflate_generic_inst): If the
4453         instantiation is closed, don't bother expanding it in the new
4454         context.
4455         * class.c (inflate_generic_class): If the generic instantiation
4456         doesn't change after inflation, return the argument itself.
4457         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
4458         Add bounds checks.
4459         (inflate_generic_context): If neither the generic class nor the
4460         generic method instantiations change, return the original context.
4461         * reflection.c (mono_method_get_object): Do
4462         'mono_get_inflated_method' before accessing the ->klass field.
4463         (inflate_mono_method): Don't create a MonoGenericMethod unless
4464         necessary.
4465         (inflate_method): Don't pass a constructed type as the declaring
4466         type of a methodbuilder.
4467
4468 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
4469
4470         * object.c: fix memory overwrite.
4471
4472 2006-02-22  Dick Porter  <dick@ximian.com>
4473
4474         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
4475         it doesn't work any more.
4476         (mono_threads_request_thread_dump): Fix unused variable warnings.
4477
4478 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4479
4480         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
4481         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
4482         the public header file.
4483
4484 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
4485
4486         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
4487
4488 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
4489
4490         * class-internals.h, object.c: reduce the size of MonoVTable
4491         and store the interface_offsets array at negative offsets.
4492
4493 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
4494
4495         * metadata.c: tweak table descriptors data structures to reduce
4496         size and runtime relocations.
4497
4498 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4499
4500         * marshal.c: fix some types and opcodes to be type-safe
4501         in marshaling wrappers.
4502
4503 2006-02-21  Ankit Jain  <jankit@novell.com>
4504
4505         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
4506
4507 2006-02-21  Raja R Harinath  <rharinath@novell.com>
4508
4509         * metadata.c (get_constraints): Relax debugging checks for monodis.
4510
4511 2006-02-21  Ankit Jain  <jankit@novell.com>
4512
4513         * metadata.c (mono_metadata_load_generic_params): Move the code
4514         checking for ambiguous generic params from here to mono/dis/get.c
4515         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
4516
4517 2006-02-21  Raja R Harinath  <harinath@gmail.com>
4518
4519         Fix assertion triggered when compiling nemerle.
4520         * class.c (mono_get_shared_generic_inst): Rename from
4521         get_shared_inst and make non-static.
4522         * loader.c (mono_get_shared_generic_method): New.  Used to create
4523         the MonoGenericContext-equivalent of a MonoGenericContainer.
4524         (mono_get_method_from_token): Initialize the 'context' field of
4525         the created MonoGenericContainer.
4526         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
4527         * metadata.c (get_constraints): Add sanity check.
4528         * class-internals.h: Add new internal methods.
4529
4530         * reflection.c (verify_safe_for_managed_space): New sanity check.
4531         Currently checks that owner-less generic parameters aren't allowed
4532         in managed space.
4533         (mono_type_get_object): Use it.
4534         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
4535         that are now in mono_type_get_object.
4536         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
4537
4538 2006-02-19  Raja R Harinath  <harinath@gmail.com>
4539
4540         * metadata.c (mono_type_create_from_typespec): Rename from
4541         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
4542         argument and caching of types in the generic container.
4543         (unwrap_arrays, find_generic_param): Remove.
4544         * metadata-internals.h: Update.
4545         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
4546
4547 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
4548
4549         * class.c (mono_class_get_exception_for_failure): Fix a warning.
4550
4551         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
4552         return values. Fixes #77581.
4553
4554         * class.c (mono_fnptr_class_get): Switch name and name_space.
4555
4556         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
4557         classes and add support for [In, Out] attributes.
4558         (mono_marshal_free_asany): Ditto. Fixes #77524.
4559
4560 2006-02-18  Raja R Harinath  <harinath@gmail.com>
4561
4562         * class.c (mono_class_from_generic_parameter): Make more robust to
4563         incomplete MonoGenericContainers from monodis.
4564
4565 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4566
4567         * class-internals.h: added some more exception types.
4568         * class.c, metadata.c: added a few checks to handle missing
4569         types.
4570
4571 2006-02-17  Raja R Harinath  <rharinath@novell.com>
4572
4573         Use owner-less generic-params some more.
4574         * class.c (my_mono_class_from_generic_parameter): Remove.
4575         (mono_class_from_generic_parameter): Handle null image,
4576         param->name and param->owner.
4577         (mono_class_from_mono_type): Update.
4578         (mono_class_create_from_typespec): Remove 'container' parameter.
4579         If that parameter is non-null, the result is always inflated by
4580         'mono_class_get_full' anyway.
4581         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
4582         parameter.
4583         (mono_class_get_full): Update.
4584
4585         * class.c (inflate_generic_type) [GENERICINST]: If the generic
4586         instance is not open, don't bother inflating.
4587         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
4588         parse metadata for inflated classes.
4589         (_mono_class_get): Change GenericContext* parameter to
4590         GenericContainer*.
4591         (mono_class_create_from_typespec): Likewise.  Simplify, and
4592         implement trivially.  All the cases are handled in
4593         mono_class_from_mono_type.  Don't inflate returned class.
4594         (mono_class_get_full): Delegate GENERICINST optimization to
4595         inflate_generic_type.
4596         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
4597
4598 2006-02-16  Dick Porter  <dick@ximian.com>
4599
4600         * socket-io.c (create_object_from_sockaddr): Fix typo.
4601         (create_sockaddr_from_object): Check array lengths before
4602         potentially accessing items off the end.
4603         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
4604         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
4605         (ves_icall_System_Net_Sockets_Socket_Send_internal)
4606         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
4607         length checks to avoid wraparound overflows.
4608         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
4609         contents of the array of sockets
4610         (hostent_to_IPHostEntry2)
4611         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
4612         Check return value of inet_ntop ().
4613         (addrinfo_to_IPHostEntry): Fix typo
4614
4615 2006-02-16  Raja R Harinath  <rharinath@novell.com>
4616
4617         Type metadata parsing doesn't use generic-instantiation information.
4618         * metadata.c (mono_metadata_parse_array_full): Change
4619         MonoGenericContext* parameter to MonoGenericContainer*.
4620         (mono_metadata_parse_type_full): Likewise.
4621         (mono_type_create_from_typespec_full): Likewise.
4622         (mono_metadata_parse_mh_full): Likewise.
4623         (mono_metadata_parse_generic_inst): Likewise.
4624         (do_mono_metadata_parse_generic_class): Likewise.
4625         (do_mono_metadata_parse_type): Likewise.
4626         * metadata-internals.h: Update to changes.
4627         * class.c (mono_class_find_enum_basetype): Likewise.
4628         (mono_class_setup_fields): Likewise.
4629         (mono_class_create_from_typespec): Likewise.
4630         * loader.c (method_from_methodspec): Likewise.
4631         (mono_get_method_from_token): Likewise.
4632         (mono_method_get_header): Likewise.
4633
4634 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4635
4636         * marshal.c: handle additional GENERICINST case (patch from
4637         Thong Nguyen <tum@veridicus.com>).
4638         Fix a few cases where LDIND_I/STIND_I was used for references.
4639
4640 2006-02-16  Raja R Harinath  <rharinath@novell.com>
4641
4642         * reflection.c (mono_reflection_get_token): Remove unused variable.
4643
4644 2006-02-16  Martin Baulig  <martin@ximian.com>
4645
4646         * reflection.c (mono_reflection_get_token): Add support for fields
4647         in instantiated generic types.
4648
4649         * icall.c
4650         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
4651
4652 2006-02-15  Martin Baulig  <martin@ximian.com>
4653
4654         * icall.c
4655         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
4656         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
4657         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
4658         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
4659
4660 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
4661
4662         * class.c, metadata.c, metadata.h, object.c, icall.c,
4663         marshal.c: changed mono_type_get_underlying_type () to do
4664         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
4665         Fixed handling of instantiated generic valuetypes (bug #75479).
4666
4667 2006-02-15  Raja R Harinath  <rharinath@novell.com>
4668
4669         * metadata.c (mono_metadata_decode_signed_value): Simplify.
4670         Delegate to mono_metadata_decode_value, and work on the returned value.
4671
4672         * icall.c (ves_icall_MonoType_GetGenericArguments):
4673         Add consistency check here too.
4674         
4675 2006-02-15  Ankit Jain  <jankit@novell.com>
4676
4677         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
4678         char/short etc.
4679
4680 2006-02-15  Ankit Jain  <jankit@novell.com>
4681
4682         * metadata.c (mono_metadata_decode_signed_value): New function to decode
4683         signed values, used only for representing lower bounds of arrays.
4684         (mono_metadata_parse_array_full): Use new
4685         mono_metadata_decode_signed_value to decode lower bounds.
4686
4687 2006-02-14  Martin Baulig  <martin@ximian.com>
4688
4689         * reflection.c
4690         (mono_reflection_get_token): Support "MonoGenericMethod" and
4691         "MonoGenericCMethod" and allow generic instances / methods.
4692
4693 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
4694
4695         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
4696         to obtain the terminal size using an ioctl.
4697
4698         * object.c (mono_nullable_init): Revert this as nullable reference
4699         types are not valid.
4700         (mono_nullable_box): Ditto.
4701
4702 2006-02-09  Dick Porter  <dick@ximian.com>
4703
4704         * threads.c (mono_thread_detach): Drop a reference to the thread
4705         we're detaching.
4706
4707 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
4708
4709         * object.c (mono_nullable_init): Handle nullable reference types.
4710         (mono_nullable_box): Ditto. Fixes #77446.
4711
4712 2006-02-07  Martin Baulig  <martin@ximian.com>
4713
4714         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
4715
4716 2006-02-07  Ankit Jain  <jankit@novell.com>
4717
4718         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
4719         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
4720         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
4721         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
4722         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
4723         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
4724
4725 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
4726
4727         * class.c (mono_class_create_generic): Set type_token as well.
4728
4729         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
4730         compatible with MS.
4731
4732 2006-02-02  Martin Baulig  <martin@ximian.com>
4733
4734         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
4735         has never been used so far.
4736
4737 2006-02-02  Martin Baulig  <martin@ximian.com>
4738
4739         * mono-debug-debugger.h: Changed comment at the top of this file;
4740         the header is not installed, but it's safe to #include it from
4741         within the JIT.
4742
4743         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
4744         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
4745
4746 2006-02-02  Martin Baulig  <martin@ximian.com>
4747
4748         * mono-debug.h
4749         (MonoSymbolTable): Removed the `metadata_info' field.
4750
4751         * mono-debug.c
4752         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
4753
4754         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
4755         (mono_debugger_add_builtin_types): Removed.
4756         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
4757         (mono_debugger_create_notification_function): We now operate on a
4758         pre-allocated area; take a `gpointer' and return `void'.
4759
4760         * mono-debug-debugger.c
4761         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
4762         (mono_debugger_add_builtin_types): Removed.
4763
4764 2006-02-02  Martin Baulig  <martin@ximian.com>
4765
4766         * threads.c (mono_debugger_create_all_threads): New public method.
4767
4768 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4769
4770         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
4771         breaks on several platforms.
4772
4773 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
4774
4775         * assembly.c: the VS.NET build doesn't supply default values for
4776         MONO_ASSEMBLIES and MONO_CFG_DIR.
4777
4778 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
4779
4780         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
4781         helper function.
4782
4783         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
4784
4785         * loader.c (method_from_memberref): Fix a warning.
4786
4787         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
4788
4789         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
4790         with explicit layout. Fixes #77433.
4791
4792 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
4793
4794         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
4795         max_interface_id is initialized before using it. Fixes #77398.
4796         (ves_icall_Type_GetInterfaces): Ditto.
4797
4798 2006-01-30  Raja R Harinath  <rharinath@novell.com>
4799
4800         * metadata.c (mono_metadata_parse_method_signature_full): Don't
4801         allocate memory for parameter attributes when parsing memberref
4802         signatures.
4803         * loader.c (mono_loader_set_error_method_load): Don't warn.
4804         (method_from_memberref): Ensure MissingMethodException gets thrown
4805         if method is not found.  Make warning more informative.
4806
4807 2006-01-29  Raja R Harinath  <harinath@gmail.com>
4808
4809         Fix #77397
4810         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
4811         return true if is byref.
4812         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
4813         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
4814         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
4815
4816 2006-01-27  Raja R Harinath  <rharinath@novell.com>
4817
4818         Fix tests/find-method.2.il
4819         * loader.c (find_method, find_method_in_class): Remove is_inflated
4820         argument.  Revert 2006-01-18 change.
4821         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
4822         is generic, search for method in its generic definition.
4823         * class.c (mono_class_setup_vtable_general): Print generic
4824         arguments of generic types in debugging printf.
4825
4826 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
4827
4828         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
4829
4830         * threads.c (mono_threads_request_thread_dump): New helper function.
4831
4832 2006-01-25  Raja R Harinath  <rharinath@novell.com>
4833
4834         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
4835
4836 2006-01-25  Ankit Jain  <jankit@novell.com>
4837
4838         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
4839         move definition to ..
4840         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
4841         
4842 2006-01-25  Ankit Jain  <jankit@novell.com>
4843             Raja R Harinath  <rharinath@novell.com>
4844
4845         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
4846         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
4847         as necessary.
4848
4849 2006-01-25  Martin Baulig  <martin@ximian.com>
4850
4851         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
4852         `MonoDebuggerThread' into debug-debugger.c.
4853
4854 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
4855
4856         * profiler.c: fix printing of data.
4857
4858 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
4859
4860         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
4861           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
4862
4863 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
4864
4865         * object.c: fix deadlock related to string interning.
4866
4867 2006-01-23  Martin Baulig  <martin@ximian.com>
4868
4869         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
4870
4871         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
4872
4873 2006-01-23  Martin Baulig  <martin@ximian.com>
4874
4875         * mono-debug.h: Moved the prototypes of some functions which are
4876         used by the JIT here from mono-debug-debugger.h.
4877
4878 2006-01-21  Martin Baulig  <martin@ximian.com>
4879
4880         * Makefile.am: Don't install mono-debug-debugger.h.
4881
4882 2006-01-21  Martin Baulig  <martin@ximian.com>
4883
4884         * mono-debug-debugger.h: Enforce the private status of this header
4885         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
4886         Moved some stuff from mono-debugger-jit-wrapper.h here.
4887
4888 2006-01-20  Raja R Harinath  <rharinath@novell.com>
4889
4890         * class.c (mono_class_from_typeref): Add a sanity test to help
4891         catch lack of assembly load/search hooks.
4892
4893 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
4894
4895         * marshal.c (emit_struct_conv): Relax the fields with same offset
4896         check even more. Fixes #77230.
4897
4898 2006-01-18  Martin Baulig  <martin@ximian.com>
4899
4900         * loader.c (find_method_in_class): Added `gboolean is_inflated'
4901         argument; if false, we compare the uninstantiated signatures.
4902         (method_from_memberref): Compare the uninstantiated signatures;
4903         fixes #76417.
4904
4905 2006-01-18  Robert Jordan  <robertj@gmx.net>
4906
4907         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
4908         Clear the weak link. Fixes bug #77170.
4909
4910         * gc.c (mono_gchandle_free):
4911         Reflect *-gc.c changes (tiny optimization).
4912
4913 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
4914
4915         * metadata.c (mono_metadata_signature_dup): Applied patch from
4916         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
4917         Fixes #77288.
4918
4919 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
4920
4921         * marshal.c (emit_struct_conv): Allow fields with the same offset when
4922         marshalling from native to managed code. Fixes #77230.
4923
4924 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4925
4926         * threadpool.c: fix problem (Mac only) when more than one asynchronous
4927         connect. Fixes bug #77020.
4928
4929 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
4930
4931         * class.c: fixed id assignement for nested interfaces (bug #77275).
4932         Added also better info for --print-vtable debugging.
4933
4934 2006-01-12  Martin Baulig  <martin@ximian.com>
4935
4936         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
4937         interfaces on-the-fly; fixes #76625.
4938
4939         * class-internals.h
4940         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
4941         don't need that anymore.
4942
4943 2006-01-12  Miguel de Icaza  <miguel@novell.com>
4944
4945         * socket-io.c
4946         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4947         To avoid initing the nested_classes when not needed I turned the
4948         PeerCredData as a toplevel internal class, as it has to be shared
4949         anyways. 
4950
4951         Fixes the CASA issue.
4952
4953 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
4954
4955         * domain.c: Accessors for MonoJitInfo
4956
4957         * profiler-private.h: Add jitinfo to the end jit hook
4958
4959         * profiler.[ch]: Define new hooks, called after jitting which give
4960         the MonoJitInfo that was compiled
4961
4962 2006-01-10  Martin Baulig  <martin@ximian.com>
4963
4964         * class.c (mono_class_setup_events): Add support for generic
4965         classes; fixes #76440.
4966
4967 2006-01-06  Raja R Harinath  <rharinath@novell.com>
4968
4969         Fix #77160.
4970         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
4971         on passed-in method.
4972
4973 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
4974
4975         * object.c (mono_runtime_invoke_array): Add Nullable support.
4976
4977         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
4978
4979 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
4980
4981         * file-io.c: Don't consider sockets as directory and avoid an endless
4982         loop. Fix bug #76966.
4983
4984 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
4985
4986         * object.c (mono_nullable_init): New helper function.
4987         (mono_nullable_box): Ditto.
4988
4989         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
4990
4991         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
4992
4993         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
4994         
4995 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
4996
4997         * class.c (mono_class_is_assignable_from): Make T assignable to 
4998         Nullable<T>.
4999
5000 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5001
5002         * appdomain.c: Bump corlib version to 46.
5003         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5004         serialization purpose) and changed ves_icall_System_Reflection_
5005         Assembly_get_code_base signature to accept a boolean (to escape, or 
5006         not, the assembly code base).
5007
5008 2005-12-23  Dick Porter  <dick@ximian.com>
5009
5010         * icall.c: 
5011         * threads-types.h: 
5012         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5013         CreateEvent icall now returns "created" boolean parameter.
5014
5015 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5016
5017         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5018         #76967.
5019
5020         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5021         when attr_klass is an interface. Fixes #77045.
5022
5023 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5024
5025         * marshal.c (emit_struct_conv): Fix previous patch.
5026         
5027         * marshal.c (emit_struct_conv): Add a check for fields with the same
5028         offset.
5029
5030 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5031
5032         Fix regression in Mono.C5.
5033         * class.c (mono_class_create_generic): If 'klass' is an interface
5034         set up the interface offsets.
5035         (mono_class_is_assignable_from): Don't throw away generic arguments.
5036
5037 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5038
5039         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5040         type parameters.
5041
5042 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5043
5044         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5045         dead store.
5046         (do_mono_metadata_parse_generic_class): Don't pass the current
5047         generic context when parsing the type being instantiated: it
5048         cannot use it, anyway.
5049
5050         * loader.c (method_from_memberref): Don't inflate a signature if
5051         it doesn't contain any type parameters.
5052
5053 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5054
5055         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5056
5057 2005-12-14  Martin Baulig  <martin@ximian.com>
5058
5059         * class.c
5060         (mono_type_get_name_recurse): Don't return null for type
5061         parameters and open generic classes.
5062         (mono_class_setup_methods): Don't exclude generic instances.
5063         (mono_get_unique_iid): Use different IDs for different
5064         instantiations of the same generic type.
5065         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5066         open generic instances; create a normal vtable for closed generic
5067         instances.
5068         (mono_class_setup_vtable_general): We're now also called for
5069         closed generic instances.
5070
5071         * reflection.c
5072         (mono_reflection_bind_generic_parameters): Correctly use
5073         mono_metadata_lookup_generic_inst() everywhere.
5074
5075 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5076
5077         * object.c (mono_class_create_runtime_vtable): Call 
5078         mono_class_setup_vtable ().
5079
5080         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5081         function.
5082         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5083         #76959.
5084
5085         * loader.c (mono_loader_set_error_type_load): Print the type load
5086         warnings to the console so they are more visible to the user.
5087         (mono_loader_set_error_method_load): Ditto.
5088
5089         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5090         is still broken.
5091         
5092         * reflection.c (ensure_runtime_vtable): Fix build.
5093
5094         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5095         doesn't work in all cases.
5096
5097 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5098
5099         * object.c (mono_array_new_full): Treat a single dimensional array
5100         with 0 lower bounds as an szarray. Fixes #76973.
5101
5102         * reflection.c (custom_attr_visible): Really fix this.
5103
5104 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5105
5106         * reflection.c (custom_attr_visible): Allow nested public attributes
5107         as well.
5108
5109         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5110         interface check.
5111
5112 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5113
5114         * class.c (set_generic_param_owner): Delete.
5115         (mono_class_create_from_typedef): Don't set ->owner field of
5116         generic parameters to "param containers" of enclosing classes.
5117         * reflection.c (mono_reflection_initialize_generic_parameter):
5118         Likewise.
5119
5120 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5121
5122         * reflection.c (custom_attr_visible): Fix build.
5123
5124 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5125
5126         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5127         private attributes.
5128         
5129         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
5130         handling of null parameter defaults.
5131
5132 2005-12-09  Raja R Harinath  <rharinath@novell.com>
5133
5134         * class.c (mono_class_from_generic_parameter): Don't set
5135         klass->generic_container.
5136         (my_mono_class_from_generic_parameter): Likewise.
5137
5138 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
5139
5140         * reflection.c (load_public_key): Fix a warning.
5141         (method_encode_code): Fix unaligned accesses.
5142
5143 2005-12-07  Martin Baulig  <martin@ximian.com>
5144
5145         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5146
5147         * reflection.c
5148         (write_generic_param_entry): Encode our custom attrs.
5149
5150         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5151
5152 2005-12-07  Martin Baulig  <martin@ximian.com>
5153
5154         * reflection.c (encode_new_constraint): Removed; we don't use the
5155         `NewConstraintAttribute' anymore.
5156
5157 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5158
5159         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5160         not fire a TypeResolve event when Assembly.GetType () is called.
5161
5162 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5163
5164         Beginning of support for nullable types in the runtime. Parts of
5165         this patch are from Martin.
5166
5167         * appdomain.c (MONO_CORLIB_VERSION): Bump
5168
5169         * domain.c (mono_init_internal): get the nullable type
5170
5171         * class.c (mono_class_is_nullable): New method
5172         (mono_class_get_nullable_param): New mehod
5173         (mono_class_create_generic): In types T? set cast_class to T
5174
5175         * class-internals.h (MonoDefaults): new nullable default class
5176         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5177         new methods.
5178
5179 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5180
5181         * metadata.c (select_container): New.  Refactor code to select the
5182         appropriate GenericContainer given the type of generic parameter
5183         we are looking for.
5184         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5185         not a MonoGenericContext.  Use select_container.  Update parameters.
5186         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5187         and MONO_TYPE_MVAR.
5188         (unwrap_arrays): Remove duplicate tests.
5189         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5190         generic instantiated class to find any arguments that are generic
5191         parameters.
5192         (mono_type_create_from_typespec_full): Use find_generic_param to
5193         avoid evicting some generic instantiations from the typespec
5194         cache.
5195
5196 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5197
5198         * reflection.c: fixed writing of doubles on ARM FPA.
5199
5200 2005-12-02  Robert Jordan  <robertj@gmx.net>
5201
5202         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5203
5204 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5205
5206         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5207         least on SUSE 10 they are not the same (on debian, they are just the
5208         same thing).
5209
5210 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5211
5212         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5213         DeclaringType for VARs and MVARs.
5214         * class.c (set_generic_param_owner): Fix initialization of owner
5215         fields.
5216
5217 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5218
5219         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5220
5221 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5222
5223         * threadpool.c: workaround for a bug that shows up on the Mac:
5224         select()+connect() on a blocking socket is not like it should
5225         be, so we proceed to connect() in that case, wasting the I/O
5226         threadpool thread until connect succeedes. Fixes bug #75436.
5227
5228 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5229
5230         * threadpool.c: fix typo when setting file descriptor states.
5231
5232 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5233
5234         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5235         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5236         create a temporary signature container.
5237         (mono_metadata_parse_generic_param): Update to changes.
5238         (mono_type_create_from_typespec_full): Update to changes.
5239         * loader.c (method_from_memberref): Don't use a
5240         MonoGenericContainer while parsing a memberref signature.
5241         (method_from_methodspec): Remove dead-store of the 'container'
5242         variable.  It's overwritten before use.
5243
5244         * metadata.c (mono_type_create_from_typespec_full): Make debugging
5245         checks tighter.
5246         (mono_metadata_parse_generic_param): Likewise.
5247         * loader.c (find_method_in_class): Does not need a
5248         MonoGenericContainer.  Use 'mono_method_signature' rather than
5249         'mono_method_signature_full'.
5250         (find_method, mono_get_method_constrained, method_from_memberref):
5251         Update to changes.
5252
5253         * metadata.c (mono_type_create_from_typespec_full): Ensure that
5254         owner-less generic-parameters are never evicted from the typespec
5255         cache.
5256
5257         * loader.c (method_from_memberref): Don't use the current context
5258         when parsing signatures.
5259         (method_from_methodspec, mono_get_method_from_token): Update to changes.
5260
5261         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
5262         side-effects in g_assert.
5263         * loader.c (mono_get_method_from_token): Resolve klass earlier so
5264         that we don't potentially lose information.
5265
5266 2005-11-26  Dick Porter  <dick@ximian.com>
5267
5268         * icall.c:
5269         * threads.c: icalls to implement basic (ie, not named)
5270         System.Threading.Semaphore.
5271
5272 2005-11-24  Dick Porter  <dick@ximian.com>
5273
5274         * process.c
5275         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5276         Use GetProcessId() if it's available.
5277
5278 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
5279
5280         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
5281
5282 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5283             Ankit Jain  <jankit@novell.com>
5284
5285         * loader.c (mono_get_method_from_token): Initialize 'method' field
5286         of all generic parameters before parsing the signature.  Remove
5287         code that "fixed"-up MVAR references.
5288
5289 2005-11-23  Ankit Jain  <jankit@novell.com>
5290
5291         * metadata.c (mono_metadata_has_generic_params):
5292         (mono_metadata_load_generic_param_constraints):
5293         (mono_metadata_load_generic_params): Move duplicate code ...
5294         (mono_metadata_get_generic_param_row): ... here. Returns the
5295         first row-id in GenericParam table for a given owner (token).
5296         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
5297         prototype.
5298
5299 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5300             Ankit Jain  <jankit@novell.com>
5301
5302         * metadata.c (mono_metadata_class_equal): Pass signature_only when
5303         comparing VARs too.
5304         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
5305         type->data.generic_param only if the type is an MVAR.
5306         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
5307         leak owner-less VARs and MVARs into managed space.
5308
5309 2005-11-21  Martin Baulig  <martin@ximian.com>
5310
5311         * class-internals.h
5312         (MonoMethod): Moved the `generic_container' here from
5313         `MonoMethodNormal' since we now also need it for
5314         `MonoMethodPInvoke';
5315         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
5316         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
5317         an union containing both `MonoMethodNormal' and
5318         `MonoMethodPInvoke'.
5319
5320         * loader.c
5321         (mono_get_method_from_token): Allow implementing generic methods
5322         as interncalls.
5323
5324         * threads.c
5325         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
5326         icall.
5327
5328 2005-11-17  Dick Porter  <dick@ximian.com>
5329
5330         * icall.c: 
5331         * process.h: 
5332         * process.c: Split the Process Start_internal icall into
5333         ShellExecuteEx_internal and CreateProcess_internal, which are
5334         called depending on whether UseShellExecute is true.  Fixes bug
5335         76670.
5336
5337         * appdomain.c (MONO_CORLIB_VERSION): Incremented
5338
5339 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
5340
5341         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
5342         'msize' parameters, use the information in 'mspec' instead.
5343         (emit_object_to_ptr_conv): Ditto.
5344
5345         * marshal.c (emit_struct_conv): Handle explicit layout structs with
5346         fields out of order. Fixes #76733.
5347
5348 2005-11-17  Ankit Jain  <jankit@novell.com>
5349
5350         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
5351
5352 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
5353
5354         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
5355           bug #76575.
5356
5357 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5358
5359         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
5360         for types with non-auto layout. Fixes #76717.
5361
5362 2005-11-16  Ankit Jain  <jankit@novell.com>
5363
5364         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
5365         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
5366         if generic_context is null.
5367           (mono_metadata_generic_param_equal): param->owner can be null.
5368           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
5369         null.
5370
5371 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5372
5373         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
5374         the correct value.
5375
5376 2005-11-15  Martin Baulig  <martin@ximian.com>
5377
5378         * object.c (set_value): Use mono_class_from_mono_type() instead of
5379         the hack for generic instances; fixes #76136.
5380
5381 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
5382
5383         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
5384         fields.
5385
5386         * image.c (load_metadata_ptrs): Initialize the new fields.
5387
5388         * reflection.c (create_dynamic_mono_image): Ditto.
5389
5390         * reflection.c (build_compressed_metadata): Use the new fields.
5391
5392         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
5393         icall.
5394
5395         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
5396         icall.
5397         
5398 2005-11-15  Ankit Jain  <jankit@novell.com>
5399             Raja R Harinath  <harinath@gmail.com>
5400
5401         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
5402         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
5403         new per-generic_container cache if the cached MonoType's context matches
5404         the current context.
5405           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
5406         to the expected context.
5407           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
5408
5409 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5410
5411         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
5412         we changed the signature of an icall.
5413         * icall.c: Modify to mono_double_ParseImpl return true/false 
5414         depending on the success, instead of throwing the exception. This will
5415         help us in Double.TryParse methods.
5416         
5417 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
5418
5419         * marshal.c (emit_marshal_object): Throw an exception when
5420         marshalling 'object' instead of crashing. Fixes #76696.
5421
5422 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5423
5424         * class-internals.h: Add prototype for mono_type_get_full_name ().
5425
5426 2005-11-11  Dick Porter  <dick@ximian.com>
5427
5428         * threads.c (mono_thread_manage): Make sure the main thread has
5429         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
5430
5431 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5432
5433         * loader.c (mono_loader_set_error_type_load): Log a warning to the
5434         console about the missing type.
5435         (mono_loader_set_error_method_load): Ditto.
5436
5437 2005-11-09  Miguel de Icaza  <miguel@novell.com>
5438
5439         * mono-config.c (mono_get_config_dir): Set the system defaults if
5440         none is specified.
5441
5442         * assembly.c (mono_set_dirs): New API entry point to set the
5443         assembly and the config directory in one call
5444
5445 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
5446
5447         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
5448         the ftnptr was created from a delegate in a domain other than the
5449         current domain. Fixes #75377.
5450
5451         * exception.h exception.c: Add mono_get_exception_not_supported ().
5452
5453 2005-11-08  Martin Baulig  <martin@ximian.com>
5454
5455         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
5456
5457 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
5458
5459         * security-manager.h: Added definitions to deal with strongname key 
5460         pairs bigger (and smaller) than 1024 bits.
5461         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
5462         adjust wrt the public key length being used.
5463
5464 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
5465
5466         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
5467           Windows build (r51396-51397).
5468
5469 2005-11-03  Martin Baulig  <martin@ximian.com>
5470
5471         * class.c (mono_class_setup_vtable_general): Also add generic
5472         methods to the vtable; fixes #76581.
5473
5474 2005-11-01  Miguel de Icaza  <miguel@novell.com>
5475
5476         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
5477         sure that we lookup GetString method from the System.Text.Encoding
5478         class, not the derived class or we get an empty method.
5479
5480         Fixed class #76612.
5481
5482 2005-10-25  Miguel de Icaza  <miguel@novell.com>
5483
5484         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
5485         if it has been previously set (embedders). 
5486
5487         Make mono_set_rootdir available also on Unix.
5488
5489 005-10-24  Robert Jordan  <robertj@gmx.net>
5490
5491         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
5492
5493 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
5494
5495         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
5496         only calls which are made to native code use this flag.
5497
5498         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
5499
5500 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
5501
5502         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
5503         Add support for FieldBuilders.
5504
5505 2005-10-29  Martin Baulig  <martin@ximian.com>
5506
5507         * mono-debug.c
5508         (mono_debug_using_mono_debugger): New public method; returns
5509         whether we're running inside the debugger.
5510
5511 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
5512
5513         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
5514         for Method/Constructor/FieldBuilders.
5515
5516 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
5517
5518         * reflection.c (module_add_cattrs): Save custom attributes for global methods
5519         and fields as well.
5520
5521 2005-10-26  Martin Baulig  <martin@ximian.com>
5522
5523         * mono-debug-debugger.c
5524         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
5525
5526 2005-10-24  Raja R Harinath  <harinath@gmail.com>
5527
5528         * icall.c (base64_to_byte_array): Don't pass an out-of-range
5529         integer to isspace.
5530
5531 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
5532
5533         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
5534         when passing valuetypes byref. Fixes #76502.
5535
5536 2005-10-19  Jackson Harper  <jackson@ximian.com>
5537
5538         * profiler.c: Don't put a . in front of types that are not in a
5539         namespace.
5540
5541 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
5542
5543         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
5544
5545 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
5546
5547         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
5548         #76436.
5549         (mono_marshal_get_ldflda_wrapper): Fix a warning.
5550
5551 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5552
5553         * assembly.c metadata-internals.h icall.c: Define an additional
5554         parameter for mono_assembly_name_parse_full, so we can avoid creating
5555         S.R.AssemblyName.Version when no version info wasn't passed.
5556         
5557 2005-10-09  Miguel de Icaza  <miguel@novell.com>
5558
5559         * class.c (mono_type_get_full_name): Reimplement method that was
5560         removed. 
5561
5562         * image.c: Some docs
5563
5564 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
5565
5566         * profiler.c (output_newobj_profile): Fix printing of Total memory
5567         on x86.
5568
5569 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5570
5571         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
5572
5573 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
5574
5575         * threads.c: remove debug output.
5576
5577 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5578
5579         * threads.c (mono_thread_manage): Fix crashes if more than 64
5580         threads need to be aborted. Hopefully fixes #75899.
5581
5582         * assembly.c (mono_stringify_assembly_name): New helper function.
5583
5584         * class.c: Use mono_stringify_assembly_name instead of the similar
5585         static function.
5586
5587         * assembly.h assembly.c: Add support for calling a postload search 
5588         hook if an assembly cannot be loaded.
5589
5590         * appdomain.c: Register new search hooks which call the AssemblyResolve
5591         events in AppDomain. Fixes #75231
5592
5593 2005-10-07  Martin Baulig  <martin@ximian.com>
5594
5595         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
5596         methods without debug info.
5597
5598 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
5599
5600         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
5601         wrappers.
5602
5603 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5604
5605         * file-io.c: now that we return symlinks, use lstat and, when the file
5606         is a symbolic link, stat, to get the file attributes. Also avoid the
5607         conversion to/from utf16/external.
5608
5609 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
5610
5611         * class.c (mono_class_layout_fields): Compute klass->has_references
5612         correctly if an embedded valuetype is not yet initialized. Fixes
5613         #76331.
5614
5615 2005-10-04  Martin Baulig  <martin@ximian.com>
5616
5617         * metadata.c
5618         (mono_metadata_load_generic_param_constraints): New public
5619         function; splitted the constraints loading out from
5620         mono_metadata_load_generic_params().
5621
5622         * class.c (mono_class_create_from_typedef): Call
5623         mono_metadata_load_generic_param_constraints() after setting up
5624         the type and creating our parent; fixes #75329.
5625
5626 2005-10-04  Martin Baulig  <martin@ximian.com>
5627
5628         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
5629         non-dynamic parent classes.
5630
5631 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
5632
5633         * file-io.c : win32 build fix (ETXTBSY seems not found).
5634
5635 2005-10-04  Martin Baulig  <martin@ximian.com>
5636
5637         * reflection.c
5638         (mono_image_get_methodspec_token): Make the cache actually work;
5639         fixes #75974.
5640
5641 2005-10-04  Martin Baulig  <martin@ximian.com>
5642
5643         * class.c (mono_class_name_from_token): Removed the unneccessary
5644         `MonoGenericContext *' argument.
5645
5646 2005-10-04  Martin Baulig  <martin@ximian.com>
5647
5648         * loader.c
5649         (method_from_methodspec): Make the caching work again; fixes the
5650         performance regression from #76262.
5651
5652 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5653
5654         * file-io.c:
5655         * file-io.h:
5656         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
5657         GetFileSystemEntries that performs the same work but without going
5658         into io-layer, locking, etc.
5659
5660 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
5661
5662         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
5663         ThreadState_Stopped as well. Fixes #76047.
5664
5665 2005-09-29  Martin Baulig  <martin@ximian.com>
5666
5667         * class.c
5668         (inflate_generic_context): If the new context has a `gmethod', set
5669         its `container' that that gmethod's `container'.
5670
5671         * metadata.c
5672         (mono_metadata_parse_generic_param): Simplify things;
5673         `generic_container = generic_context->container;' is just fine.
5674
5675         * loader.c (method_from_methodspec): Code cleanups.
5676
5677 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
5678
5679         * decimal.c: fix warning (and let gcc generate correct
5680         code on ARM with optimizations).
5681
5682 2005-09-28  Martin Baulig  <martin@ximian.com>
5683
5684         * loader.c
5685         (method_from_memberref): Added `MonoGenericContext *class_context'
5686         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
5687         (method_from_methodspec): If we're a memberref, use the enclosing
5688         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
5689
5690 2005-09-28  Martin Baulig  <martin@ximian.com>
5691
5692         * object.c (mono_runtime_invoke_array): Added support for
5693         MONO_TYPE_GENERICINST; fixes #75917.
5694
5695 2005-09-27  Martin Baulig  <martin@ximian.com>
5696
5697         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
5698         `k->byval_arg.type' to determine the actual type.
5699
5700         * loader.c (method_from_methodspec): Removed some hacks.
5701
5702 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
5703
5704         * class-internals.h (mono_field_is_deleted): Do the test for
5705         rtspecialname before we check the actual name of the field. This
5706         prevents us from dereferencing a pointer into the string table,
5707         saving us from accessing a few pages
5708
5709         * *.c: Replace the use of {Enter,Leave}CriticalSection with
5710         macros. This will allow a deadlock debugger to easily be plugged
5711         in.
5712
5713 2005-09-27  Martin Baulig  <martin@ximian.com>
5714
5715         * loader.c (method_from_methodspec): Create a "signature"
5716         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
5717
5718 2005-09-27  Martin Baulig  <martin@ximian.com>
5719
5720         * class.c
5721         (inflate_generic_class): Correctly set the new context's
5722         container.
5723
5724         * loader.c
5725         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
5726         instead of a `MonoGenericContext *'.
5727         (mono_method_signature_full): Take a `MonoGenericContainer *'
5728         instead of a `MonoGenericContext *'.
5729
5730         * metadata.c
5731         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
5732         instead of a `MonoGenericContext *'.
5733         (mono_metadata_parse_method_signature_full): Likewise.
5734
5735 2005-09-26  Martin Baulig  <martin@ximian.com>
5736
5737         * class.c
5738         (mono_class_from_generic_parameter): Set `klass->generic_container'
5739         (mono_class_from_generic_parameter): Likewise.
5740         (mono_bounded_array_class_get): We inherit the generic container
5741         from the element class.
5742
5743         * loader.c
5744         (find_method, find_method_in_class): Take a `MonoGenericContext *'
5745         argument rather than computing it here.
5746         (method_from_memberref): Correctly set the generic context before
5747         parsing the signature.  Fixes #75681.
5748
5749 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
5750
5751         * object.c (mono_class_has_special_static_fields): Fix warnings.
5752
5753 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5754
5755         * assembly.c: Add parse_public_key function, to
5756         par the public keys. Also added mono_assembly_name_parse_full,
5757         to define it the parsed key should be freed or not.
5758         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
5759         to parse a long format assembly name.
5760         * metadata-internals.h: Keep mono_assembly_name_parse_full as
5761         private, since calling it to preserve the key requires
5762         freeing it manually.
5763         
5764 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
5765
5766         * locales.c : removed HAVE_ICU part.
5767
5768 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
5769
5770         * object.c (mono_class_create_runtime_vtable): Avoid calling 
5771         field_is_special_static if the klass has no special static fields.
5772
5773         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
5774         (MonoCachedClassInfo): Likewise.
5775
5776         * object.c (mono_class_has_special_static_fields): New helper function.
5777
5778 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
5779
5780         * class.c (mono_class_create_from_typedef): Don't call 
5781         interfaces_from_typedef_full for enums.
5782         (mono_class_create_from_typedef): Compute the base types of enums directly
5783         without calling mono_class_setup_fields ().
5784         (mono_class_find_enum_basetype): New helper function.
5785
5786         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
5787         one place inside the string heap.
5788         
5789 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
5790
5791         * class.c: locking fixes, code cleanups, some docs added.
5792         Allocate some data structures in the image mempool.
5793
5794 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
5795
5796         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
5797         the example code.
5798         
5799 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
5800
5801         * class-internals.h, class.c, reflection.c: reduce memory taken by
5802         MonoClass.
5803
5804 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
5805
5806         * metadata.c, metadata.h, loader.h: documentation updates, code and
5807         API cleanups.
5808
5809 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
5810
5811         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
5812         the example code.
5813
5814         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
5815         page faults caused by the runtime while reading metadata.
5816
5817 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5818
5819         * socket-io.c: the field names were changed 3 months ago and no one
5820         realized until bug #76077 got filed!
5821
5822 2005-09-20  Martin Baulig  <martin@ximian.com>
5823
5824         * icall.c (assembly_icalls): Removed some unused debugger icalls.
5825
5826 2005-09-20  Martin Baulig  <martin@ximian.com>
5827
5828         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
5829         write the rank into the class entry.
5830
5831 2005-09-20  Martin Baulig  <martin@ximian.com>
5832
5833         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
5834
5835 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
5836
5837         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5838
5839         * icall.c (custom_attrs_defined_internal): New icall.
5840
5841         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
5842         function.
5843         (mono_custom_attrs_construct_by_type): New helper function.
5844
5845 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
5846
5847         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
5848         terminate the resulting string. Fixes #76123.
5849
5850 2005-09-16  Martin Baulig  <martin@ximian.com>
5851
5852         * mono-debug.c
5853         (mono_debug_add_method): Ignore inflated methods for the moment.
5854
5855 2005-09-14  Martin Baulig  <martin@ximian.com>
5856
5857         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
5858
5859 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
5860
5861         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
5862         return a success/failure indication.
5863         (mono_metadata_interfaces_from_typedef_full): Ditto.
5864         (get_constraints): Ditto.
5865
5866 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
5867
5868         * marshal.c (emit_marshal_array): Fix handling of null arrays.
5869         
5870         * marshal.c (emit_marshal_array): Add support for returning string
5871         arrays from delegates. Fixes #76063.
5872
5873         * marshal.c: Use the emit_ldloc/stloc macros where possible.
5874
5875 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
5876
5877         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
5878         icall.
5879
5880 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
5881
5882         * reflection.c icall.c: Fix after mono_get_exception_type_load
5883         signature change.
5884
5885         * assembly.c (mono_assembly_get_assemblyref): New helper function.
5886         (mono_assembly_load_reference): Use the new helper.
5887
5888         * class-internals.h (MonoLoaderError): New structure containing 
5889         information about type loading errors.
5890
5891         * class-internals.h loader.c: Add APIs to store per-thread loader
5892         error information.
5893
5894         * loader.c class.c: Set the loader error if needed.
5895
5896         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
5897
5898 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
5899
5900         * decimal.c: fixed to handle the broken ARM fp format.
5901
5902 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
5903
5904         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
5905         broken.
5906
5907 2005-09-06  Martin Baulig  <martin@ximian.com>
5908
5909         * domain.c (supported_runtimes): Added v2.0.50727.
5910
5911 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
5912
5913         * culture-info.h: reduce the size of some structures.
5914
5915 2005-09-05  Martin Baulig  <martin@ximian.com>
5916
5917         Reflect latest API changes in the August CTP.
5918
5919         * icall.c
5920         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
5921         ("MonoType.HasGenericArguments"): Removed.
5922         ("MonoMethod.BindGenericParameters"): Renamed to
5923         "MakeGenericMethod".
5924         ("MethodBuilder.BindGenericParameters"): Renamed to
5925         "MakeGenericMethod".    
5926
5927 2005-09-05  Martin Baulig  <martin@ximian.com>
5928
5929         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
5930
5931 2005-09-05  Martin Baulig  <martin@ximian.com>
5932
5933         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5934
5935         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
5936         generic_container is non-NULL.
5937
5938 2005-09-05  Martin Baulig  <martin@ximian.com>
5939
5940         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5941
5942         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
5943
5944 2005-08-29  Michal Moskal  <malekith@nemerle.org>
5945
5946         * reflection.c (encode_locals,
5947         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
5948         for large generic types.
5949
5950 2005-09-05  Martin Baulig  <martin@ximian.com>
5951
5952         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5953
5954         * class.c (mono_dup_array_type): New public method.
5955         (mono_metadata_signature_deep_dup): New public method.
5956         (dup_type): Correctly duplicate array and function types.
5957
5958 2005-09-05  Martin Baulig  <martin@ximian.com>
5959
5960         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5961
5962         * reflection.c (get_default_param_value_blobs): Handle generic types
5963         and generic methods.
5964
5965 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
5966
5967         * class.c: Fixed error reporting (method/class were inversed) for 
5968         inheritance demands.
5969         * security-manager.c|h: Added the AppDomain when calling the managed
5970         System.Security.SecurityManager.InheritanceDemand method.
5971
5972 2005-09-01  Raja R Harinath  <rharinath@novell.com>
5973
5974         * reflection.c (encode_marshal_blob): 'marshaltype' and
5975         'marshaltyperef' are alternate sources for the custom marshaler
5976         name.
5977
5978 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
5979
5980         * class.c: fix creation of array classes with rank == 1
5981         (patch by Ankit Jain <jankit@novell.com>).
5982
5983 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
5984
5985         * object.c: fix check for creating the bound data for arrays vs
5986         szarrays.
5987
5988 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5989
5990         * object.c: configuration file name is now based on the executable name,
5991         not the image name. Fixes bug #75931.
5992
5993 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
5994
5995         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
5996         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
5997
5998 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
5999
6000         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6001
6002 2005-08-24  Ankit Jain  <jankit@novell.com>
6003             Raja R Harinath  <rharinath@novell.com>
6004
6005         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6006           called by it recursively.
6007           (mono_class_init): Remove special case in pending_init handling, since it's
6008           superseded by the fix to mono_class_from_typeref.
6009
6010 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6011
6012         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6013         BROKEN_THREAD_START stuff.
6014
6015 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6016
6017         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6018         trampoline.
6019
6020         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6021         
6022         * object.c (mono_delegate_ctor): Replace the original function address with
6023         a delegate trampoline.
6024
6025 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6026
6027         * icall.c: add boolean argument to base64_to_byte_array and 
6028         InternalFromBase64String to control whether a whitespace-only string
6029         is allowed (or should casue a FormatException to be thrown). We need
6030         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6031         to match the MS behaviour in both profiles.
6032         * appdomain.c: Bump corlib version.
6033
6034 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6035
6036         This patch implements a big portion of publisher policy
6037         support, used to bind assembly versions and redirect
6038         one assembly from version A to version B.
6039
6040         * assembly.c:
6041         New GSList loaded_assembly_bindings, for storing the cached
6042         assembly bindings.
6043         (assembly_binding_maps_name): New static function for checking if a 
6044         assembly binding information maps an assembly name.
6045         (mono_assembly_binding_info_free): New function for freeing
6046         assembly binding information resources.
6047         (get_publisher_policy_info): New static function for retrieving 
6048         assembly binding information from a MonoImage.
6049         (compare_versions): New static function for comparing an assembly
6050         binding information data and the version of an assembly name.
6051         (check_policy_versions): New static function for checking if an
6052         assembly binding info mapping an assembly name is valid for it.
6053         (mono_assembly_load_publisher_policy): New static function for
6054         loading the 'policy.major.minor.MyAssembly' image for an assembly
6055         with an assembly name 'aname'.
6056         (mono_assembly_bind_version): New static function for updating
6057         assembly redirection.
6058         (mono_assembly_apply_binding): New static function for applying
6059         assembly binding.
6060         (search_binding_loaded): New static function for searching 
6061         loaded assembly binding infos in the cache domain.
6062         (mono_assembly_load_full): Don't apply assembly binding for
6063         reflection only assemblies.
6064
6065         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6066         which contains information about assembly binding. Also
6067         declare signature for mono_config_parse_publisher_policy ()
6068         function, used to retrieve pub policy info.
6069         
6070         * mono-config.c:
6071         (publisher_policy_start): New static function used to parse publisher 
6072         policy config files.
6073         (publisher_policy_parser): New static MonoParseHandler containing 
6074         the functions used when parsing config files.
6075         (mono_config_parse_publisher_policy): New function for parsing
6076         publisher policy files.
6077         
6078 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6079
6080         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6081
6082         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6083
6084         * object.c (mono_get_addr_from_ftnptr): New helper function.
6085
6086         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6087
6088         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6089
6090 2005-08-19  Dick Porter  <dick@ximian.com>
6091
6092         * threads.c, threads.h, appdomain.c, appdomain.h,
6093         profiler-private.h, monitor.c, object.c, object-internals.h,
6094         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6095         store the thread ID, so it can hold a 64 bit value if needed.
6096
6097 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6098
6099         * reflection.c (mono_reflection_create_dynamic_method): Store the
6100         handle class into the method references as well so ldtoken works in
6101         dynamic methods.
6102
6103         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6104         types.
6105
6106 2005-08-19  Ankit Jain <jankit@novell.com>
6107
6108         Fix #75847.
6109         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6110           here rather than using the method signature of a arbitrary function
6111           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6112           two arguments.
6113           Hack done with Harinath.
6114
6115 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6116
6117         * threadpool.c: disable printing stack traces when we get a exception
6118         in a threadpool thread. I need to do more testing to figure out which
6119         cases actually print this. Fixes bug #75828.
6120
6121 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6122
6123         * icall.c: there might be ignored whitespace after the last '='. This
6124         fixes length computation and bug #75840.
6125
6126 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6127
6128         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6129         well. Fixes #75809.
6130
6131         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
6132         #75784.
6133         
6134         * reflection.c (create_custom_attr_data): Ditto.
6135
6136 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
6137
6138         * locales.c, culture-info.h : removed RegionLCIDMap.
6139         * culture-info-tables.h : regenerated.
6140
6141 2005-08-16  Martin Baulig  <martin@ximian.com>
6142
6143         * class.c (mono_type_get_name_recurse): Small fix.
6144
6145 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6146
6147         * locales.c : indentation fixie.
6148
6149 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6150
6151         * object-internals.h,
6152           locales.h,
6153           locales.c,
6154           culture-info.h,
6155           icall.c : added RegionInfo table support.
6156         * culture-info-table.h : regenerated for region support.
6157
6158 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6159
6160         * reflection.c (resolve_object): handle all kinds of MonoMethod
6161         including generic ones
6162
6163 2005-08-12  Ankit Jain <jankit@novell.com>
6164
6165         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6166           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6167
6168 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6169
6170         * process.c: Don't close a thread handle when it's NULL. This is a
6171         workaround for bug #75733.
6172
6173 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6174
6175         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6176
6177 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6178
6179         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6180
6181 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6182
6183         * threadpool.c: if a work item in the thread pool has a callback that
6184         catches a exception, don't propagate it after invoking the callback.
6185         Fixes bug #75336.
6186
6187 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6188
6189         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6190
6191         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6192
6193         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6194
6195         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6196
6197 2005-08-03  Ankit Jain  <jankit@novell.com>
6198
6199         Fix #75683.
6200         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6201           PInvoke calling convention is 0.
6202
6203 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6204
6205         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6206         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6207
6208 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6209
6210         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6211         to handle threads not started by the GC (patch by Michael Meeks
6212         <michael.meeks@novell.com>).
6213
6214 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6215
6216         * reflection.c: Make buffer used in emitting types larger for some
6217         big generic types (patch by Michal Moskal).
6218
6219 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6220
6221         * mono-debug.c: Fix some (not all) alignment problems.
6222
6223 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6224
6225         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6226         Invoke mono_image_load_from_data_full passing the refonly
6227         parameter.
6228
6229         * assembly.c
6230         (mono_assembly_open_from_bundle): Add the refonly argument, 
6231         in order to pass it to other methods it calls to.
6232         (do_mono_assembly_open): Add the refonly argument, in order 
6233         to pass it to other methods it calls to.
6234         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6235         the refonly parameter to it.
6236
6237         * image.c: Add loaded_images_refonly_hash and
6238         loaded_images_refonly_guid_hash to cache the reflection
6239         only loaded images.
6240         (mono_images_init): Initialize the hash tables used for
6241         caching the reflection only images.
6242         (load_modules): Invoke mono_image_open_full passing the refonly
6243         parameter to load the modules the correct way.
6244         (build_guid_table): Add the refonly argument, to re-build the 
6245         correct hash table.
6246         (do_mono_image_open): Added the refonly argument, in order to
6247         define it for the loaded image.
6248         (mono_image_loaded_full): New function, which receives an
6249         additional parameter to look for the image in the refonly or
6250         non-refonly section.
6251         (mono_image_loaded): Updated, using mono_image_loaded_full.
6252         (mono_image_loaded_by_guid_full): The same case that happens
6253         with mono_image_loaded_full.
6254         (mono_image_loaded_by_guid): Likewise.
6255         (register_image): Use the ref_only variable inside MonoImage
6256         to decide in which hash table store the current image.
6257         (mono_image_open_from_data_full): Rename
6258         mono_image_open_from_data to mono_image_open_from_data_full,
6259         adding the refonly argument, to define the ref_only variable 
6260         inside MonoImage.
6261         (mono_image_open_from_data): Return 
6262         mono_image_open_from_data_full.
6263         (mono_image_open_full): Rename mono_image_open to
6264         mono_image_open_full, receiving the new refonly argument,
6265         to pass it to inner methods.
6266         (mono_pe_file_open): Update this function, to open
6267         a MonoImage as a non-refonly image.
6268         (mono_image_close): Use the refonly variable inside
6269         MonoImage to remove the image from the correct caches.
6270
6271         * image.h: Add the signatures of mono_image_open_full,
6272         mono_image_open_from_data_full, mono_image_loaded_full,
6273         mono_image_loaded_by_guid_full.
6274
6275         * metadata-internals.h: Add the ref_only field to 
6276         MonoImage.
6277         
6278 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6279
6280         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
6281         Fix the last behavior, which used to load the assemblies and
6282         extract MonoReflectionAssemblyName information, instead of
6283         extract it from the metadata tables. Needed for Reflection
6284         Only assemblies.
6285         
6286 2005-07-29  Martin Baulig  <martin@ximian.com>
6287
6288         * mono-debug-debugger.c
6289         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
6290         not initialized.
6291
6292         * mono-debug.c
6293         (mono_debug_address_from_il_offset): Check whether we have
6294         debugging support before attempting to take the lock.
6295         (mono_debug_source_location_from_address): Likewise.
6296         (mono_debug_source_location_from_il_offset): Likewise.
6297         (mono_debug_il_offset_from_address): Likewise.
6298         (mono_debug_address_from_il_offset): Likewise.
6299
6300 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
6301
6302         * class.c (mono_class_from_name_case): Add support for dynamic images.
6303         Fixes #75650.
6304
6305         * object.c (mono_class_compute_gc_descriptor): Add a workaround
6306         for #75479.
6307
6308 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6309         
6310         * reflection.c (mono_method_get_object): Fix warning.
6311
6312 2005-07-28  Martin Baulig  <martin@ximian.com>
6313
6314         * mono-debug.c
6315         (mono_debug_add_wrapper): Also write the wrapper type.
6316
6317 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6318
6319         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
6320         
6321         * class.c (mono_class_init): Avoid reading nested classes if the AOT
6322         data indicates the class has none.
6323
6324 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
6325
6326         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
6327         loader lock with the debugger lock. Prevents deadlocks for beagle.
6328
6329         Beagle can now run on an smp box for a weekend without any
6330         issues. Woohoo!
6331
6332 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
6333
6334         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
6335         in a module. Fixes #75629.
6336
6337 2005-07-26  Martin Baulig  <martin@ximian.com>
6338
6339         * mono-debug.c (mono_debug_add_wrapper): New static method.
6340         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
6341         interncall or a wrapper.
6342
6343         * mono-debug.h (MonoDebugWrapperData): New public typedef.
6344         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
6345         (MONO_DEBUGGER_VERSION): Bump to 51.
6346
6347         * mono-debug-debugger.c
6348         (mono_debugger_add_type): Removed this empty function.
6349         (mono_debugger_add_method): Likewise.
6350
6351 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
6352
6353         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
6354         before accessing method->slot.
6355
6356 2005-07-21  Jb Evain  <jbevain@gmail.com>
6357
6358         * reflection.c (method_encode_clauses/class): Handle filters clauses.
6359         Fixes #75010.
6360
6361 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
6362
6363         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
6364         #75587.
6365
6366 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
6367
6368         * image.h image.c: Add mono_image_get_guid () API function.
6369
6370 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
6371
6372         There were issues when multiple threads tried to load
6373         assemblies. A deadlock was created between assemblies_mutex and
6374         mono_domain_assemblies_lock. This fixes the issue by making the
6375         assembly ref counting be lock free. See bug 75586.
6376         
6377         * image.c (mono_image_close): The add ref function here was using
6378         Interlocked operations while the unref was using a mutex and a
6379         --. I don't think this was ever a bug that would be exposed in a
6380         non-pendantic way (ie, by an embedder doing a ref on one thread
6381         and an unref on another), but for the sake of correctness, this is
6382         now Interlocked.
6383
6384         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
6385         (mono_assembly_load_reference): Call mono_assembly_addref rather
6386         than touching the refcount ourselves.
6387         (mono_assembly_close): Use InterlockedDecrement to unref the
6388         assembly. Don't acquire the lock unless it is actually needed.
6389
6390 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6391
6392         * class.c (mono_class_layout_fields): Fix calculation of has_references
6393         for generic types.
6394
6395 2005-07-12  Martin Baulig  <martin@ximian.com>
6396
6397         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6398
6399         * metadata.c
6400         (mono_type_hash): Provide better hashing for generic instances.
6401         (mono_generic_inst_hash): Improve hashing.
6402         (mono_generic_class_hash): Likewise.
6403
6404         * reflection.c (mymono_metadata_type_hash): Improve hashing for
6405         generic instances.
6406
6407 2005-07-12  Martin Baulig  <martin@ximian.com>
6408
6409         * reflection.c (mono_reflection_create_runtime_class): Remove the
6410         hack for generic type definitions and non-`Run' assemblies.
6411         (mono_reflection_bind_generic_parameters): Also use
6412         `klass->wastypebuilder' to check for TypeBuilders.
6413
6414 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6415
6416         * class.c (mono_class_layout_fields): Fix calculation of has_references
6417         for generic types.
6418
6419         * class.c (inflate_generic_class): Fix a leak.
6420         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
6421         for generic types.
6422
6423 2005-07-11  Martin Baulig  <martin@ximian.com>
6424
6425         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
6426         on error.
6427
6428 2005-07-11  Martin Baulig  <martin@ximian.com>
6429
6430         * loader.c (find_method): Also lookup in
6431         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
6432
6433 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6434
6435         * appdomain.c (mono_domain_unload): Don't free the error message
6436         before passing it to mono_get_exception_...
6437
6438         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
6439         
6440 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
6441
6442         * threads.c: try to better guess an available RT signal (bug #75387).
6443
6444 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6445
6446         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
6447         and CACHE_OBJECT.
6448
6449 2005-07-07  Martin Baulig  <martin@ximian.com>
6450
6451         * class.c (mono_type_get_name_full): Return NULL for
6452         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
6453         fixes #75408.
6454
6455 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6456
6457         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
6458         exit the appdomain as well being aborted.
6459
6460         * threadpool.c: Create all threadpool threads inside the root appdomain, and
6461         change back to the root domain after calling managed code. This enables
6462         appdomains using threadpools to be unloaded.
6463
6464 2005-07-07  Martin Baulig  <martin@ximian.com>
6465
6466         * class-internals.h
6467         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
6468         into `MonoDynamicGenericClass' since we only need it for dynamic
6469         types.
6470
6471         * reflection.c (mono_class_bind_generic_parameters): We don't need
6472         to compute the `parent' here.
6473
6474 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
6475
6476         * culture-info-table.h : regenerated.
6477
6478 2005-07-06  Martin Baulig  <martin@ximian.com>
6479
6480         * icall.c
6481         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
6482
6483         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
6484
6485 2005-07-06  Martin Baulig  <martin@ximian.com>
6486
6487         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
6488         we're doing a signature-only comparision; fixes #74945.
6489
6490 2005-07-06  Martin Baulig  <martin@ximian.com>
6491
6492         * class-internals.h (MonoGenericClass): Moved some things out into
6493         a new `MonoInflatedGenericClass' type.  
6494         (MonoInflatedGenericClass): New type; the `klass' of a
6495         `MonoGenericClass' is now computed lazyly in
6496         mono_get_inflated_generic_class().      
6497
6498         * class.c (mono_get_inflated_generic_class): New public function.
6499         (mono_class_inflate_generic_method): Removed the unused
6500         `MonoClass *' argument.
6501         (setup_generic_vtable): Don't call mono_get_inflated_method() on
6502         all the methods.
6503         (mono_class_create_generic): Make this static and merge it with
6504         mono_class_create_generic_2(); we're now called automatically from
6505         mono_get_inflated_generic_class().
6506
6507         * loader.c (mono_method_signature): Call
6508         mono_get_inflated_method() here.
6509
6510 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
6511
6512         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
6513         type of fields with RVA.
6514
6515         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
6516         for this pseudo class.
6517         (my_mono_class_from_generic_parameter): Likewise.
6518         (mono_class_init): Allow interfaces to have cctors.
6519
6520 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6521
6522         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
6523         lazily for AOT methods.
6524
6525 2005-07-05  Martin Baulig  <martin@ximian.com>
6526
6527         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
6528         returns FALSE for a successful match, not TRUE.
6529
6530 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6531
6532         * loader.c (mono_method_get_index): Optimize this a bit.
6533
6534 2005-07-04  Martin Baulig  <martin@ximian.com>
6535
6536         * class.c
6537         (class_compute_field_layout): Move the check for generic type
6538         definitions into mono_class_layout_fields().  Fixes #74684.
6539         (mono_class_from_generic_parameter): Correctly compute
6540         `klass->parent'; fixes #75457.
6541
6542         * reflection.c (register_assembly, register_module): Make sure
6543         `domain->rejobject_hash' is already created.
6544
6545 2005-07-02  Martin Baulig  <martin@ximian.com>
6546
6547         * class-internals.h
6548         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
6549         `MonoDynamicGenericClass'.      
6550
6551 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
6552
6553         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
6554         returned by a field getter is null, since null is a valid value.
6555
6556 2005-07-01  Martin Baulig  <martin@ximian.com>
6557
6558         * reflection.c (mono_reflection_generic_class_initialize): Update
6559         the `dgclass->fields [i].parent' to the correct class.
6560         (mono_image_get_fieldref_token): Use the declaring type, not the
6561         reflected type.
6562
6563 2005-07-01  Martin Baulig  <martin@ximian.com>
6564
6565         * loader.c (find_method): Also look in the interfaces; fixes #75429.
6566
6567 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
6568
6569         * threads.c (thread_cleanup): assert that thread != NULL
6570         (wait_for_tids_or_state_change): We were using the wrong variable
6571         when accessing wait->threads. `i' was always out of the bounds of
6572         the array.
6573
6574 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6575
6576         * loader.c: map user32 and kernel32 to libMonoSupportW
6577
6578 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
6579
6580         * appdomain.c (unload_thread_main): Mark this as WINAPI.
6581
6582 2005-06-28  Martin Baulig  <martin@ximian.com>
6583
6584         * loader.c (method_from_methodspec): Fix #75334.
6585
6586 2005-06-28  Martin Baulig  <martin@ximian.com>
6587
6588         Fix #74953 - Arrays now implement the generic IList<T> interface
6589         on the 2.0 platform.
6590
6591         * class-internals.h (MonoDefaults): Added `generic_array_class'.
6592
6593         * reflection.c (mono_class_bind_generic_parameters): New public
6594         function; similar to mono_reflection_bind_generic_parameters(),
6595         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
6596
6597         * domain.c (mono_init_internal): Try to initialize.
6598         `mono_defaults.generic_array_class' here; this'll only succeed if
6599         we're using the 2.0 corlib.
6600
6601         * icall.c
6602         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
6603         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
6604         (mono_lookup_internal_call): Added support for nested classes.
6605
6606         * loader.c
6607         (mono_get_method_from_token): Set `result->signature->pinvoke' if
6608         we're an interncall and have generic arguments.
6609
6610         * class.c
6611         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
6612         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
6613         instance of System.Array.InternalArray<T> for arrays, so they
6614         implement the generic IList<T> interface.
6615
6616 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
6617
6618         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
6619         (chastamar@yahoo.com). Fixes #75374.    
6620
6621 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
6622
6623         * culture-info-table.h: regenerated.
6624
6625 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6626
6627         * icall.c: handle spaces correctly for base64 strings.
6628
6629 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
6630
6631         * *.c: Kill some warnings.
6632
6633 2005-06-23  Duncan Mak  <duncan@novell.com>
6634
6635         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
6636         that this builds on Solaris 10 (x86).
6637
6638 2005-06-23  Martin Baulig  <martin@ximian.com>
6639
6640         * class.c
6641         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
6642         generic type definitions.
6643
6644 2005-06-23  Martin Baulig  <martin@ximian.com>
6645
6646         Fix #75331.
6647
6648         * metadata.c (mono_class_get_overrides): Renamed to
6649         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
6650         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
6651         pass it to mono_get_method_full().
6652
6653 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
6654
6655         * reflection.c (mono_reflection_create_runtime_class): take the
6656         mono_domain_lock in this method. Prevents deadlocks
6657
6658 2005-06-22  Martin Baulig  <martin@ximian.com>
6659
6660         * loader.c (method_from_methodspec): Fix #75330.
6661
6662 2005-06-22  Martin Baulig  <martin@ximian.com>
6663
6664         * reflection.c (type_get_qualified_name): Use
6665         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
6666         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
6667         argument; use it if we don't have an assembly name.
6668
6669 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
6670
6671         * object.c: In mono_message_init, set "copy out" flag for in
6672         parameters with the [Out] flag.
6673
6674 2005-06-21  Martin Baulig  <martin@ximian.com>
6675
6676         * class.c
6677         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
6678         and MONO_TYPE_PTR.
6679
6680 2005-06-21  Martin Baulig  <martin@ximian.com>
6681
6682         * class.c (mono_class_init): Don't initialize `class->fields' for
6683         generic instances since they're initialized again in
6684         compute_field_layout(). 
6685         (compute_field_layout): Set the field's `generic_info' here; fix
6686         #75320. 
6687
6688 2005-06-21  Martin Baulig  <martin@ximian.com>
6689
6690         * class-internals.h
6691         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
6692
6693         * metadata.c (mono_metadata_generic_method_equal): Also
6694         distinguish the `generic_class'; fixes #75334.
6695
6696 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6697
6698         * domain.c:
6699         * appdomain.c:
6700         * domain-internals.h:
6701         * reflection.c: 'domain_assemblies' field is now protected by its own
6702         lock. Don't call into managed code to run the AssemblyLoad event if we
6703         now there are no registered delegates for it.
6704
6705 2005-06-20  Martin Baulig  <martin@ximian.com>
6706
6707         * class.c (mono_class_is_assignable_from): Use a custom version of
6708         mono_class_has_parent() to make things work for generic instances;
6709         fix #75300.
6710
6711 2005-06-20  Martin Baulig  <martin@ximian.com>
6712
6713         * loader.c (method_from_methodspec): Apply a patch from
6714         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
6715
6716 2005-06-20  Martin Baulig  <martin@ximian.com>
6717
6718         * class.c (mono_class_init): Reverted Zoltan's last change; it
6719         breaks generics.
6720
6721 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
6722
6723         * threads.c (wait_for_tids_or_state_change): Add missing locking.
6724
6725 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6726
6727         * socket-io.c: fix the index in the socket array for writable/error
6728         sockets. Fixes bug #75306.
6729
6730 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
6731
6732         * class.c (mono_class_init): Allow interfaces to have static ctors.
6733
6734 2005-06-17  Martin Baulig  <martin@ximian.com>
6735
6736         * loader.c (method_from_methodspec): Use `context->container' when
6737         parsing the `gmethod->inst'.
6738
6739 2005-06-17  Martin Baulig  <martin@ximian.com>
6740
6741         * class.c (mono_type_get_name_recurse): Don't add the assembly
6742         name for type arguments.
6743
6744 2005-06-15  Martin Baulig  <martin@ximian.com>
6745
6746         * reflection.c (mono_image_get_inflated_method_token): Encode
6747         correct klass; fixes #75260.
6748
6749 2005-06-13 Michal Moskal <malekith@nemerle.org>
6750
6751         * icall.c: Make GetCorrespondingMethod/Constructor take
6752         MonoReflectionMethod method not MonoMethod. Removed
6753         MonoType.GetCorrespondingField, and make
6754         MonoGenericType.GetCorrespondingField take name not
6755         MonoClassField.
6756
6757 2005-06-13  Michal Moskal <malekith@nemerle.org>
6758
6759         * reflection.c (field_encode_signature, encode_locals):
6760          Make sizes of buffers for types larger (for big generic types).
6761          (create_generic_typespec,
6762          mono_reflection_sighelper_get_signature_local,
6763          mono_reflection_sighelper_get_signature_field):
6764          Add asserts for too small buffers.
6765
6766 2005-06-15  Martin Baulig  <martin@ximian.com>
6767
6768         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
6769         if our parent is not a dynamic type.
6770
6771 2005-06-15  Martin Baulig  <martin@ximian.com>
6772
6773         * class-internals.h (MonoTypeNameFormat): New enum.
6774
6775         * class.c
6776         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
6777         (mono_type_get_full_name): Removed.
6778         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
6779         argument instead of the boolean's.
6780
6781         * icall.c (ves_icall_System_MonoType_getFullName):
6782         Added `gboolean assembly_qualified'.    
6783
6784         * reflection.h
6785         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
6786
6787         * reflection.c (mono_reflection_parse_type): Parse the new type
6788         name format.
6789
6790 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6791
6792         * icall.c: no need to convert from utf16 to utf8 and then back again
6793         after the call to GetLogicalDrives.
6794
6795 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6796
6797         * icall.c: frombase64. Fix problems exposed by new tests.
6798
6799 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6800
6801         * icall.c: added internal calls for converting char [] and strings in
6802         base64 into byte [].
6803
6804 2005-06-10  Martin Baulig  <martin@ximian.com>
6805
6806         * class.c (mono_class_create_generic_2): Read the nested classes
6807         from the metadata rather than from `gklass->nested_classes' since
6808         `gklass' might not be initialized yet.
6809
6810 2005-06-09  Duncan Mak  <duncan@novell.com>
6811
6812         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
6813         all public headers. Fixes #74919.
6814
6815 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
6816
6817         * domain.c: The key for proxy_vtable_hash is now a pointer
6818         array. Added new GHashFunc and GCompareFunc functions for this.
6819
6820         * class.h: The list of interfaces in MonoRemoteClass is known in
6821         advance and can't grow (we create a new MonoRemoteClass if needed),
6822         so now the interface array can be allocated together with
6823         MonoRemoteClass.
6824         
6825         * object.c: Added a new method create_remote_class_key.
6826         Fixed mono_remote_class so it does not depend on
6827         mono_upgrade_remote_class.
6828         Removed extend_interface_array.
6829         Added new method clone_remote_class(), which makes a copy of a remote
6830         class and adds a new interface or class to it.
6831         mono_upgrade_remote_class() now creates a new remote class (or gets
6832         it from the cache) if an vtable upgrade is needed. In this way
6833         we make sure that other objects sharing the same remote class
6834         don't get the new vtable with unwanted interfaces.
6835         
6836         * object-internals.h:
6837         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
6838         
6839         * marshal.c: Track changes in mono_upgrade_remote_class().
6840
6841 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
6842         * icall.c: Add runtime methods for obtaining members of inflated
6843         class, which were created from supplied non-inflated members. It
6844         is used in internal Get{Method,Constructor,Field} methods in
6845         System.Type
6846
6847 2005-06-09  Martin Baulig  <martin@ximian.com>
6848
6849         * reflection.c
6850         (mono_reflection_bind_generic_method_parameters): Fix #75169.
6851
6852 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6853         * reflection.c (mono_image_basic_init): Define
6854         Version in MonoDynamicAssembly. 
6855         
6856 2005-06-08  Martin Baulig  <martin@ximian.com>
6857
6858         Fix #75136.
6859
6860         * loader.c
6861         (mono_method_signature_full): New public method; takes a
6862         `MonoGenericContext *'.
6863         (find_method): Use mono_method_signature_full() and pass the
6864         klass'es context to it.
6865
6866         * class.c (mono_class_is_inflated_method): Use
6867         mono_method_signature_full() and pass the context to it.
6868
6869 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
6870
6871         * object.c: add proper locking in mono_remote_class_vtable(),
6872         fixes possible memory corruption.
6873
6874 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
6875
6876         * marshal.c (mono_remoting_marshal_init): set
6877         initialized after initialization.
6878
6879 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
6880
6881         * locales.c : hush.
6882
6883 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
6884
6885         * object.c (extend_interface_array): fix really silly
6886         memory corrupting / comparison bug.
6887
6888 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6889
6890         * reflection.c: Functions added to support the creation
6891         of CustomAttributeData, which includes Attribute data
6892         used by ReflectionOnly methods.
6893
6894         * reflection.h:  mono_reflection_get_custom_attrs_data and
6895          mono_custom_attrs_data_construct added (functions exposed).
6896
6897          * icall.c: Added mono_reflection_get_custom_attrs_data
6898          as icall.
6899         
6900 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
6901
6902         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
6903         lupus's request.
6904
6905 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
6906
6907         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
6908
6909         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
6910         dynamic DllImportAttribute.
6911
6912         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
6913         dynamic DllImportAttribute.
6914
6915         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
6916         Fixes #75162.
6917
6918 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6919
6920         * threads.c: avoid segfault when an unstarted thread is aborted.
6921
6922 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
6923
6924         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
6925         Returns the name and version of the runtime for reporting.
6926
6927 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6928
6929         * appdomain.c: bump corlib version.
6930         * object-internals.h: new field in MonoReflectionAssembly.
6931
6932 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6933
6934         * object-internals.h: Carlos forgot to add this field.
6935
6936 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6937
6938         * icall.c: Added create_version to create instances
6939         of Version of MonoReflectionAssemblyName. This change helps
6940         the AssemblyName tests to keep running fine.
6941         
6942 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
6943   
6944         * object.c (mono_method_return_message_restore): A somehow less
6945         intrusive fix for #75138.
6946
6947 2005-06-03  Raja R Harinath  <rharinath@novell.com>
6948
6949         * object.c (mono_method_return_message_restore): Fix computation
6950         of expected number of out args.
6951
6952 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
6953
6954         * reflection.c (mono_image_get_method_info): Fix the case when the
6955         charset is empty.
6956
6957 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
6958
6959         * object.c: Added missing null check in
6960           mono_method_return_message_restore.
6961
6962 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
6963
6964         * reflection.c (mono_image_get_method_info): Handle the case when
6965         dllentry is empty.
6966
6967 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
6968
6969         * object.c: When creating the vtable for a proxy, take into account
6970         all inherited interfaces, not only the ones registered in
6971         iclass->interfaces. This fixs bug #74996.
6972         Also, in mono_method_return_message_restore, verify that the array
6973         of out args has the expected lengh.
6974
6975 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6976
6977         * socket-io.c: update the timeout in Poll when the call is interrupte.
6978
6979 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6980
6981         * socket-io.c: support abort/suspend in Select_internal after last
6982         change.
6983
6984 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6985
6986         * threadpool.c: remove warning.
6987
6988 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6989
6990         * icall.c:
6991         * socket-io.[ch]: Select_internal uses poll() now when available, thus
6992         removing the 1024 limit from select(). Runtime part of the fix for
6993         bug #71203.
6994
6995 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6996
6997         * socket-io.c: when resolving the addresses for the same
6998         host returned by gethostname(), get the local IPs from the interface
6999         list. Loopback addresses are discarded if the are interfaces up with
7000         non-loopback ones. Fixes bug #63265.
7001
7002 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7003
7004         * appdomain.c, verify.c, object-internals.h, reflection.c:
7005         bumped corlib number to 36, and added new extra_flags field
7006         to ReflectionMethodBuilder and friends.  Fixes #75060.
7007
7008 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7009
7010         * gc.c: register a new weak link only if the object is non-null
7011         (fixes bug#75047).
7012
7013 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7014
7015         * culture-info.h : short time pattern too.
7016
7017 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7018
7019         * culture-info.h : expand long time pattern string length.
7020
7021 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7022
7023         * culture-info-table.h : update (more French date format; #72788).
7024
7025 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7026
7027         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7028         the method is static. Fixes #75029.
7029
7030 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7031
7032         * reflection.c: Update the table_idx field of method builders after
7033         saving the module, since it can change. This is a workaround for
7034         bug #74914. 
7035
7036 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7037
7038         * culture-info-table.h : update (additional French date format).
7039
7040 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7041
7042         * icall.c (ves_icall_type_Equals): Revert last change.
7043         
7044         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7045
7046         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7047
7048 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7049
7050         * class-internals.h: Added executioncontext_class field to 
7051         MonoDefaults structure.
7052         * domain.c: Cache System.Threading.ExecutionContext class in 
7053         mono_defaults.
7054         * object.c: Capture the ExecutionContext for asynchroneous calls in
7055          mono_async_result_new.
7056         * object-internals.h: Added execution_context and original_context 
7057         fields to MonoAsyncResult. Added execution_context to MonoThread.
7058         * security-manager.c|.h: Added mono_get_context_capture_method to 
7059         return the capture method (if required by the security manager or by
7060         the framework version used).
7061         * threadpool.c: Apply capture (if present) ExecutionContext in 
7062         mono_async_invoke and revert to original context after it completes.
7063
7064 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7065
7066         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7067
7068 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7069
7070         * culture-info-table.h : zh-CHT related workaround.
7071
7072 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7073
7074         * marshal.c (emit_marshal_custom): Add some error checking and call the
7075         methods in the ICustomMarshaler interface. Fixes #74875.
7076         
7077         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7078         native->managed wrappers.
7079
7080 2005-05-12  Martin Baulig  <martin@ximian.com>
7081
7082         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7083         here and use the loader lock.
7084
7085         * mono-debug.c: Properly lock when the debugger is not attached.
7086         (mono_debug_init): Release the initial lock if we're not running
7087         in the debugger.
7088
7089 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7090
7091         * marshal.c (emit_marshal_custom): Pass through NULL values without
7092         calling the custom marshalling routines.
7093
7094         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7095         conversion in structures. Fixes #74882.
7096
7097 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7098
7099         * culture-info-table.h : zh-* cultures were missing.
7100
7101 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7102
7103         * threads.c: Added a new event background_change_event which is signaled
7104         when a thread changes its background mode.
7105         Moved here several checks previously done in managed code. The checks
7106         require the thread lock, and using the thread lock in managed code
7107         can result in deadlocks.
7108         Merged Start_internal and Thread_internal into a single method. Now 
7109         Thread_internal does all work of creating and starting a thread.
7110         Added icalls for setting and getting the state of the object. Moved from
7111         managed code to avoid locking there.
7112         Added wait_for_tids_or_state_change() which is called instad of
7113         wait_for_tids when waiting for non-backround threads to end. This method
7114         will return if one of the threads ends or the background_change_event
7115         is signaled.
7116         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7117         the background mode. This method signals the background_change_event
7118         event.
7119         * icall.c:
7120         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7121         removed Start_internal.
7122         
7123 2005-05-11  Martin Baulig  <martin@ximian.com>
7124
7125         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7126         to order of some fields to get proper alignment on 64-bit machines.
7127
7128 2005-05-11  Martin Baulig  <martin@ximian.com>
7129
7130         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
7131         changes as they're broken and completely fuck up the debugger.
7132
7133         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
7134
7135 2005-05-10  Martin Baulig  <martin@ximian.com>
7136
7137         * reflection.c (mono_reflection_generic_class_initialize): Don't
7138         call mono_class_setup_parent() here.
7139
7140 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7141
7142         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7143         send/receive timeout use an integer in milliseconds. We were using a
7144         struct timeval.
7145
7146 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7147
7148         * locales.c:
7149         (internal_get_cultures): reserve the first slot of the array for the
7150         InvariantCulture, which will be filled in managed code.
7151
7152 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7153
7154         * reflection.c (mono_image_fill_module_table): Initialize the
7155         GENERATION field as well.
7156
7157 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7158
7159         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7160         Monitor.Enter on the object.
7161
7162 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7163
7164         * threads.c: Enable the wait for running threads when exiting.
7165         * icall.c: Suspend all threads before exiting.
7166
7167 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7168
7169         * assembly.c (mono_assembly_load_reference): Fix warning.
7170
7171 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7172
7173         * threadpool.c: changed the default number of threads per cpu. From now
7174         on, the default will be 20 + (5 * number of cpus) instead of 50.
7175
7176 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7177
7178         * loader.c (mono_method_get_signature_full): Add locking here.
7179
7180 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7181
7182         * appdomain.c: Moved methods for parsing and freeing assembly
7183         names to assembly.c.
7184         * assembly.c, domain-internals.h: Created public methods for parsing
7185         assembly names. Fixed mono_assembly_load_with_partial_name:
7186         it now finds the best match, taking into account the version,
7187         token and culture specified in the partial name. Also return
7188         the latest version if no version information is specified.
7189
7190 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7191
7192         * threadpool.c: replace check for SocketAsyncCall class.
7193
7194 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7195
7196         * threadpool-internals.h:
7197         * Makefile.am: added threadpool-internals.h
7198
7199         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7200         that happen in threadpool threads (tested on MS).
7201         (mono_thread_pool_remove_socket): new function that dispatch any pending
7202         AIO call on a socket that is closing. By now only epoll really needs it,
7203         as select/poll wake up when the socket closes.
7204
7205
7206         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7207
7208 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7209
7210         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7211
7212 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7213
7214         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7215
7216 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7217
7218         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7219         has an abort request, convert it into a suspend request.
7220
7221 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7222
7223         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7224         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7225         is not supported yet.
7226
7227 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7228
7229         * image.c: register assemblies loaded from data (bundles) in the loaded
7230         assemblies hash. Fixes bug #74772.
7231
7232 2005-04-29  Martin Baulig  <martin@ximian.com>
7233
7234         * class.c (mono_type_get_name_recurse): Update to the new naming
7235         schema from the latest .NET 2.x beta2.
7236         (mono_class_setup_vtable_general): If we're a generic instance,
7237         copy the vtable from our generic type definition and inflate all
7238         the methods in it.
7239
7240         * loader.c (find_method): Update to the new naming schema from the
7241         latest .NET 2.x beta2.
7242
7243 2005-04-29  Raja R Harinath  <harinath@gmail.com>
7244
7245         * class.c (mono_class_init): Add a mono_loader_unlock to the
7246         #74734 fix.
7247
7248 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
7249
7250         * icall.c (ves_icall_System_Environment_Exit): Remove the 
7251         suspend_all_other_threads () call for the time being, since it can hang.
7252
7253         * threads.c (mono_thread_manage): Similarly, disable the waiting for
7254         the background threads to exit, since it can also hang.
7255
7256         * class.c (mono_class_init): Applied patch from Ankit Jain 
7257         (radical@gmail.com). Avoid pending init errors when a field refers
7258         to a nested class using a typeref. Fixes #74734.
7259
7260         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
7261         this for dynamic modules.
7262
7263 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7264
7265         * threads.c: don't wait for threads that are in the process of aborting
7266         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
7267         and waiting for background threads to finish. This makes xsp and
7268         mod-mono-server exit without random length delays and/or hangs.
7269
7270 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7271
7272         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
7273
7274 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
7275
7276         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
7277         dynamic types to prevent infinite loops. Fixes #74727.
7278
7279         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
7280         ..._is_assignable_to.
7281
7282 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
7283
7284         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
7285
7286 2005-04-25  Martin Baulig  <martin@ximian.com>
7287
7288         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
7289
7290         * domain.c
7291         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
7292
7293         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
7294
7295         * reflection.c (build_compressed_metadata): Set metadata header
7296         version to 2.0.
7297
7298 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
7299
7300         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
7301         number into an integral and a decimal part. Fixes #70473.
7302
7303         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
7304
7305 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
7306
7307         * culture-info-table.h : reflected the latest locale-builder output.
7308
7309 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7310
7311         * threadpool.c: check for SuspendRequested too when deciding if
7312         mono_thread_interruption_checkpoint should be called.
7313
7314 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7315
7316         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
7317         * threads.c: remove interruption_mutex and use Interlocked instead. When
7318         suspending all the threads, wait for all the suspended events at once.
7319         If we're shutting down and get an APC that is going to be queued,
7320         call mono_thread_execute_interruption immediately, as the thread might
7321         be sleeping on a pthread condition or mutex.
7322
7323         * icall.c: call mono_runtime_set_shutting_down before suspending the
7324         threads.
7325
7326         Fixes bug #74693. And now xsp is happier when exiting.
7327
7328 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
7329
7330         * loader.c (mono_stack_walk): Fix #74690.
7331
7332 2005-04-22  Martin Baulig  <martin@ximian.com>
7333
7334         * mono-debug.h (MonoDebugMethodJitInfo): Added
7335         `MonoDebugMethodJitInfo *jit'.
7336
7337         * mono-debug.c (mono_debug_read_method): Cache the
7338         MonoDebugMethodJitInfo in `address->jit'.
7339         (mono_debug_free_method_jit_info): New public method.
7340
7341 2005-04-22  Martin Baulig  <martin@ximian.com>
7342
7343         * class.c (mono_class_is_assignable_from): Disallow
7344         type parameter -> interface.
7345
7346 2005-04-21  Dick Porter  <dick@ximian.com>
7347
7348         * threads.c (mono_thread_create): Turn an assertion into an error.
7349
7350 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
7351
7352         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
7353         
7354         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
7355         Fix some gcc 4.0 warnings.
7356
7357 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
7358
7359         * file-io.c: fix alt dir separator char on unix systems
7360         and cleanup (fixes bug #71214).
7361
7362 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
7363
7364         * marshal.c: Use CALLVIRT instead of CALL when dispatching
7365         a call to a remote domain, since the method may be an
7366         interface method in the client domain. This fixes bug #74192.
7367
7368 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7369
7370         * threadpool.c: recv/send are now performed before going back to managed
7371         code to save one transition.
7372
7373 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7374
7375         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
7376
7377         * metadata/threadpool.c: removed hack to workaround the bug above.
7378
7379         Fixes bug #74618.
7380
7381 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
7382
7383         * reflection.c reflection.h: Fix handling of parameter defaults in
7384         dynamic methods. Also fixes handling of parameter attributes.
7385         Fixes #74609.
7386
7387         * mono-debug.c (mono_debug_close_image): Fix warning.
7388
7389 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7390
7391         * socket-io.h: replaced old unused field with new 'blocking'.
7392         * threadpool.c: restore socket blocking state on windows(tm).
7393
7394 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
7395
7396         * icall.c: don't return the codebase in the AssemblyName[] returned by
7397         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
7398         * object-internals.h: Removed FIXME (fields were presents) and fixed
7399         versioncompat declaration.
7400
7401 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7402
7403         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
7404         not closed, so don't cleanup when it happens.
7405
7406 2005-04-13  Chris Toshok  <toshok@ximian.com>
7407
7408         * mono-debug-debugger.h: change prototype for
7409         mono_debugger_lookup_type.
7410
7411         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
7412         this function, although it should probably be named
7413         mono_debugger_init_type.
7414
7415 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7416
7417         * threadpool.c: fix non-AIO case.
7418
7419 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
7420
7421         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
7422         the built-in profiler to measure just JIT compilation times.
7423
7424 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7425
7426         * threadpool.c: the epollfd might be closed by another thread at
7427         any time, so ignore EBADF at treat it as a "we're closing" sign.
7428
7429 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7430
7431         * threadpool.c: release the semaphores with a count equals to the number
7432         of working threads in both IO and regular pools. Fixed typo that messed
7433         up the count of IO pool threads. Don't initialize the pipe handles if
7434         we're using epoll.
7435
7436 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7437
7438         * threadpool.c: some systems don't like a NULL when deleting the socket
7439         from epoll.
7440
7441 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7442
7443         * threadpool.c: fix semaphore allocation.
7444
7445 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7446
7447         * threadpool.c: added epoll() based implementation for asynchronous IO
7448         that is used instead of the default poll() when available.
7449         It can be disabled by setting MONO_DISABLE_AIO.
7450
7451 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7452
7453         * threadpool.c: windows needs 'closesocket' and instead of returning
7454         0 when the stream is closed while in select, it returns -1. Fixes bug
7455         #74573.
7456
7457 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
7458
7459         * class.c (class_compute_field_layout): Fix the regression caused by
7460         the previous try.
7461
7462 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7463
7464         * threadpool.c: separate pool for socket async. IO.
7465         * threadpool.h: mono_max_worker_threads is not a global any more.
7466
7467 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
7468
7469         * class.c (class_compute_field_layout): Fix #74549.
7470
7471 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7472
7473         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
7474         use 2 connected sockets instead.
7475
7476 2005-04-08  Miguel de Icaza  <miguel@novell.com>
7477
7478         * mono-config.c: Add new entry point for mkbundle
7479         mono_config_parse_memory. 
7480
7481 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7482
7483         * threadpool.c: removed another unused function.
7484
7485 2005-04-08  Ankit Jain  <radical@corewars.org>
7486
7487         * reflection.c (get_default_param_value_blobs): Add 'types'
7488         parameter to get the types encoded in the constant table.
7489         (mono_param_get_objects): Use the type from the constant table,
7490         not the type of the parameter, when creating default values.
7491         Handle null default values correctly.
7492
7493 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7494
7495         * file-io.c:
7496         * file-io.h:
7497         * threadpool.c:
7498         * threadpool.h:
7499         * icall.c:
7500         * socket-io.c: removed dead code for async IO.
7501
7502 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7503
7504         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
7505
7506         * threadpool.c: intercept socket async. calls and pass them to a thread
7507         that is polling and dispatching the job items to the threadpool as
7508         socket become ready. Fixes bugs #71217, #71933.
7509
7510         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
7511         between char and short/ushort arrays.
7512
7513         * socket-io.c: remove dead code.
7514
7515 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7516
7517         * locales.c,
7518           icall.c : removed InternalToUpper_Comp() and
7519           InternalToLower_Comp().
7520
7521 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7522
7523         * char-conversions.h : The tables were incorrectly generated. Should
7524           be generated against invariant culture.
7525
7526 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
7527
7528         * object.c (mono_runtime_invoke_array): Fix return value when 
7529         passing pre-created valuetype objects to ctors.
7530
7531         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
7532         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
7533         Fixes #74338.
7534
7535 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
7536
7537         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
7538         only used with --security and hides the wrong corlib version error.
7539
7540 2005-03-30  Joshua Tauberer  <tauberer@for.net>
7541
7542         * class.c: Changed mono_class_name_from_token so that types
7543         outside of a namespace don't have an initial period.  Improved
7544         the g_warning message used in _mono_class_get when loading
7545         fails.
7546         * assembly.c: In mono_assembly_load_reference, when an assembly
7547         can't be found, "No such file or directory" is misleading and
7548         unhelpful because a few paths were checked for the presence of
7549         the assembly.  When that happens (ENOENT), display a nicer
7550         message indicating the directories that were searched.  In all
7551         cases, the warning is made easier to read for non-hackers.
7552
7553 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
7554
7555         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
7556         project/solution.
7557         * appdomain.h|domain.c: Removed inline from functions.
7558         * appdomain.c: Reduced warnings when compiling on windows.
7559         * icall.c: Fixed output_debug declaration to gunichar2*.
7560         * mono-config.c: Reduced warnings when compiling on windows.
7561         * rand.c: Added missing "windows.h". Added missing return value.
7562         * rawbuffer.c: Added missing winsock2.h for windows.
7563         * sysmath.h: Added mono-compiler.h header to allow/ease 
7564         compilation with non-GCC compilers.
7565         * threads.c: Fixed declarations to compile with VS.NET C compiler.
7566         Removed cast warnings.
7567
7568         Adapted from the work of J Lothian (for VC6).
7569
7570 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
7571
7572         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
7573         from default_path.
7574
7575 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
7576
7577         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
7578         the 2.0 profile.
7579
7580 2005-03-27  Raja R Harinath  <harinath@gmail.com>
7581
7582         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
7583         has to be in $(exec_prefix).  $(prefix) is for arch-independent
7584         stuff, and it would probably use $(prefix)/share rather than
7585         $(prefix)/lib.
7586
7587 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7588
7589         * console-io.c: added 2 includes that might be missing.
7590
7591 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
7592
7593         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
7594         profile.
7595
7596         * reflection.c (create_custom_attr): Allocate the params array using
7597         alloca so it gets GC tracking.
7598
7599 2005-03-23  Chris Toshok  <toshok@ximian.com>
7600
7601         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
7602         out some spew.
7603
7604 2005-03-24  Raja R Harinath  <rharinath@novell.com>
7605
7606         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
7607         changes to pick up any changes in prefix, etc.
7608
7609 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7610
7611         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
7612         
7613         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
7614         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
7615
7616 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7617
7618         * class-internals.h object-internals.h class.c reflection.c: Extend the
7619         mono_lookup_dynamic_token () function to return the class of the
7620         token as well. 
7621
7622         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
7623         well. Fixes #73848.
7624
7625 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
7626
7627         * security-manager.c: Skip inheritance checks for intra-corlib
7628         class inheritance and method overrides. This skips a lot of checks
7629         and (anyway) permissions cannot work until corlib is loaded.
7630
7631 2005-03-23  Martin Baulig  <martin@ximian.com>
7632
7633         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
7634         MONO_TYPE_GENERICINST.  
7635
7636 2005-03-23  Martin Baulig  <martin@ximian.com>
7637
7638         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
7639
7640 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7641
7642         * class.c: added locking comments to some functions.
7643         Cache the interface offsets arrays (saves about 20 KB
7644         of runtime memory in a typical app).
7645         Reduce the time overhead in mono_class_setup_supertypes ().
7646
7647 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
7648
7649         * icall.c: speedup and fix leaks in GetMethodsByName and
7650         GetPropertiesByName.
7651
7652 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7653
7654         * reflection.c: some locking fixes.
7655
7656 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7657
7658         * metadata.c: added missing break in case statement.
7659
7660 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
7661
7662         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
7663         typedbyref return values. Fixes #73941.
7664
7665 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
7666
7667         * security-manager.c|h: Added demandunmanaged method and 
7668         suppressunmanagedcodesecurity class to MonoSecurityManager.
7669         Renamed aptc class to allowpartiallytrustedcallers.
7670
7671 2005-03-17  Martin Baulig  <martin@ximian.com>
7672
7673         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
7674
7675 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7676
7677         * file-io.c: disabled file async. IO using aio_*. It uses the
7678         threadpool now. Workaround for bug #73718.
7679
7680 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7681
7682         * assembly.h, mono-config.c: added code to deal with bundled configs
7683         for bundled assemblies.
7684
7685 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
7686
7687         * *.c, private.h: cleanup, removing old private.h header file.
7688
7689 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
7690
7691         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
7692         and throw_on_unmappable_char attributes.
7693
7694 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
7695
7696         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
7697         _ProcessName_internal.
7698
7699 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
7700
7701         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
7702         #73631.
7703
7704         * icall.c threads.c threads-types.h: Remove slothash icalls as they
7705         are no longer used.
7706
7707 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
7708
7709         * object.c (compute_class_bitmap): Add support for generics. Fixes
7710         #73527.
7711
7712 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
7713
7714         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
7715
7716 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7717
7718         * filewatcher.c: commented out the code for windows watcher, as we don't
7719         use it (we use the managed implementation instead).
7720
7721 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
7722
7723         * object-internals.h (MonoThread): Remove 'unused1' field.
7724
7725         * appdomain.c: Bump corlib version.
7726
7727         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
7728
7729         * reflection.c (mono_reflection_create_runtime_class): Remove the
7730         AssemblyBuilder.Save optimization since it causes too many problems.
7731
7732 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
7733
7734         * exception.c|h: Added mono_get_exception_reflection_type_load to
7735         create a ReflectionTypeLoadException object.
7736         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
7737         to return NULL is a InheritanceDemand fails during reflection. Updated
7738         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
7739         ReflectionTypeLoadException if an InheritanceDemand fails during 
7740         reflection. Added icall mapping for GetLinkDemandSecurity.
7741         * security-manager.c|h: Added ves_icall_System_Security_
7742         SecurityManager_GetLinkDemandSecurity internal call to return the
7743         class and methods permissions set for a LinkDemand. Removed unused
7744         fields in MonoSecurityManager.
7745
7746 2005-03-10  Martin Baulig  <martin@ximian.com>
7747
7748         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
7749         it's a generic instance.
7750
7751 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
7752
7753         * reflection.c (mono_get_object_from_blob): Applied patch from
7754         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
7755
7756         * class.c (mono_class_is_assignable_from): Another try at fixing 
7757         #73469 without breaking anything.
7758
7759 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
7760
7761         * class.c: (mono_class_is_assignable_from): Revert the last changes
7762         since they don't work with generics.
7763         
7764         * class.c (mono_class_is_assignable_from): Fix build bustage.
7765
7766         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
7767         the managed IsAssignableFrom method. Fixes #73469.
7768
7769         * reflection.c (mono_reflection_call_is_assignable_from): New helper
7770         function.
7771
7772 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
7773
7774         * object.c (mono_load_remote_field_new): Fix returning uninitialized
7775         memory when the remoting callback does not sets the out arguments.
7776         Fixes #73007.
7777
7778         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
7779         by mistake.
7780
7781         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
7782
7783         * object-internals.h (MonoStackFrame): Sync with managed object layout.
7784
7785         * appdomain.c: Bump corlib version.
7786
7787 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
7788
7789         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
7790         function.
7791
7792         * threads.c (mono_thread_attach): Detect threads which are not started
7793         by the GC pthread wrappers.
7794
7795 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
7796
7797         * icall.c: Added new icall for RNG.
7798         * rand.c|h: Added new icall to open the RNG. This allows to share a 
7799         single handle on Linux to access /dev/urandom and fix #73183.
7800
7801 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
7802
7803         * object.c: setting the new vtable in a transparent proxy object must
7804         not change the GC descriptor.
7805
7806 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7807
7808         * object.c: fixed compilation without GCJ support.
7809         * reflection.c: for runtime-created types ensure klass->has_references
7810         is correct (bug #73215).
7811
7812 2005-03-02  Martin Baulig  <martin@ximian.com>
7813
7814         * class.c (mono_class_is_assignable_from): Make this work if
7815         `oklass' is a generic instance; fixes #72831.
7816
7817 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
7818
7819         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
7820         with hasthis set.
7821         
7822         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
7823
7824         * marshal.c: Reorganize native->managed marshalling code to also use
7825         the emit_marshal_... functions.
7826
7827 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
7828
7829         * object.c: typed allocs have issues with bitmap sizes > 30,
7830         so check for max_set >= 30.
7831
7832 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
7833
7834         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
7835         managed code. Fixes #73012.
7836
7837         * metadata.h (MonoMarshalSpec): Add elem_mult field.
7838
7839         * metadata.c reflection.c: Load/Emit elem_mult as well.
7840         
7841         * metadata.h (MonoMarshalSpec): Add comment.
7842
7843         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
7844
7845         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
7846         num_elem to -1 if not given.
7847
7848         * object-internals.h (MonoReflectionMarshal): Add has_size field.
7849
7850         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
7851         given values.
7852
7853 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
7854
7855         * null-gc.c (mono_gc_free_fixed): Was not compilable.
7856
7857 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
7858
7859         * reflection.c (encode_marshal_blob): Encode param_num field as well.
7860
7861         * object-internals.h (MonoReflectionMarshal): Add param_num field.
7862
7863 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
7864
7865         * object.c: generalized the reference bitmap creation
7866         and added hooks for the new GC.
7867         * class-internals.c: removed the gc_bitmap field from MonoClass.
7868
7869 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
7870
7871         * domain.c: help the compiler to produce better code
7872         in mono_jit_info_table_find ().
7873
7874 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
7875
7876         * object.c: make all allocations look typed.
7877
7878 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
7879
7880         * socket-io.c: load Mono.Posix if it's not loaded already
7881         (fixes bug#73033).
7882
7883 2005-02-24  Martin Baulig  <martin@ximian.com>
7884
7885         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
7886         * reflection.c (dup_type): Likewise.
7887
7888 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
7889
7890         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
7891         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
7892
7893 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7894
7895         * domain.c, threads.c, object-internals.h: make the critical thread
7896         local vars use the fast access mode (even when we're compiled in
7897         a lib). Provide accessors to be used by the jit during codegen.
7898
7899 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7900
7901         * appdomain.c: Changed hook functios behavior to include
7902         support for the reflection only assemblies. Some icalls were changed
7903         to support the mentioned assemblies too. Signatures of static methods
7904         try_assembly_resolve and real_load now have an additional parameter:
7905         refonly.
7906
7907         * assembly.c: General changes to mono_assembly_ methods to support
7908         reflection only api. Functions mono_assembly_open, mono_assembly_load,
7909         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
7910         suffix, to support an additional gbool parameter to specify whether
7911         the assembli is reflection only or not. Created some new hook functions 
7912         to add support for reflection only assemblies. Signatures of static 
7913         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
7914         have now an additional parameter: refonly.
7915
7916         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
7917         indicating whether the assembly is reflection only or not.
7918
7919         * exception.c: Add mono_get_exception_invalid_operation.
7920
7921         * icall.c: Throw an InvalidOperationException when trying to invoke
7922         a property/method/event, or trying to set/get the value of a field.
7923         Also add an icall to retrieve the ref_only flag to the
7924         MonoReflectionAssembly.
7925
7926 2005-02-23  Chris Toshok  <toshok@ximian.com>
7927
7928         Part of fix for #72827.
7929         * mono-debug.c (mono_debug_add_method): add lexical block data to
7930         the info we write.  Kind of a hack at the moment - we copy the
7931         lexical block info from the MonoDebugMethodInfo to the
7932         MonoDebugMethodJitInfo here, before writing it.
7933         (mono_debug_read_method): read the lexical block info.
7934
7935         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
7936
7937         * debug-mono-symfile.h: add lexical block support.
7938
7939         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
7940         support.
7941
7942 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
7943
7944         * loader.c (mono_lookup_pinvoke_call): Fix warning.
7945
7946         * object.c (mono_runtime_free_method): Call mono_free_method () and
7947         put the TODOs there.
7948
7949         * loader.c (mono_free_method): Free up most memory allocated for 
7950         dynamic methods.
7951
7952 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7953
7954         * reflection.c: properly flag a Type argument to a
7955         named custom attr value (bug #72248).
7956
7957 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7958
7959         * reflection.c: reduce code duplication in named custom
7960         attribute encoding.
7961
7962 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
7963
7964         * reflection.c: properly encode custom attrs of type object
7965         (bug #72649).
7966
7967 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
7968
7969         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
7970
7971 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
7972
7973         * socket-io.c: load System.dll if it's not loaded already
7974         (bug #72850 and #70477).
7975
7976 2005-02-21  Martin Baulig  <martin@ximian.com>
7977
7978         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
7979         generic instances.
7980
7981 2005-02-21  Martin Baulig  <martin@ximian.com>
7982
7983         * reflection.c (mono_image_build_metadata): We also need to
7984         "fixup" the MethodImpl table after we computed the final method
7985         indices.  Call fixup_methodimpl() to do that.
7986         (fixup_methodimpl): New private method.
7987
7988 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
7989
7990         * assembly.c: special case mscorlib.dll (bug#72536),
7991         patch from Carlos Alberto Cortez.
7992
7993 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
7994
7995         * threads-types.h threads.c: Fix build bustage.
7996
7997         * threads.c: Use a union for long<->double conversions.
7998
7999         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8000         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8001
8002         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8003         containing the checkpoint call with NOT_TAKEN.
8004         
8005         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8006         checkpoint before pushing the arguments, so they won't have to be
8007         spilled to stack.
8008
8009 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8010
8011         * domain.c, assembly.c, domain-internals.h: make some data
8012         const and relocation-free.
8013
8014 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8015
8016         * object.c, appdomain.c, class-internals.h: introduce the
8017         MonoClassRuntimeInfo structure to hold the info needed to
8018         use a class at runtime. Made mono_class_vtable() lock-free
8019         for all the appdomains.
8020
8021 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8022
8023         * metadata-internals.h, image.c: introduce a per-image mempool to
8024         be used for memory that has the same lifetime as the image.
8025
8026 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8027
8028         * domain.c: In mono_init_internal(), instead of selecting the first
8029         runtime version supported by an executable, get a list of all
8030         supported versions and select the one for which an mscorlib exists
8031         (since even if the runtime supports a given version, it doesn't mean
8032         that the framework for that version is installed).
8033         Modified get_runtimes_from_exe to support this behavior.
8034         In supported_runtimes, added information about additional system
8035         assembly versions.
8036         
8037         * assembly.c: Added support for more than one system assembly version
8038         per runtime version. Updated the assembly list.
8039         In mono_assembly_remap_version, removed the initial version check,
8040         since we don't know to which version we need to compare until we
8041         get the version set on which the assembly is based.
8042         Moved the code for loading corlib into the new method
8043         mono_assembly_load_corlib(), so it can be used by the initialization
8044         code.
8045         
8046         * domain-internals.h: Updated data structures and added declaration
8047         for mono_assembly_load_corlib.
8048
8049 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8050
8051         * reflection.c (resolve_object): Fix the creation of the signature in 
8052         the SignatureHelper case.
8053
8054         * assembly.c (mono_assembly_remap_version): Fix binary search.
8055         
8056 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8057  
8058         * class.c: Added inheritance check when a method is overloaded (from a
8059         virtual method or when implementing an interface) and when a class is
8060         inherited. Added functions to set a failure for a class and to 
8061         retreive the exception from a failure.
8062         * class-internals.h: Added fields to MonoClass to keep the exception
8063         information status for inheritance (or other exceptions) to be thrown
8064         later (i.e. not at load time).
8065         * object.c: Throw the inheritance SecurityException when a type is to 
8066         be created with either class or method inheritance violations.
8067         * reflection.c|h: Fix when getting declsec from a class. Removed 
8068         unrequired code for class. Improved sanity in parameter naming.
8069         * security-manager.c|h: Added functions to check for class and method
8070         inheritance.
8071
8072 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8073
8074         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8075         and has_finalize in dynamic types as well.
8076
8077 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8078
8079         * culture-info-table.h : fixed currency format for en-GB (and so on).
8080
8081 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8082
8083         * gc.c: ensure the GC handles never have 0 as a value.
8084
8085 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8086
8087         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8088         a pointer to a struct to unmanaged code. Fixes #72625.
8089
8090 2005-02-16  Martin Baulig  <martin@ximian.com>
8091
8092         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8093
8094 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8095
8096         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8097
8098 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8099
8100         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8101
8102         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8103         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8104         etc. Fixes #71471.
8105
8106         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8107
8108         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8109
8110 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8111
8112         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8113         changes to make the current context a field in MonoThread.
8114
8115 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8116
8117         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8118         the last change.
8119         
8120         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8121         extracted from mono_marshal_get_native_wrapper.
8122
8123         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8124         to create wrappers around native functions.
8125
8126         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8127         delegates for arbitrary function pointers. Fixes #71472.
8128
8129 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8130
8131         * threads.c: cleaned up the code a little.
8132
8133 2005-02-15  Martin Baulig  <martin@ximian.com>
8134
8135         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
8136         the data table.
8137
8138         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
8139         allocate larger chunks if needed.
8140
8141 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8142
8143         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8144         in by mistake.
8145
8146 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8147
8148         * domain.c: keep the domains in an array and ensure the domain ids
8149         are kept small, so they can be used as indexes to domain-specific data
8150         with a small memory overhead.
8151
8152 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8153
8154         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8155
8156 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8157
8158         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8159
8160 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8161
8162         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8163
8164         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8165         values.
8166
8167         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8168         
8169 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8170
8171         * domain-internals.h: add the hashtable here.
8172
8173         * class-internals.h: Remove `info' from MonoMethod
8174
8175         * domain.c: Add a new hashtable, jit_trampoline_hash
8176
8177 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8178
8179         * object.c: don't set the value of static fields
8180         (fixes bug#72494).
8181
8182 2005-02-11  Martin Baulig  <martin@ximian.com>
8183
8184         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8185         (mono_debug_add_method): Silently ignore the method if it's too big.
8186         (mono_debug_add_type): Likewise.
8187
8188 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8189
8190         * threads.c, appdomain.c: remove #ifdefs from the code.
8191
8192 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8193
8194         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8195         common security informations. This allows us to stay in unmanaged code
8196         when doing LinkDemand and it's special cases (except for the first 
8197         time for initialization). The flags a very much used with --security.
8198         * reflection.c|h: Added code to get declarative security attributes 
8199         for LinkDemand and InheritanceDemand. This required to refactor the
8200         existing code for Demand.
8201         * security-manager.c|h: Added new method fields for the special cases
8202         of LinkDemand.
8203
8204 2005-02-10  Martin Baulig  <martin@ximian.com>
8205
8206         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8207         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8208
8209 2005-02-10  Martin Baulig  <martin@ximian.com>
8210
8211         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8212         debugging code; this is almost a complete rewrite.
8213
8214         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8215
8216 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8217
8218         * domain.c, object.h: expose mono_string_equal () and 
8219         mono_string_hash ().
8220         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8221         it's implemented in managed code.
8222
8223 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8224
8225         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8226         lo leak objects between appdomains.
8227
8228 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8229
8230         * assembly.c: old compilers compilation fix from 
8231         robertj@gmx.net (Robert Jordan).
8232
8233 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8234
8235         * class-internals.h: Little reminder for the future.
8236
8237         * debug-helpers.c: Fix up wrapper_type_names
8238
8239 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8240
8241         * image.c, metadata-internals.h: when loading an image from a file,
8242         mmap all of it and use the same codepaths as when using a
8243         in-memory image: the code is simpler and we use less memory
8244         (both writable and readonly).
8245
8246 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8247
8248         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
8249         API to alloc runtime data structures that need to be tracked by the
8250         GC and contain pointers.
8251         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
8252         make the code more readable and eventually use a different GC.
8253
8254 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
8255
8256         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
8257         for out arguments.
8258         
8259 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
8260
8261         * object.c: In release_type_locks(), don't release the cctor lock
8262         if it has already been released. This fixes a crash in the
8263         thread5 test.
8264
8265 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8266
8267         * gc.c, marshal.c, icall.c: register a delegate for finalization
8268         only when the native function pointer has been allocated for it.
8269
8270 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8271
8272         * object.c: cleaned up some code, allocate objects that are
8273         pointer free with the atomic malloc variant. Allocate memory
8274         for static data from the mempool if it's pointer-free.
8275         Allocate the bounds array at the end of the array data, when needed.
8276         * object-internals.h, object.h: move a private function in a private
8277         header.
8278         * class.c: handle missing case in tracking references in fields.
8279
8280 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8281
8282         * class.c, class-internals.h: keep track if a type has
8283         reference fields in either the instance or static fields.
8284
8285 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
8286
8287         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
8288         and renamed to MonoRuntimeInfo. Added fields to store the expected
8289         framework assembly version. Changed mono_get_framework_version and
8290         mono_get_runtime_version for a single mono_get_runtime_info method.
8291         
8292         * assembly.c: Added method to remap system assembly versions to the
8293         current executing runtime version. Removed old mapping code.
8294         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
8295         
8296         * icall.c, reflection.c: Track api changes.
8297
8298 2005-02-06  Miguel de Icaza  <miguel@novell.com>
8299
8300         * loader.c (method_from_memberref): Improve error reporting,
8301         produce the class name instead of the typeref/typedef index. 
8302
8303 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
8304
8305         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
8306
8307 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8308
8309         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
8310         stdcall and charset name mangling.  Reorganize the code and add
8311         some tracing stuff.
8312
8313 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8314
8315         * monodiet.c: More iters!
8316
8317         * marshal.c: Iter usage.
8318
8319         * icall.c: Iter usage.
8320
8321         * object.c: Use iters.
8322
8323         * debug-helpers.c: More iters
8324
8325 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8326
8327         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
8328         under win32.
8329
8330 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8331
8332         * mono-debug-debugger.c: use iters
8333
8334         * class.c, class-internals.h: mono_class_setup_events is static
8335         now
8336
8337         * All callers: use iters
8338
8339 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8340
8341         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
8342         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
8343
8344 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8345
8346         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
8347
8348         * marshal.h: Add prototypes for ldfld/stfld_remote.
8349
8350         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
8351         this is called during startup.
8352         
8353 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
8354
8355         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
8356         MonoThreadsSync struct private in monitor.c. Changed the way
8357         MonoThreadsSync is allocated so it's faster and there is no
8358         need to keep track of it with a finalizer and it uses less memory.
8359         This also finally allows us to allocate mono objects as ptrfree when
8360         there are no reference fields.
8361
8362 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
8363
8364         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
8365         disappearing link to the GC interface and use them to simplify
8366         the gchandles code.
8367
8368 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8369
8370         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
8371         stfld_remote which call mono_load/store_field_new. This allows methods
8372         calling ldfld/stfld wrappers to be AOTed.
8373
8374         * console-io.c: Include sys/filio.h under solaris.
8375         
8376         * console-io.c: Include curses.h if needed correctly.
8377
8378 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8379         
8380         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
8381         method->klass as well.
8382
8383         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
8384
8385         * class.c (mono_class_init): Switch on lazy initialization of 
8386         methods.
8387
8388         * class.c (mono_class_get_finalizer): Handle the case when the 
8389         finalizer is inherited.
8390
8391 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8392
8393         * console-io.c: <curses.h> is needed by term.h on solaris.
8394
8395 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
8396
8397         * icall.c, class-internals.h, monodiet.c, class.c: Remove
8398         mono_class_setup_properties where possible. Remove this ftn from
8399         the header file, and make it static.
8400
8401 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8402
8403         * loader.c: Add missing setup_... call.
8404
8405         * class.c: Add missing setup_... calls.
8406
8407         * class.c (mono_class_init): Switch on lazy initialization of 
8408         the generic vtable.
8409         
8410         * class.c (mono_class_init): Fix generics broken by the recent changes.
8411
8412         * monodiet.c (handle_type): Add missing setup_... calls.
8413
8414         * class.c: Back out garbage in previous patch.
8415         
8416         * class.c: Add missing setup_... calls.
8417
8418         * class.c (mono_class_get_method_from_name_flags): Avoid calling
8419         mono_class_setup_methods () if possible.
8420
8421         * class-internals.h (MonoClass): Add 'has_cctor' flag.
8422
8423         * class-internals.h (MonoCachedClassInfo): New structure.
8424
8425         * class.c: Initialize properties and events fields of MonoClass lazily.
8426
8427         * class.c: Add infrastructure for lazily initializing the methods and
8428         vtable fields of MonoClass. Not yet used.
8429
8430         * class.c (mono_class_get_finalizer): New helper function.
8431
8432         * class.c: Add infrastructure for loading some class related data from
8433         an AOT file.
8434
8435         * object.c: Add infrastructure for initializing the vtable from data
8436         in the AOT file.
8437
8438         * gc.c (run_finalize): Use mono_class_get_finalizer ().
8439
8440         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
8441         appropriate initialization function before accessing parts of the
8442         MonoClass structure.
8443
8444         * marshal.c: Fix warnings.
8445         
8446         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
8447
8448         * mono-debug-debugger.c (get_exception_message): Use 
8449         mono_class_get_method_from_name_flags ().
8450
8451 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
8452
8453         * reflection.c, appdomain.c: Replace a few manual searches that
8454         Zoltan missed. (Paolo approved this part of my initial patch).
8455
8456 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
8457
8458         * profiler.c: disable recording statistical events at report time.
8459
8460 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8461
8462         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
8463         to byteswap arrays of enum values, too (bug #72080).
8464
8465 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
8466
8467         * appdomain.c (set_domain_search_path): Allow this to be called if
8468         domain->setup is not yet set.
8469
8470         * loader.c (mono_method_get_index): New helper function.
8471
8472         * loader.c reflection.c: Use mono_method_get_index ().
8473
8474         * class.c (mono_class_get_method_from_name_flags): New helper method.
8475
8476         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
8477         this.
8478
8479         * class.c (mono_class_get_cctor): New helper method.
8480
8481         * string-icalls.c object.c class.c marshal.c reflection.c: Use
8482         mono_class_get_method () to look up methods.
8483
8484 2005-02-01  Miguel de Icaza  <miguel@novell.com>
8485
8486         * console-io.c: Fix the build, this should work on Windows.
8487
8488 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
8489
8490         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
8491         be set to null to keep things valid
8492
8493 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8494
8495         * icall.c: added Console 2.0 icalls.
8496         * Makefile.am: added console-io.[ch]
8497         * console-io.[ch]: internal calls for Console 2.0 API.
8498
8499 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8500
8501         * class.c: make sure we consider all the interfaces
8502         when calculating max_interface_id (bug found by
8503         Jeroen Frijters running ikvm).
8504
8505 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
8506
8507         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
8508         valuetype fields to null.
8509
8510         * object.c (set_value): Ditto. Fixes #71669.    
8511
8512 2005-01-31  Martin Baulig  <martin@ximian.com>
8513
8514         * metadata.c (mono_metadata_has_generic_params): New public
8515         function; checks whether something is a generic method.
8516
8517 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
8518
8519         * appdomain.c: fix infinite recursion when adding assemblies.
8520
8521 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
8522
8523         * object.c: Fix small typo to return all items for Environment.
8524         GetCommandLineArgs.
8525
8526 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8527
8528         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
8529         reflection.c: more domain and assembly-unload related fixes
8530         and memory leaks plugs.
8531
8532 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
8533
8534         * 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.
8535
8536 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
8537
8538         * loader.c (mono_method_signature): Make this method lazy
8539         (mono_get_method_from_token): Don't computate the signature here.
8540
8541         Doing this saves quite a bit of memory. I got 90 kb on starting up
8542         monodoc. It should also save some disk reads on startup.
8543
8544         * *: MonoMethod->signature might be NULL now. You *MUST* use
8545         mono_method_signature.
8546
8547 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
8548
8549         * object.c (mono_runtime_get_main_args): Return an array from the
8550         current domain here. Fixes #71938.
8551
8552 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
8553
8554         * monitor.c: formatting changes to comply with the
8555         mono coding style and remove #ifdefs from the code.
8556
8557 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8558
8559         * metadata.c, private.h: remove some unneeded data
8560         and use a more compact representation for table schemas.
8561
8562 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
8563
8564         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
8565         to get a better distribution in hash tables.
8566         * *.c: use mono_aligned_addr_hash() where appropriate.
8567         * assembly.c: make var static.
8568
8569 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
8570
8571         * domain-internals.h: Put MonoJitInfo on a diet.
8572
8573         * domain.c: Fix a warning.
8574
8575 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8576
8577         * gc.c: rework the gc handles code to reuse handles
8578         when freed.
8579
8580 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8581
8582         * domain.c: fixed long standing bug in mono_string_equal() which
8583         was brought to light with the ldstr changes.
8584
8585 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
8586
8587         * reflection.c: Remove warning by adding missing include for marshal.h
8588
8589 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8590
8591         * domain.c, object.c: change the ldstr_table to hold
8592         MonoString* as keys: makes the runtime isinterned lookup
8593         faster and simplifies memory management.
8594
8595 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
8596  
8597         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
8598         possible to add imperative security checks before calling the icall.
8599         * reflection.c: Return security attributes on the original MonoMethod
8600         (and not the wrapped one). This fix permissions on icalls.
8601
8602 2005-01-25  Dick Porter  <dick@ximian.com>
8603
8604         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
8605         the check for mktime() support actually test the mktime() return
8606         value.  "Fixes" bug 71682, though the output is still different to
8607         MS.
8608
8609 2005-01-25  Martin Baulig  <martin@ximian.com>
8610
8611         * class.c (mono_class_is_assignable_from): Make this work for
8612         generic instances.
8613
8614 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
8615
8616         * marshal.c (mono_string_utf8_to_builder)
8617         (mono_string_builder_to_utf16): We might not have ownership of the
8618         string. In thise case, we need to create a new buffer.
8619
8620         * object-internals.h (mono_stringbuilder_capacity): sb->str might
8621         be null, in which case, use the default capacity.
8622
8623 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8624
8625         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
8626         GC events to the profiler.
8627
8628 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8629
8630         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
8631         if you don't want the GC to run.
8632
8633 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
8634
8635         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
8636         start providing a GC API and keeping different implementations in
8637         their own file.
8638         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
8639
8640 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
8641
8642         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
8643         mmap rather than allocating a huge buffer.
8644         (mono_debug_close_mono_symbol_file): Free the buffer allocated
8645         above.
8646
8647 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
8648
8649         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
8650         and CheckExecutionRights.
8651         * reflection.c|h: Keep the index of the declarative security to be 
8652         used, instead of the pointer, when AOT compiler is used. Also add 
8653         class initialization when requesting demands.
8654         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
8655         CheckExecutionRights. Both properties are now FALSE by default, and
8656         unmodifiable, unless the --security option is used.
8657
8658 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8659
8660         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
8661         reflection.c: properly refcount images and assemblies, many leaks fixed.
8662
8663 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8664
8665         * threadpool.c: increase the timeout for threads in the thread pool to
8666         10s.  Fixes bug #67159.
8667
8668 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
8669
8670         * class-internals.h: Sun's compiler insists on explicit
8671         signed on bit fields to handle then correctly.
8672
8673 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
8674
8675         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
8676         Make the size of the array fit only the number of invalid path
8677         chars that we have.
8678
8679         * class.c (_mono_class_get): Improve the error reporting when a
8680         class referenced is not found, to assist debugging. 
8681
8682 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
8683
8684         * threads.c: fix off-by-one error.
8685         * domain.c: free data allocated in the domain.
8686
8687 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
8688
8689         * reflection.c (mono_method_body_get_object): Fill out exception info
8690         as well.
8691
8692         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
8693         structure.
8694         
8695 2005-01-19  Martin Baulig  <martin@ximian.com>
8696
8697         * loader.c (mono_get_method_constrained): Make this work again.
8698
8699 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
8700
8701         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
8702         guint16 to match the managed side.
8703
8704         * reflection.c (mono_reflection_body_get_object): Fill out local
8705         variables array.
8706
8707         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
8708         as well.
8709
8710         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
8711         'local_var_sig_token'.
8712
8713 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
8714
8715         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
8716         System.Drawing.
8717
8718         * reflection.c (mono_method_body_get_object): Handle abstract and
8719         runtime methods.
8720
8721 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
8722
8723         * marshal.c, loader.c, class-internals.h, reflection.c:
8724         store the emthod data for a wrapper in an array instead of a list.
8725
8726 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
8727
8728         * marshal.c: change the code to allocate memory more
8729         conservatively for method wrappers.
8730
8731 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
8732
8733         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
8734         fields from MonoClass to the marshal info structure where they belong.
8735
8736 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8737
8738         * class.c, object.c, class-internals.h, marshal.c: rearrange
8739         some fields and tweak some types to lower memory usage.
8740
8741 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
8742
8743         * threads.c (signal_thread_state_change): Handle the case when the
8744         target thread is the current thread.
8745
8746         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
8747
8748         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
8749         emit_ptr_to_object_conv. 
8750
8751         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
8752         marshalling. Fixes #71352.
8753
8754 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8755
8756         * metadata.h, blob.h: move table enum to blob.h so it can be included
8757         in any header.
8758         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
8759         cut the size of MonoImage/MonoDynamicImage.
8760
8761 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
8762
8763         * profiler.c (mono_profiler_install_simple): Fix default arguments.
8764
8765 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
8766
8767         * reflection.c, reflection.h, icall.c: add a function to check
8768         if an attribute type is defined for a metadata object.
8769
8770 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
8771
8772         * object-internals.h: Added some needed fields from StringBuilder class.
8773         * marshal.c: Set the maxCapacity when creating a StringBuilder.
8774
8775 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
8776
8777         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
8778         threads before shutting down the runtime.
8779
8780         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
8781
8782 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8783
8784         * object-internal.h, threads.c: implement stacksize and 
8785         parameterized thread start functionality (requires
8786         matching corlib). Marked broken code for later removal.
8787
8788 2005-01-12  Martin Baulig  <martin@ximian.com>
8789
8790         * class-internals.h (MonoGenericClass): Moved the `initialized'
8791         flag to MonoDynamicGenericClass, removed `init_pending'.
8792         (MonoGenericInst): Added `is_reference' flag.
8793
8794 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
8795
8796         * reflection.c (mono_image_create_pefile): Only set the pe_offset
8797         inside the MSDOS header. Fixes #71201.
8798
8799         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
8800         gc thread.
8801         (mono_domain_finalize): Ditto.
8802
8803 2005-01-12  Martin Baulig  <martin@ximian.com>
8804
8805         * class.c (mono_get_shared_generic_class): Use the cache for
8806         non-dynamic generic classes.
8807
8808         * class-internals.h (mono_class_create_generic_2): Removed
8809         function prototype, this function is now static inside class.c.
8810
8811         * class.c (mono_class_create_generic_2): Made this static, only
8812         call it from mono_class_init() and mono_class_setup_parent().
8813         (collect_implemented_interfaces_aux): Call mono_class_init() on
8814         the interfaces we collect.
8815         (mono_class_setup_vtable): Call mono_class_init (class->parent).
8816
8817 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
8818
8819         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
8820         it a real thread handle.
8821
8822         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
8823         MonoJitExceptionInfo, since each catch clause needs its own variable.
8824         
8825 2005-01-11  Dick Porter  <dick@ximian.com>
8826
8827         * image.c (mono_pe_file_open): New variant on mono_image_open()
8828         that does not set up the CLI metadata; used for FileVersionInfo so
8829         it can get the data for windows binaries too.
8830         
8831         * process.c (process_read_string_block): Don't read off the end of
8832         the StringTable block.
8833
8834         These both fix bug 70766.
8835
8836 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
8837
8838         * gc.c: set some fields to NULL at GC cleanup time.
8839         * threads.c: if we quit the main thread, call exit ().
8840
8841 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
8842
8843         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
8844
8845 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
8846
8847         * threads.h, threads.c, object.c: added accessor and settor for
8848         main_thread. Handle it specially when exiting from it: wait
8849         for other foreground threads to exit.
8850
8851 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
8852
8853         * process.c, verify.c: remove some bloat.
8854
8855 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
8856
8857         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
8858         the calling convention to cdecl under win32.
8859
8860 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
8861
8862         * object.c (mono_object_get_size): New function to get the size of
8863         an object instance.
8864
8865         * profiler.c (simple_allocation): Use above.
8866
8867 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
8868
8869         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
8870         ves_icall_System_AppDomain_getRootDomain (as it's not required to
8871         get an appdomain by it's id and we can't assume the root's id is 0).
8872         * domain-internals.h: Change the function prototype to match.
8873         * icall.c: Change the icall table for AppDomain.
8874
8875 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
8876
8877         * locales.c (string_invariant_compare_char): Only compute
8878         GUnicodeTypes in the case where we need them.  Test for ordinality
8879         first and return if so.
8880
8881         From the commit:
8882
8883                 /*
8884                  * FIXME: here we must use the information from c1type and c2type
8885                  * to find out the proper collation, even on the InvariantCulture, the
8886                  * sorting is not done by computing the unicode values, but their
8887                  * actual sort order.
8888                  */
8889
8890 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8891
8892         * loader.c: for P/Invoke methods, allow the "Internal" shared
8893         library name to refer to the calling process symbol namespace.
8894
8895 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
8896
8897         * Makefile.am: Add the security manager to the build.
8898         * security-manager.c|h: New. Initialization of the security manager.
8899
8900 2005-01-07  Dick Porter  <dick@ximian.com>
8901
8902         * threads.c: 
8903         * monitor.c: Update thread state during Monitor and WaitHandle
8904         waits.  Fixes bug 71031.
8905
8906 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
8907
8908         * reflection.c (property_encode_signature): Correctly handle when the
8909         property has no methods.
8910
8911 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
8912
8913         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
8914         
8915         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
8916         fields from mb, not rmb. Fixes #71017.
8917
8918         * marshal.c (emit_ptr_to_str_conv): Add support for 
8919         ByValTStr -> string conversion. Fixes #71015.
8920
8921         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
8922
8923         * mempool.c (mono_mempool_contains_addr): New helper function.
8924
8925 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
8926
8927         * metadata.c (mono_metadata_compute_size): Fix size calculation of
8928         HasSematics encoded fields.
8929         
8930         * metadata.c (mono_type_to_unmanaged): Improve error message for 
8931         invalid string marshalling.
8932
8933         * metadata.c: Fix warnings.
8934         
8935 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8936
8937         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
8938         profiler support.
8939
8940 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
8941
8942         * domain.c object.c domain-internals.h: Revert part of r38077 since the
8943         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
8944         tests.
8945
8946 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
8947
8948         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
8949         so methods containing these can be AOTed.
8950
8951 2005-01-03  Martin Baulig  <martin@ximian.com>
8952
8953         * loader.c (find_method): Removed the hack for generic instances.
8954         (method_from_memberref): If our parent is a generic instance, pass
8955         its generic type definition to find_method() and then inflate the
8956         method.
8957         (mono_get_method_constrained): Pass the generic type definition to
8958         find_method() and inflate the method later.
8959
8960         * class-internals.h (MonoStats): Added `generic_class_count'.
8961
8962         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
8963         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
8964
8965         * reflection.c (mono_custom_attrs_from_params): Don't ignore
8966         generic type definitions.
8967
8968 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
8969
8970         * loader.c icall.c: Fix warnings.
8971
8972 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
8973
8974         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
8975         blittable types. Fixes #70864.
8976
8977 2004-12-29  Martin Baulig  <martin@ximian.com>
8978
8979         * icall.c
8980         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
8981
8982         * reflection.c (mono_method_get_object): Create a
8983         "System.Reflection.MonoGenericMethod" for inflated methods; don't
8984         call mono_get_inflated_method().
8985
8986         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
8987
8988 2004-12-27  Martin Baulig  <martin@ximian.com>
8989
8990         * class-internals.h (MonoMethod): Added `is_inflated' flag.
8991         (MonoMethodInflated): Added `inflated' field.
8992
8993         * class.c (mono_class_inflate_generic_method): Don't really
8994         inflate the method here; just set the `is_inflated' flag in the
8995         MonoMethod.
8996         (mono_class_get_inflated_method): Actually inflate the method here
8997         if it's not already inflated; we use the MonoMethodInflated's new
8998         `inflated' field as a cache.
8999
9000 2004-12-26  Martin Baulig  <martin@ximian.com>
9001
9002         * class.c
9003         (inflate_generic_class): Moved some code out of inflate_generic_type().
9004         (mono_class_inflate_generic_method): If we're already inflated,
9005         inflate the context and use the declaring method; ie. make sure
9006         the declaring method of an inflated method is always the generic
9007         method definition.
9008         (mono_class_create_from_typedef): Create
9009         `class->generic_container->context->gclass'.
9010
9011 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9012
9013         * metadata-internals.h, marshal.c, reflection.c: More
9014         MonoGHashTable->GHashTable.
9015
9016         * domain-internals.h, class.c: Change MonoGHashTable's into
9017         GHashTables for some cases where no gc stuff is used
9018
9019         All users: update apis
9020
9021 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9022
9023         * metadata.c (builtin_types): Make this `const'. Makes this get
9024         put into the shareable section.
9025         (mono_metadata_init): Casts to make gcc happy.
9026
9027 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9028
9029         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9030
9031 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9032
9033         * icall.c: Added an internal call to retrieve the position and length
9034         of assembly-level declarative security attributes (RequestMinimum, 
9035         RequestOptional and RequestRefuse). This is used by the Assembly class
9036         to re-create the corresponding permission sets.
9037
9038 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9039
9040         * marshal.c: fix the stelemref wrapper to be type correct
9041         (and faster).
9042
9043 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9044
9045         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9046         to do key & 0x7fffffff. Hashtable already does this. It just
9047         results in longer code.
9048
9049 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9050
9051         * appdomain.c: Bump corlib version.
9052         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9053         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9054         * reflection.c|h: Add functions to get declarative security infos
9055         (blob position and length) for assemblies, classes and methods.
9056
9057 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9058
9059         * reflection.c: sort the constant table (bug #70693).
9060
9061 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9062
9063         * object-internals.h, threads.c, domain.c: add accessors for
9064         the MonoThread and MonoDomain tls keys.
9065
9066 2004-12-18  Martin Baulig  <martin@ximian.com>
9067
9068         * class.c (inflate_generic_type): If we're inflating a generic
9069         instance, set `ngclass->context->container = context->container';
9070         ie. the container we inflated into.
9071
9072         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9073         inflate_generic_type() changes.
9074
9075 2004-12-17  Martin Baulig  <martin@ximian.com>
9076
9077         * class-internals.h
9078         (MonoGenericClass): Replaced `MonoType *generic_type' with
9079         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9080         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9081         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9082
9083 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9084
9085         * exception.c (mono_exception_from_token): New helper function.
9086
9087 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9088
9089         * assembly.c (mono_assembly_load_with_partial_name): Call 
9090         mono_assembly_loaded before invoking the preload hooks. Fixes
9091         #70564.
9092
9093         * object-internals.h (MonoThread): Change culture_info and 
9094         ui_culture_info into an array.
9095
9096         * threads.c: Cache culture info objects from more than one appdomain.
9097
9098         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9099         current UI culture.
9100
9101 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9102
9103         * threads.h threads.c appdomain.c: Clear the culture_info field of
9104         all threads during unloading if they point to an object in the dying
9105         appdomain.
9106
9107 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9108
9109         * culture-info.h (TextInfoEntry): New struct
9110         * object-internals.h: sync with managed
9111         * locales.c: fill the `text_info_data' field
9112         * culture-info-tables.h: update
9113
9114 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9115
9116         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9117         collector.
9118
9119 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9120
9121         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9122         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9123
9124 2004-12-12  Martin Baulig  <martin@ximian.com>
9125
9126         * mono-debug-debugger.c (write_type): If we're an enum and the
9127         builtin types have already been initialized, call mono_class_init().
9128
9129 2004-12-11  Martin Baulig  <martin@ximian.com>
9130
9131         * metadata.c (mono_metadata_load_generic_params): Added
9132         `MonoGenericContainer *parent_container' argument; automatically
9133         compute `container->is_method'; pass the correct owner to
9134         get_constraints().      
9135
9136         * reflection.c (compare_genericparam): Sort the GenericParam table
9137         according to increasing owners. 
9138
9139 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
9140
9141         * profiler.c: allow disabling the default profiler.
9142
9143 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9144
9145         * decimal.c, icall.c: allow disabling System.Decimal support.
9146
9147 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9148
9149         * reflection.c: Add support for null attribute arguments.
9150
9151 2004-12-09  Martin Baulig  <martin@ximian.com>
9152
9153         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9154         names to get rid of compiler warnings.
9155
9156 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9157
9158         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9159         mono_marshal_load_type_info (). Fixes #69625.
9160         (mono_marshal_get_ptr_to_struct): Likewise.
9161
9162 2004-12-08  Martin Baulig  <martin@ximian.com>
9163
9164         * mono-debug.h: Bumped version number to 47.
9165
9166         * mono-debug-debugger.c
9167         (mono_debugger_event_handler, mono_debugger_event): Take two
9168         guint64 arguments insteed of a gpointer and a guint32.  
9169
9170 2004-12-08  Martin Baulig  <martin@ximian.com>
9171
9172         * debug-mono-symfile.h
9173         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9174         `address' to `native_offset'.
9175
9176 2004-12-08  Martin Baulig  <martin@ximian.com>
9177
9178         * class.c (mono_class_create_from_typespec): Only inflate if we
9179         either have `context->gclass' or `context->gmethod'.
9180
9181 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9182
9183         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9184
9185         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9186
9187         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9188
9189         * reflection.c (mono_assembly_get_object): Remove the workaround put
9190         in for the release.
9191         
9192         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9193
9194         * appdomain.c: Bump corlib version.
9195
9196         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9197         be visible in other appdomains.
9198
9199 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9200
9201         * threads.c: Interlocked inc and dec for longs were messed up,
9202         use a KISS based impl for this. Fixes 70234
9203
9204 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9205
9206         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9207
9208 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9209
9210         * icall.c: fix to follow policy not to allow struct
9211         arguments in icalls.
9212
9213 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9214
9215         * process.c: make the patch that handles spaces in file paths work
9216         on mono/windows too.
9217
9218 2004-12-06  Martin Baulig  <martin@ximian.com>
9219
9220         * class.c (mono_class_create_generic): Call
9221         mono_class_setup_supertypes() if we're dynamic.
9222         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9223
9224 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9225
9226         * object-internals.h: Add new fields to MonoThread.
9227
9228         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9229
9230         * icall.c threads-types.h threads.c: Add new icalls.
9231
9232         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9233
9234         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9235         managed side.
9236
9237         * appdomain.c: Bump corlib version.
9238
9239         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
9240         internal assemblies. Fixes #69181.
9241
9242 2004-12-05  Martin Baulig  <martin@ximian.com>
9243
9244         * class.c (mono_class_inflate_generic_signature): Make this a
9245         no-op if `context' is NULL or we don't have any type parameters;
9246         also copy `sentinelpos'.        
9247
9248 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
9249
9250         * image.c: Add unbox_wrapper_cache.
9251
9252         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
9253
9254         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
9255         function generator.
9256         
9257         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
9258         Fixes #70173.
9259
9260         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
9261         
9262 2004-12-04  Martin Baulig  <martin@ximian.com>
9263
9264         * loader.c (mono_method_get_signature_full): New public function;
9265         like mono_method_get_signature(), but with an additional
9266         `MonoGenericContext *' argument.
9267
9268         * class.c (mono_class_inflate_generic_signature): Formerly known
9269         as inflate_generic_signature(); make this public.
9270
9271 2004-12-04  Martin Baulig  <martin@ximian.com>
9272
9273         * metadata.c
9274         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
9275         instead of a `MonoGenericContainer *'.  
9276         (mono_metadata_parse_array_full): Likewise.
9277         (mono_metadata_parse_signature_full): Likewise.
9278         (mono_metadata_parse_method_signature_full): Likewise.
9279         (mono_metadata_parse_generic_inst): Likewise.
9280         (mono_metadata_parse_generic_param): Likewise.
9281         (mono_metadata_parse_mh_full): Likewise.
9282         (mono_type_create_from_typespec_full): Likewise.
9283
9284 2004-12-03  Martin Baulig  <martin@ximian.com>
9285
9286         * class-internals.h (MonoGenericContainer): Replaced the
9287         `MonoGenericContext * pointer with a `MonoGenericContext'
9288         structure and made it the first element.
9289
9290 2004-12-03  Martin Baulig  <martin@ximian.com>
9291
9292         * class.c
9293         (inflate_generic_type): Set the `context->container' when creating
9294         a new MonoGenericContext.
9295         (mono_class_inflate_generic_method): Likewise.
9296         (mono_class_create_from_typespec): Just use `context->container'
9297         to get the container.
9298
9299         * loader.c (method_from_methodspec): Set `context->parent' from
9300         `context->container' - and if that's a method container, use its
9301         parent.  Also set the `context->container' when creating a new
9302         MonoGenericContext.
9303         (mono_get_method_from_token): Use just `context->container' to get
9304         the container.
9305
9306         * metadata.c (do_mono_metadata_parse_generic_class): Also set
9307         `gclass->context->container'.
9308
9309         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
9310         the `context->container' when creating a new MonoGenericContext.
9311
9312 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
9313
9314         * reflection.c (compare_genericparam): Sort params with identical
9315         owner by their number. Fixes gen-111 on sparc.
9316
9317 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9318
9319         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
9320         around the domain changes.
9321
9322         * appdomain.c (mono_domain_unload): Handle the case when the thread
9323         calling Unload is itself being aborted during unloading. Fixes #70022.
9324
9325         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
9326
9327         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
9328         checkpoint_func as an icall so it gets a wrapper.
9329         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
9330         in the cross-appdomain wrappers too.
9331
9332         * threads.c (mono_thread_has_appdomain_ref): Make this public.
9333
9334         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
9335
9336         * reflection.c: Fix some memory leaks.
9337         
9338 2004-12-02  Martin Baulig  <martin@ximian.com>
9339
9340         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
9341
9342         * metadata.c (generic_class_cache): New static hashtable.
9343         (mono_metadata_lookup_generic_class): New public method.
9344
9345 2004-12-02  Martin Baulig  <martin@ximian.com>
9346
9347         * class.c (mono_class_create_from_typedef): Call
9348         mono_class_setup_parent() and mono_class_create_mono_type() before
9349         parsing the interfaces.
9350
9351 2004-12-02  Martin Baulig  <martin@ximian.com>
9352
9353         * metadata.c (generic_inst_cache): New static hashtable.
9354         (mono_metadata_lookup_generic_inst): New public function.
9355         (mono_metadata_inflate_generic_inst): New public function.
9356         (mono_metadata_parse_generic_inst): New public function.
9357         (do_mono_metadata_parse_generic_class): Use the new
9358         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
9359         since this'll also use the cache.
9360
9361         * reflection.c (mono_reflection_bind_generic_method_parameters):
9362         Use mono_metadata_lookup_generic_inst() to use the new cache.
9363
9364         * class.c (inflate_mono_type): Use
9365         mono_metadata_inflate_generic_inst() to inflate a generic
9366         instance; this'll also use the new cache.
9367
9368         * loader.c (method_from_methodspec): Use
9369         mono_metadata_parse_generic_inst() and
9370         mono_metadata_inflate_generic_inst() rather than parsing it
9371         manually, so we can use the new cache.
9372
9373 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9374
9375         * threads.c (wait_for_tids): Do not incorrectly free threads when 
9376         the wait times out.
9377
9378 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
9379
9380         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
9381         iter->args based on whether parameters are passed in registers (i.e.
9382         MONO_ARCH_REGPARMS is defined)
9383
9384 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
9385
9386         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
9387         the exception message. Fixes #70070.
9388         (method_from_methodspec): Fix warnings.
9389
9390 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9391
9392         * process.c: (complete_path) return the path quoted
9393
9394 2004-12-01  Martin Baulig  <martin@ximian.com>
9395
9396         * class-internals.h (MonoGenericInst): New structure.
9397         (MonoGenericClass): Replaced `type_argc', `type_argv' and
9398         `is_open' with `MonoGenericInst *inst'.
9399         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
9400         `is_open' with `MonoGenericInst *inst'.
9401
9402 2004-11-30  Martin Baulig  <martin@ximian.com>
9403
9404         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
9405
9406         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
9407         to `generic_class_cache'.
9408
9409         * metadata.c
9410         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
9411         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
9412         (mono_generic_inst_is_valuetype): Renamed to
9413         mono_generic_class_is_valuetype().
9414
9415         * class-internals.h
9416         (MonoGenericInst): Renamed to MonoGenericClass.
9417         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
9418         (MonoClass): Renamed `generic_inst' to `generic_class'.
9419         (MonoGenericContext): Renamed `ginst' to `gclass'.
9420
9421         * object-internals.h
9422         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
9423
9424         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
9425         mono_reflection_generic_class_initialize().
9426
9427         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
9428         now known as "System.Reflection.MonoGenericClass".
9429         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
9430
9431 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
9432
9433         * class-internals.h: Added a flag field to MonoClass to cache the
9434         declarative security attributes actions associated with the class.
9435         * domain-internals.h: Added booleans to MonoJitInfo to cache the
9436         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
9437         applicable to the JITted method.
9438         * reflection.c|h: Added functions to extract (as flags) which security
9439         actions are available (declaratively) for a method, class or assembly.
9440         * metadata.c|h: Added functions to search the declarative security
9441         table in the metadata.
9442         
9443 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
9444
9445         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
9446         EXPORTEDTYPES are already in the class name cache, so there is no
9447         need to add extra code here to look at them. Just removes a bit of
9448         cruft.
9449
9450         (ves_icall_System_Environment_get_TickCount): No need for #if
9451         WINDOWS. We already have the code in io-layer.
9452
9453 2004-11-28  Martin Baulig  <martin@ximian.com>
9454
9455         * loader.c
9456         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
9457         Fixes gen-112.cs.
9458
9459 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
9460
9461         * assembly.c (do_mono_assembly_open): Instead of having a
9462         conditional WITH_BUNDLE, incorporate support for bundles here, by
9463         having a global `bundles' variable holding a pointer to the actual
9464         bundles. 
9465
9466         (mono_register_bundled_assemblies): New API call used by the
9467         bundle code. 
9468
9469         See mkbundle.1 for details.
9470         
9471 2004-11-27  Martin Baulig  <martin@ximian.com>
9472
9473         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
9474         the vtable for generic methods.
9475
9476 2004-11-26  Martin Baulig  <martin@ximian.com>
9477
9478         * metadata.c
9479         (mono_metadata_generic_method_hash): New public function.
9480         (mono_metadata_generic_method_equal): Likewise.
9481
9482         * class-internals.h
9483         (MonoGenericContainer): Added `GHashTable *method_hash'.
9484
9485         * reflection.c (ReflectionMethodBuilder): Added
9486         `MonoGenericContainer *generic_container'.
9487         (reflection_methodbuilder_to_mono_method): Don't create a new
9488         MonoGenericContainer each time we're called.
9489         (mono_reflection_bind_generic_method_parameters): Use
9490         `container->method_hash' to cache the results so we don't create a
9491         different method if we're called several times with the same
9492         arguments.
9493
9494         * loader.c (method_from_methodspec): Use the new
9495         `container->method_hash' here, too.
9496
9497 2004-11-26  Martin Baulig  <martin@ximian.com>
9498
9499         * class.c (inflate_generic_signature): Correctly compute
9500         `res->has_type_parameters'.
9501         (mono_class_vtable): Use the `has_type_parameters' flag to
9502         determine whether we're a generic method.
9503
9504         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
9505
9506 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
9507
9508         * object.c (mono_runtime_run_main): Fix a small memory leak.
9509
9510 2004-11-25  Martin Baulig  <martin@ximian.com>
9511
9512         * class.c (set_generic_param_owner): Fixed the loop.
9513
9514 2004-11-25  Martin Baulig  <martin@ximian.com>
9515
9516         * object.c (mono_class_vtable): Don't create any JIT wrappers for
9517         generic methods.
9518
9519 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
9520
9521         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
9522         names. Fixes #69787.
9523
9524 2004-11-24  Martin Baulig  <martin@ximian.com>
9525
9526         * class.c (mono_class_create_generic_2): If we don't have a
9527         `ginst->parent', inflate `gklass->parent' to get our parent.
9528
9529 2004-11-24  Martin Baulig  <martin@ximian.com>
9530
9531         * reflection.c (compare_genericparam): Correctly sort the
9532         GenericParam table; fixes #69779.
9533
9534 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
9535
9536         * reflection.c: When writing a PE file, don't create a huge
9537         buffer in memory. Just write the arrays we have to the file.
9538         This reduces memory usage.
9539
9540         * metadata-internals.h: MonoDynamicStream pefile is no longer used
9541         globally.
9542
9543 2004-11-17  Martin Baulig  <martin@ximian.com>
9544
9545         * class.c (mono_class_init): Don't setup `class->parent' for
9546         dynamic instances; moved this to mono_class_generic_2().
9547         (mono_class_create_generic): Also set `klass->inited' for dynamic
9548         generic instances.
9549         (mono_class_create_generic_2): Don't do anything for dynamic
9550         generic instances.  Set `klass->parent' here and also call
9551         mono_class_setup_parent() here. 
9552
9553         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
9554         `MonoType *parent' argument; set `ginst->parent' before calling
9555         mono_class_create_generic_2(), so we set the correct parent.
9556
9557 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
9558
9559         * reflection.c: allow getting attributes from ModuleBuilder
9560         (used by ikvm).
9561
9562 2004-11-17  Martin Baulig  <martin@ximian.com>
9563
9564         * class.c (mono_class_create_from_typedef): If a type parameter is
9565         inherited from an outer class, set its owner to that class.
9566
9567 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
9568
9569         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
9570           for (int*) written size. This fixes bug #69592.
9571
9572 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
9573
9574         * icall.c: Added IsAuthenticodePresnet internal call.
9575         * image.c|h: New function that check a MonoImage for an Authenticode
9576         signature in the certificate PE data directory.
9577         * security.c|h: New internal call to ask the runtime if an 
9578         Authenticode signature seems referenced in the PE header.
9579
9580 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
9581
9582         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
9583
9584         * reflection.c (mono_image_create_pefile): Free the assembly streams
9585         after writing out the assembly file.
9586
9587         * object.c (mono_runtime_run_main): Fix small memory leak.
9588
9589         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
9590         property access modifiers. Fixes #69389.
9591
9592 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
9593
9594         * domain.c, object.c, object-internals.h, domain-internals.h,
9595         object.h, marshal.c: keep dynamic code info per domain.
9596
9597 2004-11-15  Martin Baulig  <martin@ximian.com>
9598
9599         * class.c (mono_type_get_name_recurse): Put type arguments in
9600         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
9601         see bug #68387.
9602
9603 2004-11-15  Martin Baulig  <martin@ximian.com>
9604
9605         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
9606         (mono_class_setup_vtable): When computing `the_cname' for a
9607         generic instance, don't include the namespace since we'd otherwise
9608         add it twice.
9609
9610 2004-11-15  Martin Baulig  <martin@ximian.com>
9611
9612         * class.c (mono_class_create_generic): Changed return type to void.
9613         (mono_class_create_generic_2): New public function; setup
9614         `class->method', `class->field' and `class->interfaces' here
9615         instead of in mono_class_init().
9616
9617         * class.h (mono_class_create_generic): Moved to class-internals.h.
9618
9619 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
9620
9621         * reflection.c (mono_image_create_pefile): take a file HANDLE.
9622         rather than writing to memory, write to this file. Right now,
9623         we are just writting into a buffer, and copying that. However
9624         we can avoid the buffer later.
9625
9626         (mono_dynamic_stream_reset): new function
9627
9628         * icall.c, object-internals.h: update for the above.
9629
9630 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
9631
9632         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
9633         have been using gc'd memory. First it is slower, unlikely
9634         the comment in the source code said, secondly, it increases
9635         our footprint to do it in the gc.
9636
9637         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
9638         the method so that it does not have to copy to managed code.
9639
9640 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
9641
9642         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
9643
9644 2004-11-12  Martin Baulig  <martin@localhost>
9645
9646         * reflection.c (mono_image_create_token): Allow generic method
9647         definitions here, since they may appear in an `.override'; see
9648         gen-98/gen-99 for an example.
9649
9650 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
9651
9652         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
9653         #69365.
9654
9655         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
9656         descriptive.
9657
9658 2004-11-11  Martin Baulig  <martin@ximian.com>
9659
9660         * class.c (mono_class_setup_vtable): In an explicit interface
9661         implementation, the method name now includes the arity.
9662
9663 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
9664
9665         * object.c (mono_array_full_copy): Fix warning.
9666
9667 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
9668
9669         * appdomain.c: Removed look_for_method_by_name(). Use the new method
9670         mono_class_get_method_from_name() instead.
9671         
9672         * class-internals.h: Added two new types of wrappers. 
9673         Added MonoRemotingTarget enum. Added new trampoline function type, which
9674         takes an additional MonoRemotingTarget value as parameter, so it is
9675         possible to request a trampoline for a specific target.
9676         
9677         * class.c: Added new mono_class_get_method_from_name() method.
9678         
9679         * class.h: In MonoRemoteClass, we can have now to vtables, one for
9680         general remoting sinks and one specific for cross domain calls.
9681         
9682         * debug-helpers.c: Added new wrapper names.
9683         
9684         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
9685         of a remote class.
9686         
9687         * image.c: Porperly delete value objects form the remoting invoke hashtable.
9688         
9689         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
9690         with several other methods (mono_marshal_get_xappdomain_dispatch,
9691         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
9692         and others) can generate a fast remoting wrapper for cross domain calls.
9693         More information can be found in docs/remoting.
9694         Other changes: Removed mono_find_method_by_name, and used
9695         mono_class_get_method_from_name instead.
9696         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
9697         is stored in the remoting invoke hashtable.
9698         
9699         * marshal.h: published the new method for getting the xdomain wrapper,
9700         and also added a method for getting the adequate wrapper for a given
9701         method and target.
9702         
9703         * object-internals.h, object.c: Added a couple of methods for capying and
9704         cloning arrays.
9705         Modified mono_install_remoting_trampoline, which takes the new remoting
9706         trampoline that has a remoting target as parameter.
9707         mono_class_proxy_vtable now also takes a remoting target as parameter, and
9708         will return the most suitable vtable for the target.
9709         Added mono_remote_class_vtable, which returns the vtable of a remote class
9710         (which can be the normal remoting vtable or the xdomain vtable).
9711         
9712         * threads.c: the xdomain invoke and dispatch wrappers must also be
9713         protected against interruptions.
9714
9715 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9716
9717         * icall.c: use memmove in BlockCopyInternal when the source and
9718         destination arrays are the same.
9719
9720 2004-11-09  Martin Baulig  <martin@ximian.com>
9721
9722         * class-internals.h (MonoGenericContainer): Removed `method' and
9723         `signature', replaced them with `is_method' and `is_signature'
9724         flags.  Added `context'.
9725
9726         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
9727         instead of a `MonoGenericContainer *'.
9728
9729         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
9730         for dynamic type parameters.
9731         (mono_metadata_load_generic_params): Setup `container->context'.
9732
9733         * reflection.c (mono_reflection_setup_generic_class): Setup
9734         `tb->generic_container->context'.
9735         (do_mono_reflection_bind_generic_parameters): Use
9736         mono_class_inflate_generic_type() to correctly inflate types,
9737         rather than using our own hack just for MONO_TYPE_VAR.
9738
9739 2004-11-09  Martin Baulig  <martin@ximian.com>
9740
9741         * class.c (mono_class_inflate_generic_method): Small fix; don't
9742         crash here.
9743
9744         * icall.c
9745         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
9746         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
9747         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
9748         (ves_icall_Type_BindGenericParameters): Likewise.
9749         (ves_icall_Type_get_IsGenericInstance): Likewise.
9750         (ves_icall_Type_GetGenericParameterPosition): Likewise.
9751         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
9752         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
9753         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
9754
9755 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
9756
9757         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
9758         assembly versions and public key tokens. Fixes #69113.
9759
9760 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
9761
9762         * metadata.c: fix bug introduced with the type cache changes
9763         on 2004-11-06.
9764
9765 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
9766
9767         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
9768         the MonoClass pointer instead of the token in exception clauses.
9769         * reflection.c: updates for the above and make the code not depend
9770         on the structure of MonoExceptionClause.
9771
9772 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
9773
9774         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9775         Add support for dynamic assemblies. Fixes #69114.
9776
9777         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
9778
9779 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
9780
9781         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
9782         since most only those methods use it. the code member of
9783         MonoMethodPInvoke was dead, so that can be removed too. Also,
9784         remove inline_count (again, not used), and move slot so that it
9785         can share bits with some other flags. This saves 8 bytes in the
9786         structure and gives us about 50 kb back for mcs helloworld.cs
9787
9788         * *.[ch]: Do naming changes for the above.
9789
9790         * loader.c (mono_method_get_header): Lazily init the header
9791         on first access.
9792         (mono_get_method_from_token): don't init the header here
9793         (mono_free_method): the header may never be allocated
9794
9795         Overall, this saves 150 kb of unmanaged allocations
9796         for mcs helloworld.cs. That accounts for 10% of the unmanaged
9797         memory at runtime.
9798         
9799         * loader.c, loader.h (mono_method_get_header): new accessor.
9800
9801         * *.[ch]: use the above method. Prepares us to lazily load
9802         the header.
9803
9804         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
9805         three warnings, which are actual bugs (see 69206).
9806
9807         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
9808         unused. Saves a cool 4 bytes / method.
9809
9810 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
9811
9812         * metadata.c (builtin_types): Add types for System.Object here.
9813         (mono_metadata_parse_type_full): Cache MonoType*'s that are
9814         for a class or valuetype from klass->this_arg or klass->byval_arg.
9815
9816         On mcs for a hello world, this gets us down from 21836 MonoType's
9817         to 14560.
9818
9819         (mono_metadata_free_type): Account for the above change.
9820
9821 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
9822
9823         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
9824         exception instead of asserting if name is null.
9825         (ves_icall_System_AppDomain_GetData): Ditto.
9826
9827 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
9828
9829         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
9830         EnumBuilder.
9831
9832         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
9833         Return NULL when the domain does not have entry_assembly set.
9834
9835         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
9836         Add a 'resource_modules' argument.
9837         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
9838
9839         * reflection.c (mono_reflection_create_runtime_class): Move setting
9840         of wastypebuilder here, so mono_get_type_object () returns a MonoType
9841         for enums too.
9842
9843         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
9844         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
9845         Throw an ArgumentNullException if 'ptr' is null.
9846
9847         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
9848         assemblies here. Fixes #69020.
9849
9850 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
9851
9852         * reflection.c (build_compressed_metadata): Fix the previous patch for
9853         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
9854         the stack.
9855
9856 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
9857
9858         * assembly.c (mono_assembly_names_equal): Allow a match if one of
9859         the cultures is false. Fixes #69090.
9860
9861         * reflection.c (build_compressed_metadata): Fix invalid memory read 
9862         detected by valgrind.
9863         
9864         * reflection.c (mono_reflection_get_type): Avoid triggering a 
9865         TypeResolve multiple times for the same type. Fixes #65577.
9866
9867 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
9868
9869         * marshal.c: Avoid using ldftn to call managed functions. It is
9870         much slower than just a call.
9871
9872         * reflection.c (mono_module_get_object): free the basename we
9873         allocate here from glib.
9874         
9875         * reflection.c (ensure_runtime_vtable): make sure to free
9876         overrides.  Also, we were allocating an array of MonoMethod not an
9877         array of MonoMethod*.
9878
9879         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
9880
9881         * image.c (mono_image_close): free image->guid here.
9882
9883 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
9884
9885         * reflection.c: Fix some spec conformance issues with the PE file
9886         structures so mcs compiled apps run on the Net 2.0 beta.
9887
9888 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
9889
9890         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
9891         Implement this. Fixes #67264.
9892
9893         * debug-helpers.h debug-helpers.c marshal.c: Move 
9894         mono_find_method_by_name to debug-helpers.c.
9895
9896 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
9897
9898         * object.c (mono_release_type_locks): type_initialization_hash is
9899         a GHashTable.
9900
9901         * reflection.c object.c object-internals.h: Fix warnings.
9902
9903         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
9904         without accessors. Fixes #61561.
9905
9906         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
9907         application base from the root domain if not set. Fixes #65641.
9908         (mono_runtime_init): Fix warning.
9909
9910 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9911
9912         * appdomain.c: call mono_thread_pool_init.
9913         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
9914         of worker threads based on the number of CPUs and the environment
9915         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
9916         for non-windows (windows) systems.
9917
9918 2004-10-27  Chris Toshok  <toshok@ximian.com>
9919
9920         * mono-debug-debugger.c (write_class): don't call mono_class_init
9921         here, as even with the check for (!klass->init_pending), we get
9922         into a situation where we're hitting cycles in class
9923         initialization.  Fixes #68816.
9924
9925 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
9926
9927         * image.c: Avoid overwriting values in the loaded_images_hash when an
9928         assembly is loaded multiple times. Fixes #61152.
9929
9930         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
9931         so multiple satellite assemblies for the same name can be loaded.
9932         Fixes #68259.
9933
9934         * mono_domain_assembly_preload: Actually return the loaded assembly, 
9935         not NULL.
9936
9937         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
9938         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
9939
9940         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
9941         pending finalizers are not invoked after the appdomain has been 
9942         unloaded. Fixes #67862.
9943
9944 2004-10-22  Martin Baulig  <martin@ximian.com>
9945
9946         * mono-debug-debugger.c
9947         (mono_debugger_runtime_invoke): Don't box valuetypes.
9948
9949 2004-10-22  Chris Toshok  <toshok@ximian.com>
9950
9951         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
9952         don't hide private methods.
9953
9954 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
9955
9956         * icall.c: Allows the runtime to "share" (when known) the public key
9957         token of an assembly. This avoid the need to recalculate the token 
9958         (from the public key) in managed code.
9959
9960 2004-10-21  Chris Toshok  <toshok@ximian.com>
9961
9962         * debug-helpers.c (append_class_name): argh, revert last patch.
9963         
9964 2004-10-21  Chris Toshok  <toshok@ximian.com>
9965
9966         * debug-helpers.c (append_class_name): use '+' as the delimiter,
9967         not '/', so that it matches what the debugger uses to look up
9968         methods.
9969
9970 2004-10-21  Martin Baulig  <martin@ximian.com>
9971
9972         * mono-debug-debugger.c (mono_debugger_throw_exception): New
9973         public method; this is called each time an exception is thrown and
9974         allows the debugger to use exception catch points.
9975
9976 2004-10-21  Martin Baulig  <martin@ximian.com>
9977
9978         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
9979         the stack pointer and the exception object in some struct and pass
9980         that to the debugger.
9981
9982 2004-10-21  Chris Toshok  <toshok@ximian.com>
9983
9984         * mono-debug-debugger.c (do_write_class): add instance/static
9985         event support.  We don't expose "raise" or "other" yet.
9986         (event_is_static): new method.
9987
9988 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
9989
9990         * mono-debug-debugger.c
9991         (mono_debugger_handle_exception): Remove
9992         bogus return value for fussy compilers.
9993
9994 2004-10-20  Martin Baulig  <martin@ximian.com>
9995
9996         * mono-debug-debugger.c
9997         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
9998         (mono_debugger_handled_exception): Likewise.
9999
10000 2004-10-20  Martin Baulig  <martin@ximian.com>
10001
10002         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10003         MONO_DEBUGGER_EVENT_EXCEPTION.
10004
10005         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10006         public function to send the debugger a notification for an
10007         exception and inform it about a catch/finally clause.
10008
10009 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10010
10011         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10012         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10013         fix 2.95 build. 
10014
10015         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10016
10017 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10018
10019         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10020         marshalled as [In,Out]. Fixes #58325.
10021
10022 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10023
10024         * reflection.c (mono_method_body_get_object): Implement some fields.
10025
10026 2004-10-12  Martin Baulig  <martin@ximian.com>
10027
10028         * reflection.c (mono_reflection_bind_generic_parameters): Small
10029         fix, correctly retrieve our parent from a generic instance.
10030
10031 2004-10-12  Martin Baulig  <martin@ximian.com>
10032
10033         * metadata.c (mono_metadata_generic_param_equal): We always have
10034         an owner.
10035
10036         * class.c
10037         (mono_class_from_generic_parameter): We need to have an owner.
10038         (my_mono_class_from_generic_parameter): Likewise.
10039
10040         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10041         mono_reflection_create_generic_class() and added a new
10042         mono_reflection_setup_generic_class().  
10043         (mono_reflection_initialize_generic_param): If we're a nested
10044         generic type and inherited from the containing class, set our
10045         owner to the outer class.
10046
10047 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10048
10049         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10050
10051         * reflection.c (mono_method_body_get_object): New function to create
10052         a MethodBody object.
10053
10054         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10055
10056 2004-10-11  Martin Baulig  <martin@ximian.com>
10057
10058         * metadata.c (_mono_metadata_type_equal): Renamed to
10059         do_mono_metadata_type_equal() and made static.
10060
10061 2004-10-11  Martin Baulig  <martin@ximian.com>
10062
10063         * appdomain.c: Bump corlib version number to 28.
10064
10065 2004-10-10  Martin Baulig  <martin@ximian.com>
10066
10067         * class-internals.h
10068         (MonoGenericInst): Added `MonoGenericContainer *container'.
10069         (MonoGenericMethod): Likewise.
10070         (MonoGenericContext): Likewise.
10071         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10072
10073         * metadata.c
10074         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10075         (do_mono_metadata_parse_generic_inst): Likewise.
10076         (mono_metadata_parse_type_full): New public method.  This is the actual
10077         mono_metadata_parse_type() implementation - with an additional
10078         `MonoGenericContainer *' argument.
10079         (mono_metadata_parse_array_full): Likewise.
10080         (mono_metadata_parse_signature_full): Likewise.
10081         (mono_metadata_parse_method_signature_full): Likewise.
10082         (mono_metadata_parse_mh_full): Likewise.
10083         (mono_type_create_from_typespec): Likewise.
10084         (mono_metadata_interfaces_from_typedef_full): New public method;
10085         this is similar to the other _full() methods, but we take a
10086         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10087         (mono_metadata_parse_generic_param): Take an additional
10088         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10089         from that container.
10090         (mono_metadata_generic_param_equal): New static method to compare
10091         two type parameters.
10092         (_mono_metadata_type_equal): New static method; takes an
10093         additional `gboolean signature_only' argument - if true, we don't
10094         compare the owners of generic parameters.
10095         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10096         with a TRUE argument - do a signature-only comparision.
10097
10098         * loader.c: Use the new _full() methods and pass the
10099         MonoGenericContainer to them.
10100
10101         * object-internals.h (MonoReflectionTypeBuilder): Added
10102         `MonoGenericContainer *generic_container' field.
10103         (MonoReflectionMethodBuilder): Likewise.
10104
10105 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10106
10107         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10108         case initial images of dynamic assemblies.
10109
10110         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10111
10112         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10113
10114         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10115         length of event->other array.
10116         (typebuilder_setup_events): Ditto.
10117
10118         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10119         'assembly_by_name' and add an 'assemblies' list.
10120
10121         * assembly.h assembly.c: Add a new search hook for determining whenever
10122         an assembly is already loaded. Use this instead of searching in the
10123         loaded_assemblies list.
10124
10125         * domain.c appdomain.c: Implement the new search hook so loaded 
10126         assemblies are now scoped by appdomain. Fixes #67727.
10127
10128 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10129
10130         * threads.c (mono_thread_attach): Initialize synch_lock field so
10131         mono_thread_detach works again.
10132
10133         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
10134         'lib' too. Fixes #63130.
10135
10136 2004-10-06  Jackson Harper  <jackson@ximian.com>
10137
10138         * culture-info-tables.h: regenerated.
10139
10140 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
10141
10142         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10143         implemented by other interfaces in the result. Fixes #65764.
10144         
10145         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10146         Handle unloadable modules without crashing.
10147
10148         * image.c (load_modules): Revert the previous patch since modules must
10149         have a fixed index inside the array.
10150         
10151         * image.c (load_modules): Don't include native modules in the modules
10152         array.
10153
10154 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10155
10156         * reflection.h: Add param_defaults field.
10157
10158         * reflection.c: Add support for parameter defaults in dynamic methods.
10159         Fixes #64595.
10160
10161         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10162         an empty string when a type has no namespace. Fixes #64230.
10163
10164 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10165
10166         * tabledefs.h: Added "internal" security actions to support non-CAS
10167         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10168         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10169
10170 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10171
10172         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10173         constructor of abstract class. Fixes #61689.
10174
10175 2004-10-04  Martin Baulig  <martin@ximian.com>
10176
10177         * class-internals.h (MonoGenericContainer): New type.
10178         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10179         `MonoGenericContainer *generic_container'.
10180         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10181         `MonoGenericContainer *generic_container'.
10182
10183         * metadata.c (mono_metadata_load_generic_params): Return a
10184         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10185         removed the `num' argument.
10186
10187 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10188
10189         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10190         for dynamic images.
10191
10192         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10193         machine fields.
10194
10195         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10196
10197         * reflection.c: Save pe_kind and machine values into the generated
10198         image file.
10199
10200         * appdomain.c: Bump corlib version number.
10201
10202         * object-internals.h: Reorganize layout of LocalBuilder.
10203
10204         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10205         New helper function.
10206
10207         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10208         created MonoType for dynamic types. Fixes #66180.
10209
10210 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10211
10212         * threadpool.c: the ares hashtable needs a critical section around it.
10213         this prevents some nasty segfaults
10214
10215 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10216
10217         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10218         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10219         bug 67324).
10220         
10221 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10222
10223         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10224         
10225 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10226
10227         * image.c: Always canonicalize image file names, to avoid loading
10228         the same assembly twice when referenced using a relative path.
10229
10230 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10231
10232         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10233
10234         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10235
10236         * marshal.c: Fix warnings.
10237
10238 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
10239
10240         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
10241         attempting to marshal the delegate_trampoline as the method_addr.
10242         This patch has a static hashtable of marshalled delegates so that 
10243         we can map delegate_trampoline addresses back to delegates.  This
10244         allows a delegate passed to managed code to be passed back into native
10245         code.  Fixes #67039
10246
10247 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10248
10249         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
10250
10251         * reflection.c (method_encode_code): Align method headers properly.
10252         Fixes #66025.
10253
10254 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10255
10256         * marshal.c: In the runtime invoke wrapper, reset the abort
10257         exception if it is cached. This avoids the automatic rethrowal of 
10258         the exception after the catch of the wrapper. Also check for pending
10259         interruptions before calling the managed method. This is done using
10260         the new method emit_thread_force_interrupt_checkpoint, since the
10261         normal checkpoint method is ignored when running the invoke wrapper.
10262         * object.c: If the abort exception is rethrown, set the abort_exc
10263         field of the thread, so it will be rethrown aftere every catch.
10264         * threadpool.c: Only run an interruption checkpoint if what has been
10265         requested is a stop of the thread (aborts will be ignored).
10266         * threads.c: By default, a thread will now never be interrumped while
10267         running the runtime invoke wrapper (this ensures that runtime_invoke
10268         will always return to the caller if an exception pointer is provided).
10269         There is a new special method mono_thread_force_interruption_checkpoint()
10270         to force an interruption checkpoint even if running a protected
10271         wrapper, which is used by the same runtime invoke wrapper to do a check
10272         at a safe point.
10273
10274 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10275
10276         * object.c, object-internals.h: Implemented mono_release_type_locks,
10277         which releases the cctor locks held by a thread.
10278         * threads.c, threads.h: In thread_cleanup, release cctor locks held
10279         by a thread. Added mono_thread_exit() method to be used to safely stop
10280         a thread.
10281
10282 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10283
10284         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10285         Move null check before dereference.  Avoid indexing beyond the end
10286         of the 'modules' array.
10287
10288 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10289
10290         * metadata-internals.h (MonoImage): Add module_count field.
10291         * image.c (load_modules): Set image->module_count.
10292         (mono_image_load_file_for_image): Use image->module_count.
10293         * reflection.c (mono_image_load_module): Append to image->modules array 
10294         of dynamic assembly.
10295         (mono_module_get_object): Fix loop to actually increment index.
10296         Use image->module_count.
10297         * assembly.c (mono_assembly_load_references): Use image->module_count.
10298         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
10299         Likewise.
10300
10301 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10302
10303         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
10304         Avoid assert on generic types.
10305
10306 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
10307
10308         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
10309
10310         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
10311
10312         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
10313         function to convert a MarshalSpec structure to its managed counterpart.
10314
10315         * reflection.c: Fix warnings.
10316         
10317         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
10318         field.
10319
10320         * icall.c (mono_create_icall_signature): Fix build.
10321
10322 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
10323
10324         * icall.c: Add MakePointType icall.
10325
10326         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
10327         warnings.
10328
10329 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10330
10331         * threadpool.c: reuse allocated slots in the queue.
10332
10333 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
10334
10335         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
10336
10337         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
10338
10339         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
10340         previous change.
10341
10342         * tabledefs.h: Add constants for pinvoke attributes BestFit and
10343         ThrowOnUnmappableChar.
10344
10345         * icall.c (ves_icall_Type_GetPacking): New icall.
10346
10347 2004-09-24  Martin Baulig  <martin@ximian.com>
10348
10349         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
10350
10351 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10352
10353         * appdomain.c:
10354         (mono_domain_set): allow setting a domain that is being unloaded.
10355         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
10356         being unloaded.
10357
10358 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10359
10360         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
10361         the GetCustomAttributes icall.
10362
10363 2004-09-23  Martin Baulig  <martin@ximian.com>
10364
10365         * object-internals.h (MonoReflectionGenericParam): Replaced
10366         'has_ctor_constraint', `has_reference_type' and `has_value_type'
10367         with `guint32 attrs'.
10368
10369 2004-09-23  Martin Baulig  <martin@ximian.com>
10370
10371         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
10372
10373 2004-09-23  Martin Baulig  <martin@ximian.com>
10374
10375         * object-internals.h (GenericParameterAttributes): New enum.
10376
10377 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10378
10379         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
10380         
10381         * class.c (init_events): Fill out event->other field.
10382
10383         * class.c: Fix warnings.
10384
10385         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
10386
10387 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
10388
10389         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
10390         walk which doesn't supply the IL offset.
10391
10392 2004-09-22  Martin Baulig  <martin@ximian.com>
10393
10394         * reflection.c (mono_reflection_setup_internal_class): If we're
10395         System.ValueType, System.Object or System.Enum, set
10396         `klass->instance_size' and create the vtable.
10397         (mono_reflection_create_internal_class): If we're an enum type,
10398         get the base class from our current corlib.
10399
10400 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
10401
10402         * reflection.h (MonoResolveTokenError): New type.
10403
10404         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
10405         icall.
10406
10407         * icall.c: Add an 'error' argument to the ResolveToken icalls.
10408
10409 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
10410
10411         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
10412         Support also calling constructors, but only for already allocated objects.
10413
10414 2004-09-17  Geoff Norton <gnorton@customerdna.com>
10415
10416         * reflection.c (type_get_qualified_name): If the klass is null
10417         return the typename to avoid a NullRefEx.
10418         (encode_cattr_value): Get the qualified name of the boxed type,
10419         not the underlying enumtype.  Fixes #62984.
10420
10421 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
10422
10423         * marshal.c: Fix problems with previous checkin.
10424
10425 2004-09-21    <vargaz@freemail.hu>
10426
10427         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
10428         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
10429
10430         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
10431
10432 2004-09-21  Geoff Norton <gnorton@customerdna.com>
10433
10434         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
10435         should only return a type for pointers, arrays, and passbyref types.
10436         Fixes bug #63841.
10437
10438 2004-09-21  Martin Baulig  <martin@ximian.com>
10439
10440         * domain.c (mono_debugger_check_runtime_version): New public
10441         function.
10442
10443         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
10444
10445 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
10446
10447         * reflection.c: Added missing sort to the declarative security 
10448         attributes table. MS implementation stops seeing the attributes if the
10449         token number regress in the table (as shown by ildasm and permview).
10450
10451 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
10452
10453         * object-internals.h (MonoReflectionModule): Add 'token' field.
10454         
10455         * reflection.c (mono_reflection_get_token): Add support for Module
10456         and Assembly.
10457         (mono_module_get_object): Set 'token' field.
10458         (mono_module_file_get_object): Set 'token' field.
10459
10460         * icall.c: Add new Assembly and Module icalls.
10461
10462         * appdomain.c: Bump corlib version.
10463
10464 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
10465
10466         * loader.h loader.c class.h class.c: Add helper functions for obtaining
10467         tokens of metadata objects.
10468
10469         * reflection.h reflection.c (mono_reflection_get_token): New function
10470         to obtain the token of a metadata object.
10471
10472         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
10473
10474 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
10475
10476         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
10477         
10478         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
10479
10480 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
10481
10482         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
10483         * object-internals.h: Added 3 MonoArray* members to MonoReflection
10484         AssemblyBuilder to access the permissions set in the class lib.
10485         * reflection.c: Added security attributes encoding step in 
10486         mono_image_build_metadata.
10487         * tabledefs.h: Added new security actions defined in 2.0:
10488         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
10489
10490 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10491
10492         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
10493         macro parameter.
10494
10495 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10496  
10497         * locales.c: nullify the ICU_collator member of CompareInfo when it is
10498           finalized. There where random SIGSEVs at program termination, when
10499           an object being finalized was trying to do a string comparison and
10500           the current culture was already finalized.
10501  
10502 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10503
10504         * threads.c: call thread_cleanup before finishing the thread if we get
10505         there.
10506
10507 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
10508
10509         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
10510         assemblies from the parent. Fixes #65665.
10511
10512 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
10513
10514         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
10515         modifiers.
10516
10517 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
10518
10519         * reflection.h: add prototype for mono_get_dbnull_object
10520         * reflection.c: add prototypes for get_default_param_value_blobs 
10521         and mono_get_object_from_blob for fussier compilers
10522
10523 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
10524  
10525         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
10526         false deadlock checks in class initialization.
10527  
10528 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
10529
10530         * image.c (mono_image_addref): Fix comment.
10531
10532         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
10533         possible.
10534
10535 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
10536
10537         * reflection.c (mono_param_get_objects): Modified to return
10538         ParameterInfo.DefaultValue object.
10539
10540         (get_default_param_value_blobs):
10541         (mono_get_object_from_blob):
10542         (mono_get_dbnull_object): New helper routines. 
10543
10544         * object.c (mono_get_constant_value_from_blob): New helper routine
10545         carved out from get_default_field_value ()
10546
10547         * object-internals.h (mono_get_constant_value_from_blob): Added
10548         function declaration.
10549
10550 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
10551
10552         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
10553         referenced assemblies. Fixes #62135.
10554
10555         * exception.h exception.c (mono_get_exception_file_not_found2): New
10556         helper function.
10557
10558 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
10559
10560         * class.h class.c: Add mono_type_get_underlying_type ().
10561
10562 2004-09-09  Geoff Norton <gnorton@customerndna.com>
10563
10564         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
10565         Fix GetTypes() to support dynamically created assemblies.
10566
10567 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
10568
10569         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
10570         
10571         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
10572         previous patch.
10573
10574         * reflection.h reflection.c loader.c: Allow dynamic construction of
10575         pinvoke methods. Fixes #65571.
10576         
10577         * reflection.c (mono_reflection_get_type): Revert previous change since
10578         it causes regressions.
10579
10580 2004-09-08  Martin Baulig  <martin@ximian.com>
10581
10582         * class.c (class_compute_field_layout): Don't call
10583         mono_class_layout_fields() for open generic instances.
10584
10585 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
10586         * threads.c appdomain.c: fix typo in GC macro
10587
10588 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10589
10590         * threads.c: don't call mono_thread_detach() in start_wrapper(),
10591         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
10592
10593 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
10594
10595         * image.c (mono_image_close): Applied patch from 
10596         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
10597         assembly is loaded multiple times from data.
10598         
10599         * image.c (mono_image_open): Fix warning.
10600
10601 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10602
10603         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
10604         once. Fixes #58334.
10605         
10606         * reflection.c (mono_reflection_create_runtime_class): Initialize
10607         klass->nested_classes. Fixes #61224.
10608
10609 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
10610
10611         * threads.c: sched_yield() on exit, to allow threads to quit.
10612
10613 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10614
10615         * object.c (mono_unhandled_exception): Remove leftover debug code.
10616
10617 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
10618
10619         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
10620
10621 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10622
10623         * marshal.c (emit_marshal_array): Really null terminate string arrays.
10624         
10625         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
10626
10627 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10628
10629         * marshal.c (emit_marshal_array): Null terminate string arrays.
10630         
10631         * marshal.c (raise_auto_layout_exception): Fix warning.
10632
10633         * reflection.c (mono_param_get_objects): Initialize the default value
10634         with DBNull.Value, not null. Fixes #62123.
10635
10636 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
10637
10638         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
10639         throw an exception with a cute explanation.
10640
10641 2004-09-06  Dick Porter  <dick@ximian.com>
10642
10643         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
10644         Close the new process's thread handle, as we don't use it.  The
10645         handle stays around forever otherwise.
10646
10647 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10648
10649         * object.c (arith_overflow): Fix warning.
10650
10651         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
10652         calling conventions in method refs. Fixes #65352.
10653
10654         * reflection.c: Fix warnings.
10655
10656 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
10657
10658         * icall.c: Add a new icall for Array.Clear
10659
10660 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
10661
10662         * object.c: When allocating an array, we have to throw
10663         an overflow exception if any of the lengths are < 0.
10664
10665 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10666
10667         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
10668         properly. Also move implementation of string array marshalling to 
10669         managed code. Fixes #42316.
10670
10671 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10672
10673         * assembly.c: provide more information when loading an assembly fails.
10674
10675 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10676
10677         * filewatcher.c: don't expect the development fam package to be
10678         installed.
10679
10680 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
10681
10682         * marshal.c: Make a copy of the signature cookie since it will be
10683         freed by the caller.
10684         
10685         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
10686
10687         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
10688
10689         * metadata.c (mono_metadata_free_marshal_spec): New function to free
10690         marshal specs.
10691
10692         * marshal.c: More refactoring.
10693         
10694         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
10695         smaller functions.
10696
10697 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
10698
10699         * object.c: In mono_message_invoke, fill the output parameter array after
10700           calling the managed method (it was done before the call). This fixes
10701           bug #59299.
10702
10703 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
10704
10705         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
10706         as well.
10707
10708 2004-09-02  Martin Baulig  <martin@ximian.com>
10709
10710         * class.c (mono_class_instance_size): Don't allow generic type
10711         definitions or open generic instances.
10712         (mono_class_array_element_size): If we're a value type, call
10713         mono_class_instance_size() on the original class.
10714
10715         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
10716         handle generic instances.
10717
10718         * mono-debug-debugger.c (write_type): Handle generic instances
10719         like classes.
10720
10721 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
10722
10723         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
10724         the allocation request fails. Fixes #65089.
10725
10726         * object.c (mono_runtime_free_method): Do not call mono_free_method.
10727         
10728         * object.c (mono_runtime_free_method): New function to free a dynamic
10729         method.
10730
10731         * marshal.c (mono_delegate_free_ftnptr): New function to free the
10732         delegate trampoline.
10733
10734         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
10735         with hasthis as dynamic,
10736
10737         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
10738
10739         * domain.c (mono_jit_info_table_remove): New function to remove an
10740         entry from the jit info table.
10741
10742         * class-internals.h (MonoMethod): Add 'dynamic' field.
10743
10744         * loader.c: Fix warnings.
10745
10746 2004-09-01  Martin Baulig  <martin@ximian.com>
10747
10748         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
10749         instead of mono_debugger_lock() because the latter one is a no-op
10750         unless running in the debugger.
10751
10752 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
10753
10754         * class.c (class_compute_field_layout): Classes with auto-layout or
10755         reference fields are not blittable.
10756         
10757 2004-09-01  Dick Porter  <dick@ximian.com>
10758
10759         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
10760         mono_image_get_filename() to get the assembly location.
10761
10762         * icall.c:
10763         * metadata.h: Fix compile warnings
10764
10765 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
10766
10767         * class.c (class_compute_field_layout): System.Object is blittable.
10768
10769         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
10770         as in/out. Fixes #59909.
10771
10772 2004-09-01  Martin Baulig  <martin@ximian.com>
10773
10774         * metadata.h (MONO_TYPE_ISREFERENCE): Call
10775         mono_metadata_generic_inst_is_valuetype() if we're a generic
10776         instance to check whether our underlying type is a reference type.
10777
10778 2004-09-01  Martin Baulig  <martin@ximian.com>
10779
10780         * metadata.c (mono_type_size): If we're a generic instance, call
10781         mono_class_value_size() for value types.
10782
10783 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
10784
10785         * marshal.c: Implement more custom marshalling functionality. Fixes
10786         #64915.
10787
10788 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10789
10790         * mono-debug.c, debug-mono-symfile.c: add some locking love.
10791
10792 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
10793
10794         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
10795
10796         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
10797
10798         * icall.c: Fix some warnings.
10799
10800         * threads.c (abort_appdomain_thread): Fix unref errors.
10801         (mono_thread_current): Fix THREAD_DEBUG define.
10802
10803 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
10804
10805         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
10806
10807         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
10808
10809 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
10810
10811         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
10812         string arrays.
10813
10814 2004-08-28  Martin Baulig  <martin@ximian.com>
10815
10816         * metadata.c
10817         (mono_metadata_generic_inst_is_valuetype): New public function.
10818
10819         * metadata.h (MONO_TYPE_ISSTRUCT): Call
10820         mono_metadata_generic_inst_is_valuetype() if we're a generic
10821         instance to check whether our underlying type is a valuetype.
10822
10823 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
10824
10825         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
10826         #63768.
10827
10828 2004-08-25  Martin Baulig  <martin@ximian.com>
10829
10830         * loader.c (mono_get_method_from_token): Abstract methods can also
10831         be generic and thus have type parameters.
10832
10833         * metadata-internals.h
10834         (MonoDynamicImage): Added `GPtrArray *gen_params'.
10835
10836         * reflection.c (mono_image_get_generic_param_info): Don't create a
10837         metadata row, just add an entry to the `gen_params' array.
10838         (build_compressed_metadata): Sort the `gen_params' array and then
10839         actually create the metadata.
10840
10841 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10842
10843         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
10844
10845 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
10846
10847         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
10848
10849 2004-08-24  Martin Baulig  <martin@ximian.com>
10850
10851         * class.cs (mono_class_is_subclass_of): Like an interface, a
10852         generic instance also derives from System.Object.
10853
10854 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
10855
10856         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
10857         custom modifiers to be in any order. Fixes #61990.
10858
10859 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
10860
10861         * object.c: Register mono_object_new_fast icall.
10862         
10863         * object.c (mono_class_get_allocation_ftn): Return to calling
10864         mono_object_new_fast, since it seems faster to compute the object 
10865         size in unmanaged code than passing it as a parameter.
10866
10867         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
10868
10869         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
10870         this function with Boehm as the oom handler, so we don't have to check
10871         the result of GC_malloc.
10872
10873         * object.c: Remove checks for oom.
10874
10875         * object.h object.c (mono_class_get_allocation_ftn): New function to
10876         return the icall which can be used to allocate an instance of a given
10877         class. 
10878
10879         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
10880
10881         * class-internals.h: Add 'enabled' field.
10882
10883 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
10884
10885         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
10886
10887 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
10888         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
10889         value 0x0010.
10890
10891 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
10892
10893         * appdomain.c: use the Tls function for appdomain too,
10894         at Zoltan's request. Actually return in mono_context_get
10895
10896         * appdomain.c, profiler.c, threads.c: use __thread
10897
10898 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
10899
10900         * appdomain.c threads.c: Call GC_CreateThread on windows.
10901
10902         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
10903         multiple libraries since this don't work on windows.
10904
10905 2004-08-18  Martin Baulig  <martin@ximian.com>
10906
10907         * class-internals.h
10908         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
10909         MonoMethodHeader.
10910
10911         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
10912         MonoMethodNormal since we also need it for abstract and interface
10913         methods.
10914
10915         * reflection.c
10916         (build_compressed_metadata): Sort the GenericParam table.
10917         (mono_image_create_token): Added `gboolean create_methodspec'
10918         argument; this is false when generating a MethodImpl token.
10919         (reflection_methodbuilder_to_mono_method): Abstract and interface
10920         methods may also have generic parameters.
10921
10922 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
10923
10924         * appdomain.c: thread local alloc
10925
10926 2004-08-17  Martin Baulig  <martin@ximian.com>
10927
10928         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
10929
10930         * icall.c
10931         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
10932         argument.
10933
10934         * class.c (mono_type_get_full_name): New public function.
10935         (mono_type_get_name): Don't include the type arguments.
10936
10937 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
10938
10939         * Makefile.am: Build static versions of libmetadata and libmonoruntime
10940         for inclusion into the mono executable.
10941
10942 2004-08-16  Martin Baulig  <martin@ximian.com>
10943
10944         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
10945         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
10946
10947 2004-08-14  Martin Baulig  <martin@ximian.com>
10948
10949         * class.c (dup_type): Also copy the `byref' field.
10950
10951 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
10952
10953         * reflection.c (create_dynamic_mono_image): Revert the last change 
10954         since it breaks bootstrap.
10955
10956 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
10957
10958         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
10959
10960         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
10961         not free them with g_free.
10962
10963 2004-08-11  Martin Baulig  <martin@ximian.com>
10964
10965         * reflection.c (mono_reflection_setup_internal_class): Also call
10966         mono_class_setup_mono_type() if we already have a `tb->type.type'.
10967
10968 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
10969
10970         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
10971         called during default (first) AppDomain creation. Keep track of
10972         Evidence when loading assemblies.
10973
10974 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10975
10976         * opcodes.c, opcodes.h: reduce runtime relocations.
10977
10978 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
10979
10980         * culture-info.h, locales.c: fixes and chages to sue the new
10981         optimized format of the locale data.
10982         * culture-info-tables.h: regenerated.
10983
10984 2004-08-06  Geoff Norton <gnorton@customerdna.com>
10985         
10986         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
10987
10988 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
10989
10990         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
10991         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
10992         * domain-internals.h: icall declaration.
10993         * icall.c: icall registration.
10994         * object-internals.h: New fields in MonoAssembly for CAS.
10995
10996 2004-08-05  Duncan Mak  <duncan@ximian.com>
10997
10998         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
10999         CEE_LDELEM_ANY.
11000
11001 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11002
11003         * reflection.c: fix to deal with object[] arrays in custom ctors
11004         (bug #62550).
11005
11006 2004-08-05  Martin Baulig  <martin@ximian.com>
11007
11008         * class.c (mono_class_array_element_size): Added support for
11009         generic instances and correctly handle "recursive" types.
11010
11011 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11012
11013         * assembly.c: Fix warnings.
11014
11015 2004-08-04  Martin Baulig  <martin@ximian.com>
11016
11017         * class.c
11018         (mono_type_get_name_recurse): Added `gboolean include_arity'
11019         argument specifying whether or not we should include the generic
11020         arity in the type name.
11021         (_mono_type_get_name): New static function.
11022         (mono_class_setup_vtable): If we're a generic instance, don't
11023         include the generic arity in the names of explicit method
11024         implementations.        
11025
11026 2004-08-03  Martin Baulig  <martin@ximian.com>
11027
11028         * class.c (mono_type_get_name_recurse): Enclose the generic type
11029         arguments in `<', '>'.
11030
11031 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11032
11033         * gc.c: make GC warning messages use the trace API, they are just
11034         noise to most of the users.
11035
11036 2004-08-03  Martin Baulig  <martin@ximian.com>
11037
11038         * debug-mono-symfile.c (read_string): Correctly read the string.
11039
11040 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11041
11042         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11043         
11044         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11045         icalls.
11046         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11047
11048 2004-07-30  Martin Baulig  <martin@ximian.com>
11049
11050         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11051         Reflect latest symbol writer changes.   
11052
11053 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11054
11055         * object.c: always create an object if null is passed
11056         to Invoke() where a valuetype is expected.
11057
11058 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11059
11060         * marshal.c (mono_marshal_init): make managed
11061         signatures match native ones better for 64bits.
11062
11063 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11064
11065         * appdomain.c: hack to build correctly the private bin path on windows.
11066         Fixes bug #61991.
11067
11068 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11069
11070         * assembly.c: Load mscorlib from the correct framework directory
11071           (mono/<version>/mscorlib.dll).
11072         * appdomain.h: Added prototypes for new functions.
11073         * internals.h: Added some prototypes.
11074         * domain.c: When initializing the runtime, get from the executable and
11075           the configuration files the runtime version that the app supports.
11076           Added support methods for reading app.exe.config. Added list of versions
11077           supported by the JIT. Added two new methods: mono_init_from_assembly,
11078           which initializes the runtime and determines the required version from
11079           the provided exe file, and mono_init_version, which initializes
11080           the runtime using the provided version.
11081         * icall.c: Get machine.config from version-specific directory.
11082         * reflection.c: When generating an image, embed the version number
11083           of the current runtime.
11084
11085 2004-07-28  Dick Porter  <dick@ximian.com>
11086
11087         * socket-io.c
11088         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11089         returned sockaddr size before creating the remote address object.
11090         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11091         61608.
11092
11093 2004-07-28  Dick Porter  <dick@ximian.com>
11094
11095         * locales.c (string_invariant_compare_char): Fix invariant char
11096         compares between upper and lower cases.  Fixes bug 61458.
11097
11098 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11099         
11100         * marshal.c: actually cache stelem.ref wrappers.
11101         
11102 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11103
11104         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11105         sections and remove the mono_cli_rva_map () function.
11106
11107 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11108
11109         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11110         by Geoff Norton (<gnorton@customerdna.com>).
11111
11112 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11113
11114         * class.c: fix class loads for pointer types (typeof(int) !=
11115         typeof(int*)).
11116
11117 2004-07-27  Martin Baulig  <martin@ximian.com>
11118
11119         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11120         reading the debugging information from an external ".mdb" file.
11121
11122 2004-07-24  Martin Baulig  <martin@ximian.com>
11123
11124         * reflection.c (mono_image_get_type_info): Only write a class
11125         layout entry if we actually have a size or a packing size.
11126
11127 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11128
11129         * reflection.c (type_get_fully_qualified_name): 
11130         insert cast to get type checking of ?: with non-gcc compilers
11131
11132 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11133
11134         * rand.c: use g_getenv for both lookups of
11135         MONO_EGD_SOCKET
11136
11137 2004-07-17  Martin Baulig  <martin@ximian.com>
11138
11139         * reflection.c (mono_reflection_bind_generic_method_parameters):
11140         Set `gmethod->reflection_info'.
11141
11142 2004-07-17  Martin Baulig  <martin@ximian.com>
11143
11144         * class.c (mono_class_create_from_typedef): Insert the newly
11145         created class into the hash table before computing the interfaces
11146         since we could be called recursively.
11147
11148 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11149
11150         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11151         function to implement stelem.ref in managed code
11152         * class-internals.h, debug-helpers.c: a new wrapper type
11153         for the above.
11154
11155 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11156
11157         * gc.c: allow GC handles to work even when no GC is compiled in.
11158         Fix part of bug #61134 (GetAddrOfPinnedObject).
11159
11160 2004-07-13  Peter Williams  <peter@newton.cx>
11161  
11162         * process.c (complete_path): Make sure we don't attempt to execute
11163         directories.
11164  
11165 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11166
11167         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11168           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11169           and will add/subtract the hour if needed
11170
11171 2004-07-12  Martin Baulig  <martin@ximian.com>
11172
11173         * reflection.c (mono_field_get_object): If we have
11174         `field->generic_info', take the attributes from
11175         `field->generic_info->generic_type'.    
11176
11177 2004-07-12  Martin Baulig  <martin@ximian.com>
11178
11179         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11180         This function must be called before initializing the runtime.
11181         (mono_debug_init_1): New function; call this after initializing
11182         the runtime, but before loading the assembly.  It tells the
11183         debugger to load corlib and the builtin types.
11184
11185         * mono-debug-debugger.c: Did some larger changes in the debugging
11186         code; support recursive class declarations, make sure we actually
11187         add all classes.
11188
11189 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11190
11191         * debug-helpers.c: undo my previous patch and fixed the real issue in
11192         ../mini/exceptions-x86.c
11193
11194 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11195
11196         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11197         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11198         called from other .cctors.
11199
11200 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11201
11202         * loader.c: Removed the mono_loader_wine_init hack now that we are
11203         doing a managed version of Windows.Forms.
11204
11205 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11206
11207         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11208         threadpool.c, threads.c: remove static data from rootset.
11209
11210 2004-07-09  Dick Porter  <dick@ximian.com>
11211
11212         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11213         Don't do any more processing if the matched length was 0.  It was
11214         increasing the size of the string before.  Fixes bug 61167.
11215
11216 2004-07-09  Dick Porter  <dick@ximian.com>
11217
11218         * socket-io.h:
11219         * socket-io.c
11220         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11221         Add support for SO_PEERCRED if its available.
11222
11223 2004-07-09  Peter Bartok <pbartok@novell.com>
11224         * loader.c: winelib.exe.so error message is now only displayed if
11225         MONO_DEBUG is set. To help us avoid questions when people are trying
11226         out the new Managed.Windows.Forms.
11227
11228 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11229
11230         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11231         for isinst and castclass wrappers.
11232
11233         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11234         to libmetadata from the JIT, so they could be used by the marshalling
11235         code and the interpreter.
11236
11237         * marshal.c: Register marshalling related JIT icalls here instead of
11238         in mini.c. Use CEE_MONO_ICALL instead of the family of 
11239         CEE_MONO_PROC<x> opcodes to call marshalling functions.
11240
11241         * metadata.h: Remove unneeded marshalling conversions.
11242
11243         * opcodes.c: Update for new opcodes.
11244         
11245 2004-07-08  Martin Baulig  <martin@ximian.com>
11246
11247         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
11248         (mono_debug_get_domain_data): Make this function static.
11249
11250 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11251
11252         * gc.c, object.h: add nice GC handle API for embedders.
11253
11254 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
11255
11256         * reflection.c: more changes for the new api
11257
11258         * object.c: When we reflect on a field w/ a constant value, it
11259         will not have a memory location, so we must access metadata. Also,
11260         allow easier reading of strings so that we can read them from
11261         the constant data.
11262
11263         * class.c (mono_class_layout_fields): no need for literal fields here.
11264
11265         * class-internals.h: api changes for const fields
11266
11267         * icall.c (ves_icall_get_enum_info): use new apis for const fields
11268
11269 2004-07-06  Martin Baulig  <martin@ximian.com>
11270
11271         * mono-debug.h: Increment version number to 44.
11272
11273         * mono-debug.c (mono_debug_add_wrapper): The second argument is
11274         now a gpointer, rewrote this whole method.
11275
11276         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
11277         function.  Add information about the wrapper in a new "misc table".
11278
11279         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
11280         for the new misc table.
11281
11282 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
11283
11284         * metadata-internals.h image.c: Add a cache for helper signatures.
11285
11286         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
11287
11288 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
11289
11290         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
11291         delegates from a delegate. Fixes #61033.
11292         
11293         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
11294         marshalling of stringbuilder arrays. Fixes #59900.
11295
11296 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
11297
11298         * icall.c: Add EnumBuilder:setup_enum_type icall.
11299
11300 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
11301
11302         * icall.c: Added a new icall for the property version of
11303         OffsetOfStringData.
11304
11305 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
11306
11307         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
11308         it has a constant size across platforms.
11309
11310         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
11311         stack trace.
11312
11313 2004-06-29  Martin Baulig  <martin@ximian.com>
11314
11315         * mono-debug.c (mono_debug_add_method): Protect the whole function
11316         in mono_debugger_lock(), not just parts of it.
11317
11318 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11319
11320         * reflection.c: make sure padding bytes in heaps are zeroed.
11321
11322 2004-06-24  David Waite  <mass@akuma.org>
11323
11324         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
11325         image.c, loader.c, locales.c, marshal.c, metadata.c,
11326         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
11327         string-icalls.c, threads.c: change to C90-style comments from C99 /
11328         C++ -style
11329
11330 2004-06-24  Dick Porter  <dick@ximian.com>
11331
11332         * threads.c
11333         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
11334         return createdNew.  Fixes bug 60412.
11335
11336         * threads-types.h: 
11337         * icall.c: Add createdNew parameter to CreateMutex icall
11338
11339 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11340
11341         * reflection.c, object-internals.h: save default value in params.
11342
11343 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11344
11345         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
11346         no need to build a new path combining that with the application base.
11347         Fixes bug #60442.
11348
11349 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
11350
11351         * reflection.c: fixed minor standard compliance issues.
11352
11353 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11354
11355         * reflection.c: fixed issue with encoding some custom attributes
11356         (arrays in properties and fields, bug #60411).
11357
11358 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11359
11360         * reflection.c: fix start address when copying the public key token.
11361
11362 2004-06-23  Martin Baulig  <martin@ximian.com>
11363
11364         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
11365         the `exc' object in a static object to put it into the GC's root set.
11366
11367 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
11368
11369         * reflection.c: make mono_reflection_setup_internal_class ()
11370         callable a second time to setup a new parent class.
11371
11372 2004-06-23  Dick Porter  <dick@ximian.com>
11373
11374         * threads.c: Check for WAIT_IO_COMPLETION return values.
11375
11376 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
11377
11378         * appdomain.c: Removed the g_free on the public key token. Now copy 
11379         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
11380         * assembly.c: Added public key token string value when loading 
11381         assemblies. Fix bug #60439.
11382         * icall.c: Added missing informations (like public key) in 
11383         GetReferencedAssemblies. Fix #60519.
11384         * image.h: Changed definition for public key token from const char*
11385         public_tok_value to guchar public_key_token [17];
11386         * reflection.c: Updated for changes to public key token.
11387
11388 2004-06-22  Lluis Sanchez Gual
11389
11390         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
11391         for the field in base classes.
11392
11393 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11394
11395         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
11396         mark headers as not supported, they are installed only for use by the
11397         debugger.
11398
11399 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
11400
11401         * *.c, *.h: avoid namespace pollution in public headers.
11402
11403 2004-06-21  Martin Baulig  <martin@ximian.com>
11404
11405         * exception.c (mono_get_exception_security): It's in
11406         "System.Security", not in "System".
11407
11408         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
11409         the exception classes.
11410
11411 2004-06-21  Martin Baulig  <martin@ximian.com>
11412
11413         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
11414         Protect the exception object from being finalized.
11415
11416 2004-06-21  Martin Baulig  <martin@ximian.com>
11417
11418         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
11419         public function.
11420
11421 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
11422
11423         * reflection.c: Load the assembly in mono_reflection_type_from_name,
11424         if it was not loaded before. Fix parts of #60439.
11425
11426 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
11427
11428         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
11429         code that was broken since Ben's change: wrappers are now
11430         dependent on the method signature only again.
11431
11432 2004-06-21  Martin Baulig  <martin@ximian.com>
11433
11434         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
11435         added interface support.
11436
11437 2004-06-21  Martin Baulig  <martin@ximian.com>
11438
11439         * class.c (mono_vtable_get_static_field_data): New public method.
11440
11441 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
11442
11443         * filewatcher.c : Windows build fix to be compliant with API changes.
11444
11445 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11446
11447         * class.h, class.c: more accessors.
11448         * metadata.h, metadata.c: prepare for hiding MonoType and
11449         MonoMethodSignature: people should use the accessors from now on
11450         outside of the tree.
11451
11452 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11453
11454         * *.c, *.h: more API cleanups.
11455
11456 2004-06-18  Jackson Harper  <jackson@ximian.com>
11457
11458         * assembly.c: Trace loading assemblies.
11459         * loader.c: Trace loading native libraries.
11460         * mono-config.c: Trace loading config files.
11461         
11462 2004-06-18  Dick Porter  <dick@ximian.com>
11463
11464         * locales.c: Tell ICU the lengths of strings, it can cope with
11465         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
11466
11467 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
11468
11469         * image.c: swapped name/filename;
11470
11471 2004-06-18  Martin Baulig  <martin@ximian.com>
11472
11473         * mono-debug-debugger.c (write_class): Write the parent class at
11474         the end of the header.
11475
11476 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11477
11478         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
11479
11480 2004-06-17  Raja R Harinath  <rharinath@novell.com>
11481
11482         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
11483         (bundle_obj): New conditional define.
11484         (BUILT_SOURCES): Remove.
11485         ($(bundle_srcs)): Make parallel-make safe.
11486         (libmonoruntime_la_LIBADD): Make unconditional.
11487         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
11488         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
11489
11490 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
11491
11492         * culture-info-tables.h: It was inconsistent with the latest
11493           supp info files.
11494
11495 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
11496
11497         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
11498         be loaded.
11499
11500         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
11501         with gcc 2.95.
11502
11503 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11504
11505         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
11506         cleaned up public header threads.h.
11507
11508 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11509
11510         * Makefile.am, *.c, *.h: more API cleanups.
11511
11512 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
11513
11514         * Makefile.am: removed monosn from compilation.
11515         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
11516         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
11517         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
11518         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
11519         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
11520         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
11521
11522 2004-06-15  Jackson Harper  <jackson@ximian.com>
11523
11524         * assembly.c: Make locales lower case when searching the GAC for
11525         assemblies. gacutil will always make locales lowercase when
11526         installing so this effectively makes them case insensitive.
11527         
11528 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
11529
11530         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
11531         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
11532           parameter which allows to choose whether the wait can be interrupted or 
11533           not. Also added the method mono_monitor_enter(), which locks the monitor
11534           using an infinite wait and without allowing interruption.
11535           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
11536           interrupted.
11537         * object.h: Added new fields in MonoThread. suspend_event holds the event
11538           used to susped/resume the thread. synch_lock is the lock object to use for
11539           modifying the thread state.
11540         * threads.c: Use the new synch_lock object for locking, instead of "this",
11541           which can generate deadlocks.
11542           Moved thread state change in Thread.Sleep and Thread.Join from managed
11543           to unmanaged code. This avoids a deadlock when the thread was suspended
11544           just after acquiring the thread lock.
11545           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
11546           Implemented Thread.Suspend using an event instead of ThreadSuspend,
11547           which is not fully implemented in the io-layer.
11548         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
11549
11550 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
11551
11552         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
11553         threads-types.h: more API cleanups.
11554
11555 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11556
11557         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
11558         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
11559         threadpool.c, threads.c: first pass at the exported API cleanup.
11560
11561 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
11562
11563         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
11564
11565 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11566
11567         * icall.c: added internalGetHome.
11568
11569 2004-06-14  Dick Porter  <dick@ximian.com>
11570
11571         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
11572         possible to return successfully when '.' or '..' were the only
11573         entries in a directory, but were skipped.  The MonoIOStat was not
11574         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
11575         Fixes bug 59574.
11576
11577 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11578
11579         * reflection.c: make binaries run on .Net 1.1 by default.
11580
11581 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11582
11583         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
11584
11585 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
11586
11587         * marshal.c: keep track of struct size with explicit layout
11588         (bug #59979).
11589
11590 2004-06-12  Martin Baulig  <martin@ximian.com>
11591
11592         * mono-debug-debugger.c: Comment out a debugging g_message().
11593
11594 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11595
11596         * reflection.c, reflection.h: do not free custom attrs that are cached.
11597         * icall.c: use braces to make code clearer.
11598
11599 2004-06-11  Martin Baulig  <martin@ximian.com>
11600
11601         * class.h (MonoInflatedField): New type.
11602         (MonoClassField): Replaced `MonoType *generic_type' with
11603         `MonoInflatedField *generic_info'.
11604
11605         * icall.c
11606         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
11607
11608 2004-06-11  Martin Baulig  <martin@ximian.com>
11609
11610         * reflection.c (mono_image_create_method_token): Correctly encode
11611         varargs methods.
11612
11613 2004-06-11  Martin Baulig  <martin@ximian.com>
11614
11615         * metadata.c (mono_metadata_parse_method_signature): When parsing
11616         a MethodDef which has VarArgs, also set sentinelpos if we don't
11617         have any parameters.
11618
11619 2004-06-11  Martin Baulig  <martin@ximian.com>
11620
11621         * verify.c (mono_method_verify): In CEE_CALL, use
11622         mono_method_get_signature() to get the method's signature, unless
11623         we're a PInvoke method.
11624
11625 2004-06-10  Jackson Harper  <jackson@ximian.com>
11626
11627         * assembly.c: Use <path>/lib/mono/gac for the extra paths
11628         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
11629         logical name as the supplied path is just a prefix to the gac not
11630         the direct path to it.
11631         
11632 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
11633
11634         * reflection.c: make the token for a created method match
11635         the token of the MethodBuilder it was created from
11636         (IKVM requires this behaviour now).
11637
11638 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
11639
11640         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
11641         reflection.c, socket-io.c: leak fixes.
11642
11643 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
11644
11645         * icall.c: handle sentinel pos in vararg methods in position different
11646         from 0.
11647
11648 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11649
11650         * culture-info-tables.h: freshly generated.
11651
11652 2004-06-09  Martin Baulig  <martin@ximian.com>
11653
11654         * loader.c (mono_get_method_constrained): Call `mono_class_init
11655         (constrained_class)'.   
11656
11657 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
11658
11659         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
11660         any methods. Fixes #59629.
11661
11662 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11663
11664         * culture-info-tables.h: reflecting locale-builder updates.
11665
11666 2004-06-08  Dick Porter  <dick@ximian.com>
11667
11668         * object.h:
11669         * locales.c: Fixed compile warnings, including a real bug in
11670         CompareInfo_internal_compare.
11671         
11672 2004-06-08  Dick Porter  <dick@ximian.com>
11673
11674         * locales.c
11675         (ves_icall_System_Globalization_CompareInfo_internal_index):
11676         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
11677         Double-check the resuls of usearches, because ICU currently
11678         ignores most of the collator settings here.  Fixes bug 59720.
11679         
11680 2004-06-08  Dick Porter  <dick@ximian.com>
11681
11682         * locales.c
11683         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
11684         Fix memory leak and segfault-causing typo.  No idea how this one
11685         lasted so long without being noticed.
11686
11687 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
11688
11689         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
11690         any methods. Fixes #59629.
11691
11692 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11693
11694         * assembly.c:
11695         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
11696         own the critical section before). Removed dead code (that's done
11697         in the preload hook).
11698
11699         (mono_assembly_load_with_partial_name): call the preload hook.
11700
11701 2004-06-08  Martin Baulig  <martin@ximian.com>
11702
11703         * metadata.c (mono_metadata_signature_alloc): Default
11704         `sentinelpos' to -1.
11705
11706         * reflection.c (mono_image_get_array_token): Likewise.
11707
11708 2004-06-08  Martin Baulig  <martin@ximian.com>
11709
11710         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
11711
11712         * metadata.c (mono_metadata_parse_method_signature): When parsing
11713         a MethodDef which has VarArgs, set sentinelpos.
11714
11715         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
11716         `gint16' since we're using -1 for non-varargs methods.
11717
11718         * reflection.c
11719         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
11720         (method_encode_signature): Added varargs support.
11721         (method_builder_encode_signature): Likewise.
11722         (mono_image_get_varargs_method_token): New static method.
11723         (mono_image_create_method_token): New public method; this is
11724         called via an icall instead of mono_image_create_token() when
11725         calling a varargs method.       
11726
11727 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
11728
11729         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
11730
11731 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11732
11733         * culture-info-tables.h : Reflecting the latest locale-builder that
11734           fixed empty array representation ({} to {0}).
11735
11736 2004-06-07  Jackson Harper  <jackson@ximian.com>
11737
11738         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
11739         looking up extra gac paths. This allows MONO_GAC_PATH to act
11740         exactly like a prefix.
11741         
11742 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
11743
11744         * reflection.c (mono_reflection_type_from_name): Make a copy of the
11745         type name before modifying it. Fixes #59405.
11746
11747 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11748
11749         * culture-info.h: added fields for "all datetime patterns".
11750         * locales.c: (  ves_icall_System_Globalization_CultureInfo
11751           _construct_datetime_format ()): fill xxx_patterns fields.
11752         * object.h: added fields for "all datetime patterns" to
11753           MonoDateTimeFormatInfo.
11754         * culture-info-tables.h: reflecting locale-builder updates.
11755
11756 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
11757
11758         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
11759         the event has no add and remove methods. Fixes #59629.
11760
11761 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
11762
11763         * object.c: Fixed possible integer overflow when allocating large
11764         strings.
11765
11766 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
11767
11768         * culture-info-tables.h: reflecting locale-builder updates.
11769
11770 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
11771
11772         * culture-info-tables.h: reflecting locale-builder updates.
11773
11774 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
11775
11776         * culture-info-tables.h: reflecting locale-builder updates.
11777
11778 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
11779
11780         * threads.c: Made Thread.Sleep abortable.
11781
11782 2004-06-02  Martin Baulig  <martin@ximian.com>
11783
11784         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
11785
11786         * debug-mono-symfile.h: Bumped symbol file version number to 37.
11787
11788 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
11789
11790         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
11791
11792 2004-05-30  Jackson Harper  <jackson@ximian.com>
11793
11794         * reflection.c: Do not hardcode assembly versions or public key
11795         tokens anymore. All of this except the corlib section was dead
11796         code anyways.
11797         
11798 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
11799
11800         * object.c (mono_runtime_invoke_array): Automatically create boxed
11801         objects for byref valuetypes if needed. Fixes #59300.
11802         
11803         * object.c (mono_method_return_message_restore): Handle 
11804         MONO_TYPE_OBJECT as well.
11805
11806 2004-05-28  Jackson Harper  <jackson@ximian.com>
11807
11808         * reflection.c: The modified type encoding was causing build
11809         problems. Reverted for now.
11810         
11811 2004-05-28  Jackson Harper  <jackson@ximian.com>
11812
11813         * reflection.c/h: Take an assembly ref so that we dont create
11814         fully qualified names when encoding types in the same assembly as
11815         the custom attribute being emitted.
11816         * appdomain.c: Increment version number.
11817         
11818 2004-05-26  Duncan Mak  <duncan@ximian.com>
11819
11820         * icall.c
11821         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
11822         Set the full version number (major, minor, build, revision).
11823
11824 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
11825
11826         * marshal.c (emit_struct_conv): increment src/dst after blit
11827         (mono_marshal_get_managed_wrapper,
11828         mono_marshal_get_native_wrapper): make sure we have marshalling
11829         info before marshalling params (info computation affects
11830         blittable)
11831
11832         * class.c (class_compute_field_layout): correctly deal with
11833         blittable
11834         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
11835         value types (as per what windows dows by default)
11836         (mono_class_setup_mono_type): System.ValueType is blittable
11837         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
11838         blittable
11839
11840         * marshal.c (mono_marshal_load_type_info): flag types  as
11841         non-blittable if the native layout doesn't match the managed
11842         layout
11843
11844 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11845
11846         * appdomain.c: don't add stuff in the private search path that is
11847         above the application base. If application base is not set, there's
11848         no private search path.
11849
11850 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
11851
11852         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
11853         byref struct arguments in native->managed marshalling.
11854
11855 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
11856
11857         * marshal.c (mono_marshal_get_runtime_invoke): correctly
11858         cache methods using signature (special case for methods
11859         that are value type or string class)
11860         
11861         * image.c (mono_image_close): clean up allocated GSList's
11862         in runtime_invoke_cache.
11863
11864 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11865
11866         * mono-config.c: set the correct path for mono_cfg_dir on windows when
11867         there's no MONO_CFG_DIR environment variable defined.
11868
11869 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11870
11871         * threads.c: windows version must be >= 0x0500 to include OpenThread.
11872
11873 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
11874
11875         * threadpool.c: Really wait for 500ms after the async call, even if the wait
11876           is interrumped.
11877         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
11878           before waiting for it, and call CloseHandle after the wait to unref it.
11879           This will make sure that handles are not disposed too early.
11880
11881 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11882
11883         * appdomain.c:
11884         * appdomain.h:
11885         * icall.c: removed
11886         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
11887         needed now.
11888
11889         * object.c: se the application_base only for the domain that runs
11890         Main. Fixes bug #59216,
11891
11892 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11893
11894         * appdomain.c:
11895         * object.c: only the domain in which Main is run have
11896         SetupInformation.ConfigurationFile set, so moved a few lines from
11897         appdomain.c to object.c.
11898
11899 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11900
11901         * appdomain.c: we tried to load [name].(dll|exe), but according
11902         to bug #57710, we must also try [culture]/[name].(dll|exe) and
11903         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
11904         There's a test case attached to bug #58922.
11905
11906 2004-05-27  Dick Porter  <dick@ximian.com>
11907
11908         * icall.c:
11909         * file-io.c: Implemented icalls for locking and unlocking regions
11910         in a file.
11911         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
11912         FALSE on error (fixes both compiler warning and real bug.)
11913
11914 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
11915
11916         * culture-info-tables.h: reflecting locale-builder updates.
11917
11918           (Added missing ChangeLog entry for 05/26)
11919
11920 2004-05-27  Jackson Harper  <jackson@ximian.com>
11921
11922         * locales.c: Fix some cut and paste errors.
11923         
11924 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11925
11926         * mono-config.c: set the correct path for config. directory on windows.
11927
11928 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11929
11930         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
11931           on win32.
11932
11933 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
11934
11935         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
11936         from pinvoke functions.
11937         
11938         * marshal.c (mono_ftnptr_to_delegate): Implement this.
11939
11940 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11941
11942         * culture-info-tables.h: reflecting locale-builder updates.
11943
11944 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
11945
11946         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
11947         #59086.
11948
11949 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
11950
11951         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
11952         * icall.c: Modified icalls for RNG.
11953         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
11954         Windows (CryptoAPI).
11955
11956 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
11957
11958         * locales.c: Fix build.
11959
11960 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
11961
11962         * culture-info-tables.h: reflecting locale-builder updates.
11963
11964 2004-05-25  Jackson Harper  <jackson@ximian.com>
11965
11966         * locales.c: When creating the current culture use the $LANGs
11967         specific culture. So DateTimeFormat and NumberFormat entries are created.
11968         
11969 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
11970
11971         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
11972         a char array as parameter.
11973
11974 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
11975
11976         * image.c: In mono_image_open(), always use an absolute path name to
11977           look for already loaded images.
11978
11979 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
11980
11981         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
11982         missing in the windows build (like older cygwin include files).
11983
11984 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
11985
11986         * icall.c: Fixed check for possible integer overflow in Buffer_
11987         BlockCopy icall. Replaced comments style // by /* */.
11988
11989 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
11990
11991         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
11992         
11993         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
11994         check after MONO_VTADDR. Fixes pinvoke2.exe.
11995
11996         * marshal.h marshal.c metadata.h: Add beginnings of support for
11997         ftnptr -> delegate marshalling.
11998
11999 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12000
12001         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12002         * threads.c: Fix warnings.
12003
12004 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12005
12006         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12007         * icall.c: Registered icalls for Suspend and Resume.
12008         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12009           Thread.Abort.
12010         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12011         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12012         * process.c: Use WaitForSingleObjectEx.
12013         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12014           checkpoints.
12015         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12016           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12017           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12018           background threads. Added basic support for Abort in Windows.
12019           Start new threads using a managed delegate invoke wrapper. This wrapper
12020           has an interruption checkpoint that is needed since an interruption
12021           can be requested before the thread leaves the unmanaged code that starts 
12022           the thread.
12023         * marshal.c: Added interruption checkpoint after every native call, and
12024           also before managed calls for wrappers called from unmanaged code to
12025           go into managed code.
12026         * object.h: Added new field in MonoThread to keep track of interruption
12027           requests.
12028
12029 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12030
12031         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12032         calls.
12033
12034 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12035
12036         * appdomain.c:
12037         * assembly.c:
12038         * gc.c:
12039         * locales.c:
12040         * mono-config.c:
12041         * rand.c: getenv -> g_getenv (windows!)
12042
12043         * process.c: complete_path is also used on non-windows platforms.
12044
12045 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12046
12047         * icall.c: new signature for Process_Start.
12048
12049         * process.[ch]: new signature for Process_Start. If we're on windows
12050         and UseShellExecute is false, we have to search for the program by
12051         ourselves if we don't get a full path.
12052
12053 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12054
12055         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12056         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12057
12058 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12059
12060         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12061         Fixes bug #58373.
12062
12063 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12064
12065         * process.c: use double quotes to quote program name and arguments on
12066         windows. Fixes bug #58575.
12067
12068 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12069
12070         * file-io.c: don't return "." and ".." when using windows Find*File.
12071
12072 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12073
12074         * marshal.c: Don't pass wrappers to message init because method 
12075         addressed used to lookup metadata. part of remoting[2|3] fix.
12076
12077 2004-05-15  Jackson Harper  <jackson@ximian.com>
12078
12079         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12080         path is essentially the same as MONO_PATH except that it points to
12081         GACs instead of lib directories.
12082         * loader.h: The user gac is gone so we dont need function to
12083         enable/disable it.
12084         * mono-config.c: user gac option is now gone.
12085         
12086 2004-05-15  Jackson Harper  <jackson@ximian.com>
12087
12088         * culture-info.h: Make defines more consistent, add calendar data
12089         to the culture info table.
12090         * culture-info-tables.h: Add basic calendar data. Basically
12091         everyone gets default gregorian until all the data is
12092         updated.
12093         * locales.c: Use the new consistent defines. Set calendar data for
12094         culture info objects.
12095         * object.h: add a field for calendar data to CultureInfo
12096         
12097 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12098
12099         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12100         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12101         a signature.
12102         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12103         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12104         an extra param that is the pointer of the method to invoke. The IL for
12105         the invoke method is no longer specific to the method, but to the
12106         signature of the method. Thus, we can share the same code for multiple
12107         methods. This reduces the number of methods that have to be compiled.
12108
12109 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12110
12111         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12112
12113         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12114
12115         * icall.c: Optimize Buffer.BlockCopy.
12116
12117 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12118
12119         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12120         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12121         quote). Changed them to "MMMM yyyy".
12122
12123 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12124
12125         * rand.c
12126         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12127
12128 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12129
12130         * reflection.h: Updated after changes to managed structures.
12131
12132         * appdomain.c: Bump corlib version.
12133
12134 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12135
12136         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
12137         windows.
12138
12139 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12140
12141         * Makefile.am: link to ../os/libmonoos.la on windows.
12142
12143         * assembly.c:
12144                 -If MONO_DEBUG, warn about non-existing directories in
12145                 MONO_PATH.
12146                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12147                 compile time variable.
12148                 -Removed init_default_path and call mono_set_rootdir from
12149                 libmonoos.a instead (windows only).
12150
12151         * assembly.h: declare mono_assembly_getrootdir().
12152
12153         * domain.c:
12154         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12155
12156         * loader.c: s/getenv/g_getenv/
12157
12158 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12159
12160         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12161
12162         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12163
12164         * metadata.h: Add new marshalling conversions.
12165
12166         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12167         function.
12168
12169         * reflection.c (mono_reflection_get_type): Lookup the type in all
12170         modules of a multi-module assembly. Fixes #58291.
12171
12172 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12173
12174         * threads.c: Before aborting a background, set the StopRequested
12175         state.  This avoids throwing the Abort exception.
12176         In mono_thread_manage, don't continue with the shutdown until all
12177         aborted threads have actually stopped.
12178
12179 2004-05-10  Jackson Harper  <jackson@ximian.com>
12180
12181         * locales.c: Remove the modifier from culture names.
12182         
12183 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12184
12185         * Makefile.am: monosn is not installed any more. It has been deprecated
12186         in favor of sn.
12187
12188 2004-05-07  Jackson Harper  <jackson@ximian.com>
12189
12190         * locales.c
12191         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12192         Fix array construction, add bailout if the length is 0.
12193
12194 2004-05-07  Dick Porter  <dick@ximian.com>
12195
12196         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12197         machine doesn't have a DNS entry.  Patch by Urs Muff
12198         (umuff@quark.com), fixes bug 57928.
12199
12200 2004-05-06  Jackson Harper  <jackson@ximian.com>
12201
12202         * reflection.c: Handle null PublicTokens properly. alloc mem for
12203         assembly names culture so we dont crash when freeing it.
12204         
12205 2004-05-06  Jackson Harper  <jackson@ximian.com>
12206
12207         * assembly.c: Check the usergac when loading with partial names.
12208         
12209 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12210
12211         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12212         does nothing for now (not required for Linux/Windows) but the class
12213         library can call it (and a newer or modified runtime could need it).
12214         * icall.c: Registred icall.
12215
12216 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12217
12218         * loader.c: prints a message on module loading error we set MONO_DEBUG
12219         environment variable.
12220
12221 2004-05-05  Jackson Harper  <jackson@ximian.com>
12222
12223         * appdomain.c: Handle PublicKeyToken=null properly.
12224         
12225 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12226
12227         * environment.c|h: Added icall ves_icall_System_Environment_
12228         GetOSVersionString to get the current OS version as a string.
12229         * icall.c: Registred icall.
12230
12231 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12232
12233         * object.c: in mono_object_get_virtual_method(), take into account that
12234         non-virtual methods don't have a slot in the vtable. Check needed when
12235         the object is a proxy.
12236
12237 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12238
12239         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
12240         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
12241
12242         * object.c (mono_class_compute_gc_descriptor): Fix warning.
12243
12244         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
12245         passed when a valuetype is expected.
12246
12247         * object.c (mono_unhandled_exception): Only set the exit code if the
12248         exception happens in the main thread. Fixes thread5.exe.
12249
12250         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
12251         invalid names. Fixes #58047.
12252
12253 2004-05-03  Jackson Harper  <jackson@ximian.com>
12254
12255         * assembly.c: This line was committed accidently and is unneeded.
12256         
12257 2004-05-03  Jackson Harper  <jackson@ximian.com>
12258
12259         * icall.c: Add new icall for Assembly::LoadWithPartialName
12260         * assembly.c/.h: new function that probes the GAC to load partial
12261         assembly names by Paolo Molaro.
12262         
12263 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12264
12265         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
12266         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
12267         (type_get_fully_qualified_name): Added PublicKeyToken when building a
12268         full type name.
12269
12270 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12271
12272         * appdomain.c: fixed check for 'neutral' culture and removed warning.
12273         * reflection.c: fix bug when parsing a full type name and Version is not
12274         the last thing in the string.
12275
12276 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
12277
12278         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
12279         crashes when it is freed.
12280
12281 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12282
12283         * assembly.c: print the compat warning to stderr.
12284
12285 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
12286
12287         * assembly.c (mono_assembly_load_references): Add a compatibility
12288         hack to run old applications that might be still referencing the
12289         3300-based assemblies, only do this for System.xxx.
12290
12291 2004-05-01  Jackson Harper  <jackson@ximian.com>
12292
12293         * appdomain.c: If the culture is neutral we set it to "".
12294         
12295 2004-04-29  Jackson Harper  <jackson@ximian.com>
12296
12297         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
12298
12299 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
12300  
12301         * string-icalls.c: added low overhead function for copying chars
12302         * icall.c: added needed icall for the above function
12303  
12304 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12305
12306         * icall.c: fix return value of get_global_assembly_cache.  Implemented
12307         Environment.GetLogicalDrives.
12308
12309 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
12310
12311         * rand.c: try and talk to egd or prngd
12312         for random bytes if opening devices fail.
12313
12314 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
12315
12316         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
12317         alignment for the type using the native alignment of its members 
12318         instead of using klass->min_align.
12319
12320         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
12321
12322 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12323
12324         * file-io.c:
12325         * socket-io.c: added check for sys/aio.h.
12326
12327 2004-04-28  Dick Porter  <dick@ximian.com>
12328
12329         * threads.c: Don't abort a thread thats already aborting, when
12330         terminating everything.
12331
12332 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12333
12334         * icall.c: added 2 new async calls for Socket.
12335
12336         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
12337         IO on *nix systems.
12338
12339         * threadpool.c: removed unused variable.
12340
12341 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
12342
12343         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
12344
12345 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12346
12347         * locales.c: put back string_invariant_tolower () and
12348         string_invariant_toupper ().
12349
12350 2004-04-26 David Waite <mass@akuma.org>
12351
12352         * file-io.h:
12353         * socket-io.h:
12354         * threads.h:
12355         * unicode.h: remove comma from end of enumeration declarations
12356
12357 2004-04-26 David Waite <mass@akuma.org>
12358
12359         * debug-mono-symfile.h:
12360         * decimal.c:
12361         * mono_debug.h:
12362         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
12363
12364
12365 2004-04-26  Jackson Harper  <jackson@ximian.com>
12366
12367         * appdomain.c: Increment version number.
12368         
12369 2004-04-26  Jackson Harper  <jackson@ximian.com>
12370
12371         * appdomain.c: Set assembly references public token value when
12372         PublicKeyToken is specified, not the hash_value. Free public token
12373         values when free assembly name data. Previously the public key
12374         token was hex decoded, however we are using hex encoded public key
12375         tokens, so this is not neccasary.
12376         * assembly.c: Lookup assemblies in the gac if their public token
12377         value is set. Add function to allow enabling user gac
12378         lookups. Specify whether or not the assembly was loaded from the
12379         GAC. Compare full assembly names when checking the cache for
12380         assemblies (Temporarily disabled see comment in code). Remove
12381         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
12382         specifies trace-loader they get extra info to stdout on the
12383         loading of assemblies.
12384         * image.h: Add a field for an assembly references public token
12385         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
12386         whether an assembly has been loaded from the GAC.
12387         * image.c: Remove a corlib -> mscorlib name mapping.
12388         * loader.h: Add function to enable/disable the user gac.
12389         * mono-config.c: Check if the usergac is enabled in the config
12390         file.
12391         * icall.c: New icall to determine whether or not an assembly has
12392         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
12393         * tabldefs.h: Add constant for assemblyref flag that specifies a
12394         full public key is used instead of a public token.
12395         * reflection.c: Remove mscorlib -> corlib mappings. Set
12396         PublicTokenValue instead of hash value. This value is a hex
12397         string so it does not need to be expanded.
12398
12399 2004-04-26  Martin Baulig  <martin@ximian.com>
12400
12401         * mono-debug-debugger.c (mono_debugger_initialize): Set
12402         `mono_debugger_initialized' before calling mono_debug_lock().
12403
12404 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
12405
12406         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
12407           InternalToUpper/InternalToLower.
12408         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
12409           removed invariant culture shortcut.  This is now done in managed code.
12410         * locales.c: (string_invariant_toupper/tolower) removed.
12411
12412 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12413
12414         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
12415         Added Poll internal call.
12416
12417         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
12418         call for Poll. Select was too heavy for polling a single socket.
12419
12420         * threadpool.[ch]: added mono_threadpool_cleanup.
12421         * threads.c: use it. Don't use Thread_Abort on windows.
12422
12423 2004-04-23  Martin Baulig  <martin@ximian.com>
12424
12425         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
12426
12427 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
12428
12429         * icall.c: Registred new icalls for key pair protection and added an
12430         icall for Environment.GetFolderPath on Windows.
12431         * security.c|h: Added new icalls for key pair protection.
12432
12433 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12434
12435         * socket-io.c: don't display the non-supported family warning for known
12436         families. Now this is not displayed on windows when checking support
12437         for IPv4/IPv6.
12438
12439 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12440
12441         * class.c: don't display the layout warning for static fields.
12442
12443 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
12444
12445         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
12446         * locales.c, locales.h: Added new icalls for culture-specific
12447         Char.ToLower and Char.ToUpper.
12448
12449 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12450
12451         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
12452         by David Waite.
12453
12454 2004-04-20  Martin Baulig  <martin@ximian.com>
12455
12456         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
12457         of the type name before passing it to mono_reflection_type_from_name().
12458
12459 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
12460
12461         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
12462         encodings here. Fixes #56965.
12463
12464 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
12465
12466         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12467         fix test on strstr result not that I can see anything that
12468         relies on the result.
12469
12470 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
12471
12472         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
12473         Fixes #57081.
12474
12475         * marshal.c (mono_marshal_get_string_encoding): New helper function.
12476
12477         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
12478         function to determine which marshalling to use for strings. Fixes
12479         #56965.
12480
12481         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
12482
12483         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
12484
12485 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
12486
12487         * icall.c: #include mono-config.h
12488
12489 2004-04-15  Jackson Harper  <jackson@ximian.com>
12490
12491         * culture-info-tables.h: Fix date formats for en-US culture.
12492         
12493 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
12494
12495         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
12496         ThreadPool.SetMinThreads.
12497         * threadpool.c: Implemented ThreadPool.GetMinThreads and
12498         ThreadPool.SetMinThreads.
12499
12500 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12501
12502         * mono-config.c: also load the .config file in the directory
12503         where the assembly was found.
12504
12505 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
12506
12507         * assembly.c: load per-assembly config files.
12508         * icall.c: decrapified code to get the config dir and moved to
12509         mono-config.c.
12510         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
12511         per-assembly config files. When doing a dll map lookup give precedence
12512         to the per-assembly data.
12513
12514 2004-04-14  Martin Baulig  <martin@ximian.com>
12515
12516         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
12517         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
12518         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
12519
12520         * mono-debugger-debugger.c: While the debugger is locked, remember
12521         whether the symbol tables have changes and send one single
12522         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
12523
12524 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
12525
12526         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
12527
12528         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
12529         function.
12530
12531         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
12532         account when marshalling string arrays. Fixes #56965.
12533
12534 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
12535
12536         * icall.c: Add new icalls mapping for security.
12537         * security.c|h: Add internal calls for WindowsIdentity,
12538         WindowsImpersonationContext and WindowsPrincipal.
12539
12540 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
12541
12542         * class.c: Added comment to ensure the System.MonoDummy class
12543         is removed when no longer necessary
12544
12545 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
12546
12547         * appdomain.c: Pass arguments to the bootstraping exceptions to
12548         minimize JITed methods at boot
12549
12550         * metadata.c (mono_exception_from_name_two_strings): Allow for the
12551         second string to be null.
12552
12553         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12554         Change the protocol to minimize the JIT methods at startup.  Now
12555         it Returns the internal codepage, if the value of "int_code_page"
12556         is 1 at entry, and we can not compute a suitable code page
12557         number, returns the code page as a string.
12558
12559 2004-04-13  Jackson Harper  <jackson@ximian.com>
12560
12561         * culture-info-tables.h: Fix number of decimal digits for all
12562         english locales.
12563
12564 2004-04-13  Jackson Harper  <jackson@ximian.com>
12565
12566         * icall.c: Clairfy out of sync error message. It is not always
12567         your corlib that is out of sync.
12568
12569 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
12570
12571         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
12572         properties when only the set accessor is overriden. Fixes #55874.
12573
12574 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
12575
12576         * assembly.c (mono_assembly_load_references): Make this thread safe.
12577         Fixes #56327.
12578
12579 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
12580
12581         * monosn.c: Add missing initialization calls.
12582
12583 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
12584
12585         * locales.c:
12586         ves_icall_System_Globalization_CultureInfo_construct_number_format
12587         Fix g_assert so it compiles on fussier compilers re int/ptr
12588         mismatch
12589
12590 2004-04-08  Dick Porter  <dick@ximian.com>
12591
12592         * socket-io.h:
12593         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
12594         53992.  Also rearrange the code so that the internal calls return
12595         an error value and exceptions are thrown from managed code.
12596
12597         * icall.c: Add type info to the socket icalls.
12598
12599 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12600
12601         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
12602         owes me a beer.
12603
12604 2004-04-07  Martin Baulig  <martin@ximian.com>
12605
12606         * class.c (mono_class_from_generic_parameter): Don't default
12607         `klass->parent' to `mono_defaults.object_type'.
12608
12609 2004-04-07  Martin Baulig  <martin@ximian.com>
12610
12611         * reflection.c (mono_reflection_initialize_generic_parameter): Set
12612         `param->pklass->reflection_info'.       
12613
12614 2004-04-07  Jackson Harper  <jackson@ximian.com>
12615
12616         * culture-info-tables.h: Fix date separator symbol.
12617         
12618 2004-04-07  Martin Baulig  <martin@ximian.com>
12619
12620         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
12621         from System.Type to System.MonoType.
12622
12623 2004-04-07  Martin Baulig  <martin@ximian.com>
12624
12625         * reflection.h
12626         (MonoReflectionGenericParam): Added `has_reference_type' and
12627         `has_value_type' fields.
12628
12629         * reflection.c (mono_image_get_generic_param_info): Encode the
12630         correct flags if we have the `class' or `struct' constraint.
12631
12632 2004-04-07  Martin Baulig  <martin@ximian.com>
12633
12634         * reflection.h
12635         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
12636
12637 2004-04-07  Jackson Harper  <jackson@ximian.com>
12638
12639         * appdomain.c: Revert extra patches, just wanted to bump the
12640         version number.
12641         
12642 2004-04-07  Jackson Harper  <jackson@ximian.com>
12643
12644         * Makefile.am: Add culture-info private headers.
12645         * icall.c: Add new icalls for contructing locales.
12646         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
12647         * locales.h: Declare new culture info construction methods.
12648         * object.h: Add new fields used to avoid the CultureMap to
12649         MonoCultureInfo.
12650         * culture-info.h: Definition of structs used in the culture info
12651         tables.
12652         * culture-info-tables.h: Autogenerated tables that contain culture
12653         info data. This file was generated with the locale-builder tool.
12654         * appdomain.c: Incement corlib version number.
12655         
12656 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
12657
12658         * appdomain.c: (mono_runtime_init) move mono_thread_init
12659         to before mono_object_new calls so critical sections
12660         are initialized before use.
12661
12662 2004-04-07  Martin Baulig  <martin@ximian.com>
12663
12664         * icall.c
12665         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
12666         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
12667         (ves_icall_MonoGenericParam_initialize): Removed.
12668         (monogenericparam_icalls): Removed.
12669         (generictypeparambuilder_icalls): Added new table for
12670         System.Reflection.Emit.GenericTypeParameterBuilder.
12671
12672         * reflection.c
12673         (mono_reflection_define_generic_parameter): Removed.
12674         (mono_reflection_initialize_generic_parameter): This is now called
12675         from GenericTypeParameterBuilder's .ctor.
12676
12677 2004-04-06  Martin Baulig  <martin@ximian.com>
12678
12679         * class.c (mono_class_init): Don't inflate nested classes in a
12680         generic instance.
12681         (mono_type_get_name_recurse): Include the generic arguments for
12682         generic instances and generic type declarations.
12683         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
12684         (_mono_class_get_instantiation_name): Removed.
12685         (mono_class_create_generic): Always use `gklass->name' as our name.
12686
12687         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
12688
12689         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
12690         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
12691         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
12692         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
12693         closed generic methods here.
12694
12695         * reflection.c
12696         (mono_reflection_generic_inst_get_nested_types): Removed.
12697         (inflate_mono_method): Copy the generic parameters from the
12698         MonoMethodHeader into out MonoGenericMethod.
12699
12700 2004-04-06  Martin Baulig  <martin@ximian.com>
12701
12702         * row-indexes.h
12703         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
12704
12705         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
12706
12707         * reflection.c (build_compressed_metadata): If we have any entries
12708         in the GenericParam, MethodSpec or GenericParamConstraint tables,
12709         set the header version to 1.1.
12710
12711 2004-04-06  Martin Baulig  <martin@ximian.com>
12712
12713         * class.c (mono_class_init): If we're a generic instance,
12714         initialize our nested classes, too.
12715         (_mono_class_get_instantiation_name): Deal with the new `!%d'
12716         suffix. 
12717
12718 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12719
12720         * process.c: quote the argument passed to the shell on windows.
12721
12722 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
12723
12724         * threads.c (mono_alloc_special_static_data): Allow this to be
12725         called during startup.
12726
12727 2004-04-02  Martin Baulig  <martin@ximian.com>
12728
12729         * icall.c
12730         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
12731
12732 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
12733
12734         * icall.c: Fix build.
12735
12736 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
12737
12738         * Makefile.am: Added security.c|h.
12739         * icall.c: Added icall for get_UserName;
12740         * security.c: New file for security related icalls. Added function
12741         get_UserName for System.Environment (fix #56144).
12742         * security.h: New. Header file for security.c
12743
12744 2004-04-02  Dick Porter  <dick@ximian.com>
12745
12746         * icall.c: Deleted the icalls that were obsoleted some time ago
12747         by the ICU string code, and which were mixed into the icall
12748         rearranging.  Fixes bug 55969.
12749
12750         * string-icalls.h: 
12751         * string-icalls.c: Deleted the code that those icalls reference.
12752
12753 2004-04-01  Martin Baulig  <martin@ximian.com>
12754
12755         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
12756
12757         * class.c (mono_class_from_generic_parameter): Don't set 
12758         TYPE_ATTRIBUTE_INTERFACE.
12759         (my_mono_class_from_generic_parameter): Likewise.
12760
12761 2004-04-01  Martin Baulig  <martin@ximian.com>
12762
12763         * loader.c (find_method): Added an optional `MonoClass *ic'
12764         argument to search in a specific interface.
12765         (mono_get_method_constrained): New public function.
12766
12767 2004-04-01  Martin Baulig  <martin@ximian.com>
12768
12769         * reflection.c (mono_image_get_generic_field_token): Use the
12770         `handleref' cache here.
12771
12772 2004-04-01  Martin Baulig  <martin@ximian.com>
12773
12774         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
12775
12776         * reflection.c (create_generic_typespec): Use the `typespec' hash
12777         here, not the `typeref' one.    
12778
12779 2004-04-01  Martin Baulig  <martin@ximian.com>
12780
12781         * class.c (mono_class_inflate_generic_type): Moved the
12782         functionality into a new static inflate_generic_type() which
12783         returns NULL if it didn't do anything.  Only increment the
12784         `mono_stats.inflated_type_count' if we actually inflated
12785         something.
12786         (mono_class_get_full): Check the classes type to see whether we
12787         need to inflate it; also inflate MONO_TYPE_(M)VAR.
12788
12789 2004-04-01  Jackson Harper  <jackson@ximian.com>
12790
12791         * reflection.c: Set culture for assembly references.
12792         
12793 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
12794
12795         * reflection.[ch], icall.[ch], Fix support for pinning variables.
12796
12797 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12798
12799         * assembly.c:
12800         (do_mono_assembly_open): the critical section also covers
12801         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
12802
12803 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12804
12805         * threads.c:
12806         (mono_manage_threads): abort the background threads when finishing.
12807         Fixes bug #47232.
12808
12809 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12810
12811         * gc.c: only close the done_event handle if there was no timeout.
12812         C-ified comments.
12813
12814 2004-03-30  Martin Baulig  <martin@ximian.com>
12815
12816         * icall.c (icall_entries): It's called "System.Activator", not
12817         "System.Activation".    
12818
12819 2004-03-30  Martin Baulig  <martin@ximian.com>
12820
12821         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
12822         (mono_class_create_from_typespec): Likewise.
12823
12824 2004-03-30  Martin Baulig  <martin@ximian.com>
12825
12826         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
12827         `has_ctor_constraint' and `initialized'.
12828
12829 2004-03-30  Martin Baulig  <martin@ximian.com>
12830
12831         * reflection.c (encode_new_constraint): New static function to add
12832         the constructor constraint attribute to a type parameter.
12833         (encode_constraints): Call encode_new_constraint() if necessary.
12834
12835         * reflection.h
12836         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
12837
12838         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
12839         
12840 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
12841
12842         * reflection.c, icall.c: add support for pinning variables. 
12843
12844 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
12845
12846         * marshal.c (mono_marshal_get_managed_wrapper):
12847         init bool local with zero rather than null.
12848
12849 2004-03-29  Martin Baulig  <martin@ximian.com>
12850
12851         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
12852         the "official" behavior here.
12853         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
12854
12855 2004-03-29  Martin Baulig  <martin@ximian.com>
12856
12857         * icall.c: Reflect latest API changes.
12858
12859 2004-03-29  Martin Baulig  <martin@ximian.com>
12860
12861         * loader.c (mono_get_method_from_token): Also call
12862         mono_metadata_load_generic_params () for abstract and interface
12863         methods; replace the type arguments in the method signature with
12864         the ones which are loaded from the metadata.
12865
12866 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
12867
12868         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
12869         of the lock is not the current thread. MS.NET don't do it, in spite of
12870         what the documentation says. See bug #56157.
12871
12872 2004-03-28  Martin Baulig  <martin@ximian.com>
12873
12874         * class.c (mono_class_init): Don't call init_properties() and
12875         init_events() for generic instances; set `prop->parent' when
12876         inflating properties.
12877
12878         * reflection.c (mono_generic_inst_get_object): Call
12879         `mono_class_init (ginst->klass)'.
12880         (mono_type_get_object): Only create a MonoGenericInst if your
12881         generic type is a TypeBuilder.
12882         (do_mono_reflection_bind_generic_parameters): Only set
12883         `ginst->is_dynamic' if our generic type is a TypeBuilder.
12884
12885 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
12886
12887         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
12888         Fixes #56091.
12889
12890 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12891
12892         * icall.c: added Kill_internal icall.
12893         * process.[ch]: added Kill_internal icall.
12894
12895 2004-03-25  Martin Baulig  <martin@ximian.com>
12896
12897         * class.h (MonoStats): Added `generic_instance_count',
12898         `inflated_method_count', `inflated_type_count' and
12899         `generics_metadata_size'.       
12900
12901 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12902
12903         * reflection.c: no warnings now.
12904
12905 2004-03-25  Martin Baulig  <martin@ximian.com>
12906
12907         * class.c (mono_class_get_full): New public function; does a
12908         mono_class_get(), but also takes a `MonoGenericContext *'.
12909
12910         * loader.c (mono_field_from_memberref): Renamed to
12911         `field_from_memberref', made static and added `MonoGenericContext *'
12912         argument.
12913         (mono_field_from_token): Added `MonoGenericInst *' argument.
12914         (method_from_memberef): Likewise.
12915         (mono_get_method_from_token): Likewise.
12916         (mono_get_method_full): New public function; does a
12917         mono_get_method(), but also takes a `MonoGenericContext *'.
12918
12919         * verify.c (mono_method_verify): Get the method's generic context
12920         and pass it to mono_field_from_token(), mono_get_method_full() and
12921         mono_class_get_full().
12922
12923 2004-03-25  Martin Baulig  <martin@ximian.com>
12924
12925         * class.c (mono_class_inflate_generic_type): Take a
12926         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
12927         `MonoGenericMethod *'.
12928
12929 2004-03-25  Martin Baulig  <martin@ximian.com>
12930
12931         * loader.h (MonoMethodInflated): Store the MonoGenericContext
12932         instead of the MonoGenericMethod here.
12933
12934 2004-03-25  Martin Baulig  <martin@ximian.com>
12935
12936         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
12937         each time we create a new MonoGenericInst, we also create a new
12938         context which points back to us.
12939
12940         * class.c (inflate_method): Use `ginst->context' instead of
12941         creating a new context.
12942
12943         * loader.c (method_from_memberref): Use
12944         `klass->generic_inst->context' instead of creating a new context.
12945
12946 2004-03-25  Martin Baulig  <martin@ximian.com>
12947
12948         * class.h (MonoGenericContext): New struct.
12949         (MonoGenericMethod): Removed `generic_inst'.
12950
12951         * class.c (mono_class_inflate_generic_method): Take a
12952         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
12953
12954 2004-03-25  Martin Baulig  <martin@ximian.com>
12955
12956         * loader.h (MonoMethodInflated): New typedef.
12957
12958         * metadata.h (MonoMethodSignature): Removed `gen_method', make
12959         `generic_param_count' consume just 30 bits, added `is_inflated'
12960         and `has_type_parameters' flags (one bit each).
12961
12962         * class.c (mono_class_inflate_generic_method): Create a
12963         MonoMethodInflated instead of a MonoMethodNormal and set
12964         `is_inflated' in the method signature.
12965
12966         * class.h (MonoGenericMethod): Removed `generic_method'.
12967
12968 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
12969
12970         * image.c: Make sure the name of a MonoImage is always an absolute path.
12971           This fixes bug #54415.
12972
12973 2004-03-24  Martin Baulig  <martin@ximian.com>
12974
12975         * class.c (mono_class_setup_vtable): If we're a generic instance,
12976         use our generic type's vtable size.
12977
12978 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
12979
12980         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
12981         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
12982         problems.
12983
12984 2004-03-23  Martin Baulig  <martin@ximian.com>
12985
12986         * class.h (MonoDynamicGenericInst): Added `int count_events' and
12987         `MonoEvent *events'.
12988
12989         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
12990         (typebuilder_icalls): Added "get_event_info"; calls
12991         mono_reflection_event_builder_get_event_info(). 
12992
12993         * reflection.c (mono_reflection_generic_inst_initialize): Added
12994         `MonoArray *events'.
12995         (mono_reflection_event_builder_get_event_info): New function.
12996
12997 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
12998
12999         * object.h: add mono_type_initialization_init
13000
13001         * object.c (mono_runtime_class_init): 
13002         implement class constructor synchronization rules
13003         to cope with threading issues.  
13004         add mono_type_initialization_init
13005
13006         * appdomain.c (mono_runtime_init): call 
13007         mono_type_initialization_init
13008
13009         * class.h: removing initializing field from MonoVTable
13010
13011 2004-03-23  Martin Baulig  <martin@ximian.com>
13012
13013         * class.c (my_mono_class_from_generic_parameter): Use
13014         `param->name' if it's not NULL. 
13015
13016 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13017
13018         * class.c: do not insert non-virtual methods in the vtable.
13019         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13020         that means the method is non-virtual. This never would have
13021         happened before.
13022
13023 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13024
13025         * profiler.c: Added lock for accessing coverage_hash.
13026
13027 2004-03-22  Martin Baulig  <martin@ximian.com>
13028
13029         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13030         `method->method->signature->generic_param_count != 0' to make it
13031         work for interface methods.
13032
13033 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13034
13035         * process.c: quote the string passed to the shell using g_shell_quote.
13036
13037 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13038
13039         * threads.c:
13040         (mono_threads_manage): don't remove the finalizer thread and self
13041         from the threads hash table so that mono_thread_manage can be called
13042         more than once.
13043
13044 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13045
13046         * process.c: quote the arguments when UseShellExecute is true. Fixes
13047         bug #55790.
13048
13049 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13050
13051         * threads.c: set mono_thread_detach as a cleanup routine for every
13052         thread. This way it's always executed upon thread termination, either
13053         aborted or finished normally. No more xsp hangs!
13054
13055 2004-03-17  Martin Baulig  <martin@ximian.com>
13056
13057         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13058         `int count_nested' and a `MonoType **nested'.
13059
13060         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13061         most of the functionality into a new static
13062         do_mono_reflection_bind_generic_parameters() and don't take a
13063         `MonoType *nested_in' argument any more.  Don't compute nested
13064         types here.
13065         (mono_reflection_generic_inst_get_nested_types): New public method
13066         to get nested types.
13067
13068         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13069         we're a nested class.
13070
13071         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13072         mono_reflection_generic_inst_get_nested_types() to compute the
13073         nested types.
13074
13075 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13076
13077         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13078         descriptive error message under windows.
13079         
13080 2004-03-17  Martin Baulig  <martin@ximian.com>
13081
13082         * class.c (dup_type): Added `const MonoType *original' argument;
13083         copy the attrs from the original type.
13084
13085 2004-03-17  Martin Baulig  <martin@ximian.com>
13086
13087         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13088         `m->generic_inst_cache' here.
13089
13090 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13091
13092         * exception.h exception.c: Add stack_overflow_exception.
13093
13094 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13095
13096         * threadpool.c:
13097         (overlapped_callback): call SetEvent *after* invoking the callback.
13098         No need to call CloseHandle.
13099
13100 2004-03-16  Martin Baulig  <martin@ximian.com>
13101
13102         * reflection.c (mono_image_get_fieldref_token): Take a
13103         `MonoReflectionField *' instead of a `MonoClassField *' and a
13104         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13105
13106 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13107
13108         * appdomain.c: don't add the culture to the filename we're looking for
13109         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13110
13111 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13112
13113         * locales.c: don't ignore symbols when doing case insensitive compares.
13114         Thanks Dick! Fixes bug #54046.
13115
13116         * threads.c: surround 'threads' usage with enter/leave in
13117         mono_thread_manage.
13118
13119 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13120
13121         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13122         implicitly marshalled as [Out]. Fixes #55450.
13123
13124         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13125         an exception.
13126
13127 2004-03-16  Martin Baulig  <martin@ximian.com>
13128
13129         * class.c (mono_class_from_generic_parameter): Use the actual
13130         parameter name. 
13131
13132 2004-03-16  Martin Baulig  <martin@ximian.com>
13133
13134         * reflection.c (type_get_signature_size): New static function.
13135         Compues the size of the type in a method signature.
13136         (method_get_signature_size): New static function; calls
13137         type_get_signature_size() to compute the actual size of the
13138         method's signature.
13139         (method_encode_signature): Use method_get_signature_size() to get
13140         the signature's size rather than using `nparams * 10'.
13141
13142 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13143
13144         * file-io.h: define here WapiOverlapped on windows. I don't want the
13145         regular OVERLAPPED one.
13146
13147         * file-io.c:
13148         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13149         Disabling AIO on windows.
13150
13151 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13152
13153         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13154         bug #55385.
13155
13156 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13157
13158         * appdomain.c: upgraded corlib version.
13159
13160         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13161         and BeginWrite. Allow opening files for asynchrnous operations.
13162
13163         * file-io.h: new struct that maps FileStreamAsyncResult.
13164         * icall.c: added new icalls.
13165         * process.[ch]: support setting child process environment variables
13166         and use the SHELL or COMSPEC when UseShellExecute is true.
13167
13168         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13169         callback for async. IO is here and also BindHandle.
13170
13171         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13172         from here.
13173
13174 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13175
13176         * reflection.c (create_custom_attr): Allow len == 0.
13177
13178         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13179         computation on big-endian machines.
13180
13181 2004-03-13  Martin Baulig  <martin@ximian.com>
13182
13183         * class.h (MonoGenericInst): Added `int count_ifaces'.
13184
13185         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13186         `ginst->count_ifaces' instead `klass->interface_count' since we
13187         may get called before the vtable is created.
13188
13189         * loader.c (mono_method_get_param_names): If we're a generic
13190         instance, return and don't initialize the class.
13191
13192         * reflection.c (mono_reflection_setup_generic_class): Don't call
13193         ensure_runtime_vtable().
13194         (mono_reflection_bind_generic_parameters): Set
13195         `ginst->count_ifaces'.
13196
13197 2004-03-11  Jackson Harper <jackson@ximian.com>
13198
13199         * icall.c:
13200         * unicode.c:
13201         * unicode.h: Remove unused System.Char icalls.
13202         
13203 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13204
13205         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13206         code when we P/Invoke the first library in Windows.Forms, instead
13207         of when we first open the assembly.
13208
13209         * assembly.c: Drop the lookup from here.
13210
13211 2004-03-10  Martin Baulig  <martin@ximian.com>
13212
13213         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13214         class for properties, fields and events.  Finally fixes #54945.
13215
13216 2004-03-10  Martin Baulig  <martin@ximian.com>
13217
13218         * metadata.c (mono_metadata_class_equal): New static function;
13219         checks whether two generic instances or two generic parameters are
13220         equal.
13221         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13222         compare classes.        
13223
13224 2004-03-10  Martin Baulig  <martin@ximian.com>
13225
13226         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13227
13228         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13229         argument and write it into the `reflection_info' field.
13230
13231         * icall.c
13232         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13233         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13234
13235 2004-03-09  Jackson Harper  <jackson@ximian.com>
13236
13237         * char-conversions.h: use 8 bits for numeric data its all we need
13238         * icall.c: numeric data is only 8 bits now.
13239
13240 2004-03-09  Martin Baulig  <martin@ximian.com>
13241
13242         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
13243
13244         * class.c (init_properties, init_events): Initialize the new
13245         `parent' field.
13246
13247         * reflection.c (typebuilder_setup_properties): Likewise.
13248         (typebuilder_setup_events): Likewise.
13249
13250         * reflection.h (MonoEventInfo): Replaced `parent with
13251         `declaring_type' and `reflected_type'.
13252
13253         * icall.c (ves_icall_get_property_info): Distinguish between
13254         declaring and reflected type.
13255         (ves_icall_get_event_info): Likewise.
13256
13257 2004-03-09  Martin Baulig  <martin@ximian.com>
13258
13259         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
13260         (ves_icall_Type_GetField): Correctly set field->klass.
13261
13262 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
13263
13264         * loader.h: Fix warning.
13265
13266 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
13267
13268         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
13269         library routine if present.  Notice that it will still continue
13270         executing even if its missing, for those working on the Gtk#
13271         edition of Windows.Forms.
13272
13273         * assembly.c (do_mono_assembly_open): If loading the
13274         System.Windows.Forms call mono_loader_wini_init.
13275
13276 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
13277
13278         * class.h: Added MonoRemoteClass struct.
13279         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
13280         function for MonoStrings.
13281         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
13282         Added internal call for getting the proxy type.
13283         * marshal.c: Get the type of transparent proxies from its remote_class.
13284         Added methods that generate the IL for type checks and casts:
13285         mono_marshal_get_isinst, mono_marshal_get_castclass, 
13286         mono_marshal_get_proxy_cancast.
13287         * marshal.h: Declaration of the previous new methods.
13288         * object.c: Added new moethods for creating and updating MonoRemoteClass
13289         instances: mono_remote_class, mono_upgrade_remote_class, 
13290         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
13291         * verify.c: FIx transparent_proxy_fields layout.
13292         * appdomain.c: Bump corlib version.
13293
13294 2004-03-04  Jackson Harper  <jackson@ximian.com>
13295
13296         * icall.c: Add icall to access char conversion tables.
13297         * char-conversions.h: Character conversion tables.
13298         * Makefile.am: Add char-conversions.h private header file.
13299         
13300 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
13301
13302         * appdomain.c (unload_thread_main): Increase unloading timeout to
13303         10 sec as a temporary workaround for Nant problems.
13304
13305 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
13306
13307         * gc.c: Add checks for GC_enable and GC_disable.
13308
13309         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
13310         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
13311         (bug #54988).
13312         
13313 2004-02-27  Martin Baulig  <martin@ximian.com>
13314
13315         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13316         `MonoReflectionType *' instead of a `MonoType *'.
13317
13318 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
13319
13320         * gc.c (run_finalize): Avoid finalizing the object representing the
13321         finalizer thread.
13322         (finalizer_thread): Fix warning.
13323
13324 2004-02-25  Martin Baulig  <martin@ximian.com>
13325
13326         * class.c (_mono_class_get_instantiation_name): Added `int offset'
13327         argument for nested types.
13328         (mono_class_create_generic): Added support for nested generictypes.
13329
13330         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
13331         `GList *nested'.
13332
13333         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
13334
13335         * reflection.c (method_encode_signature): Increase the minimum
13336         value of `size' from 10 to 11.
13337         (mono_reflection_bind_generic_parameters): Take `int type_argc'
13338         and `MonoType **types' arguments instead of the `MonoArray
13339         *types'; added `MonoType *nested_in'.  Recursively instantiate
13340         nested classes. 
13341
13342 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
13343
13344         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
13345         stack_overflow_ex members which are used by exception handling.
13346
13347         * appdomain.c (mono_runtime_init): Initialize the new members.
13348
13349         * gc.c (mono_gc_enable): New helper function.
13350         * gc.c (mono_gc_disable): New helper function.
13351
13352 2004-02-23  Martin Baulig  <martin@ximian.com>
13353
13354         * icall.c: I must have been really stupid - make it actually work
13355         this time ;-)
13356
13357 2004-02-23  Martin Baulig  <martin@ximian.com>
13358
13359         * loader.c (method_from_memberref): Only inflate the method if
13360         it's in another klass.
13361
13362 2004-02-23  Martin Baulig  <martin@ximian.com>
13363
13364         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
13365         (mono_class_init): If we're a generic instance and an interface,
13366         compute `class->interface_id'; also create `class->interfaces'
13367         here and inflate them.
13368
13369         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
13370         `ginst->is_open'.
13371         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
13372
13373         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
13374
13375 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
13376
13377         * reflection.c (method_encode_code): Improved the error message
13378         generated by the exception.
13379
13380 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13381
13382         * icall.c: Martin did not do what he said in the ChangeLog for
13383         2004-02-18, but put back the changes for properties and events.
13384         Commenting those changes out again and adding comment to bug #54518.
13385         
13386         * process.c: removed warning.
13387
13388 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
13389
13390         * marshal.c (emit_struct_conv): Print an error message instead of
13391         asserting when a type does not have the StructLayout attribute.
13392
13393 2004-02-20  Martin Baulig  <martin@ximian.com>
13394
13395         * reflection.c (mono_type_get_object): Also use the cache for
13396         generic instances.
13397         (mono_reflection_bind_generic_parameters): Always compute
13398         `ginst->ifaces'.        
13399
13400 2004-02-20  Martin Baulig  <martin@ximian.com>
13401
13402         * class.h (MonoGenericMethod): Removed `klass'.
13403
13404         * class.c (mono_class_inflate_generic_method): Added `MonoClass
13405         *klass' argument.
13406
13407 2004-02-20  Martin Baulig  <martin@ximian.com>
13408
13409         * reflection.c (method_encode_methodspec): Actually use the
13410         uninflated signature for the memberref.
13411
13412 2004-02-20  Martin Baulig  <martin@ximian.com>
13413
13414         * class.h (MonoGenericMethod): Removed `declaring'.
13415
13416         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
13417         is NULL, compute it here.
13418
13419 2004-02-20  Martin Baulig  <martin@ximian.com>
13420
13421         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
13422
13423         * metadata.c (mono_metadata_generic_inst_hash): New method.
13424         (mono_metadata_generic_inst_equal): New method.
13425
13426         * reflection.c (mono_reflection_bind_generic_parameters): Use the
13427         `klass->image->generic_inst_cache' cache to avoid creating
13428         duplicate MonoGenericInst's.
13429
13430         * class.c (mono_class_inflate_generic_type): Use the cache.
13431
13432 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
13433
13434         * object.c: fixed gc descriptor calculation for embedded valuetypes.
13435
13436 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13437
13438         * icall.c: added Socket.WSAIoctl icall.
13439
13440         * socket-io.[ch]: implemented
13441         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
13442
13443 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
13444
13445         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
13446
13447 2004-02-18  Urs C Muff  <umuff@quark.com>
13448
13449         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
13450         this work on PPC and other big-endian architectures.
13451
13452         * debug-mono-symfile.h: Prepended the names of all the `guint32'
13453         fields with an underscore to make sure they're only accessed by
13454         the read32() macro.
13455
13456 2004-02-18  Martin Baulig  <martin@ximian.com>
13457
13458         * icall.c: Put the klass->refclass changes back for methods and
13459         fields, but not for properties and events.  We're currently not
13460         distinguishing between DeclaringType and ReflectedType for
13461         properties and events, that's what caused the regressions.
13462
13463 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13464
13465         * object.c:
13466         (mono_async_result_new): the handle can be NULL.
13467
13468         * threadpool.c: Use an event instead of a semaphore, don't initialize
13469         it until needed. This saves quite a few semaphores from being created
13470         when using the threadpool.
13471
13472 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
13473
13474         * object.c (mono_string_is_interned_lookup): Fix interning of long
13475         strings. Fixes #54473.
13476
13477         * domain.c (ldstr_equal): Optimize if the two strings are equal.
13478
13479         * icall.c: Revert the klass->refclass changes since they introduce
13480         regressions (bug #54518).
13481
13482 2004-02-18  Martin Baulig  <martin@ximian.com>
13483
13484         * class.c (mono_class_init): If we're a generic instance and don't
13485         come from a TypeBuilder, inflate our members here.
13486         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
13487         (mono_class_create_generic): New public method.
13488         (mono_class_initialize_generic): Removed.
13489         (get_instantiation_name): Renamed to
13490         _mono_class_get_instantiation_name() and made it public.
13491
13492 2004-02-18  Martin Baulig  <martin@ximian.com>
13493
13494         * class.c (mono_class_inflate_generic_type): Clear the new
13495         instance's `nginst->klass' when inflating a generic instance.
13496         (mono_class_is_subclass_of): Added (basic) support for generic
13497         instances.
13498
13499 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
13500
13501         * appdomain.h, domain.c: use a MonoCodeManager instead of a
13502         MonoMempool to hold compiled native code.
13503
13504 2004-02-17  Martin Baulig  <martin@ximian.com>
13505
13506         * class.h (MonoDynamicGenericInst): Added `count_properties' and
13507         `properties'.
13508
13509         * reflection.c (mono_reflection_generic_inst_initialize): Added
13510         `MonoArray *properties' argument.
13511
13512         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
13513
13514 2004-02-17  Martin Baulig  <martin@ximian.com>
13515
13516         * icall.c (ves_icall_Type_GetFields): Renamed to
13517         ves_icall_Type_GetFields_internal() and added a
13518         `MonoReflectionType *rtype' argument; pass it to
13519         mono_field_get_object() to set the field's "reflected" type.
13520         (ves_icall_Type_GetConstructors): Likewise.
13521         (ves_icall_Type_GetEvents): Likewise.
13522         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
13523         argument; pass it to mono_method_get_object() to set the method's
13524         "reflected" type.       
13525
13526 2004-02-17  Martin Baulig  <martin@ximian.com>
13527
13528         * class.h (MonoDynamicGenericInst): New type.
13529         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
13530
13531         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
13532         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
13533         (ves_icall_MonoGenericInst_GetFields): New interncall.
13534
13535         * class.c (mono_class_from_generic): Don't call
13536         mono_class_initialize_generic() if this is a dynamic instance;
13537         ie. it's being created from a TypeBuilder.
13538         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
13539         `class->byval_arg.type'.
13540
13541         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
13542         to `inflate_method' and made static.
13543         (mono_reflection_inflate_field): Removed.
13544         (mono_reflection_generic_inst_initialize): New public method.
13545
13546         * reflection.h (MonoReflectionGenericInst): Removed `methods',
13547         `ctors' and `fields'; added `initialized'.
13548
13549 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
13550
13551         * debug-helpers.c (mono_method_full_name): Fix output for empty
13552         namespaces.
13553
13554 2004-02-12  Martin Baulig  <martin@ximian.com>
13555
13556         * class.h (MonoClassField): Added `MonoType *generic_type'.
13557
13558         * reflection.c (mono_image_get_fieldref_token): Added support for
13559         instantiated generic types.
13560         (field_encode_inflated_field): Removed.
13561         (mono_image_get_inflated_field_token): Removed.
13562         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
13563
13564         * reflection.h (MonoReflectionInflatedField): Removed.
13565
13566 2004-02-12  Martin Baulig  <martin@ximian.com>
13567
13568         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
13569         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
13570
13571         * reflection.c (mono_image_get_methodspec_token): Take a
13572         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
13573         (mono_image_create_token): Check whether we have a
13574         `method->signature->gen_method' and call
13575         mono_image_get_methodspec_token() if appropriate.
13576         (inflated_method_get_object): Removed.
13577         (mono_reflection_bind_generic_method_parameters): Return a
13578         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
13579         (mono_reflection_inflate_method_or_ctor): Likewise.
13580
13581         * reflection.h (MonoReflectionInflatedMethod): Removed.
13582
13583 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
13584
13585         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
13586         for custom valuetype marshalling.
13587
13588         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
13589
13590 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13591
13592         * icall.c: fixed WSAGetLastError_internal name.
13593
13594 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
13595
13596         * threads.c (mono_thread_attach): Allow this to be called multiple
13597         times for a thread.
13598         
13599         * threads.c (build_wait_tids): Do not wait for ourselves.
13600
13601         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
13602         appdomain list is empty.
13603
13604         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
13605         memory returned by mono_string_builder_to_utf16, since it points into
13606         managed memory. Thanks to Bernie Solomon for noticing this.
13607
13608         * icall.c: Add AppDomainSetup icalls.
13609
13610         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
13611
13612         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
13613         types.
13614
13615         * reflection.c (reflection_methodbuilder_to_mono_method): Save
13616         custom attributes to the method_aux struct. Also fix array indexes etc.
13617
13618         * loader.c (mono_method_get_param_names): Make dynamic case work again.
13619         
13620 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
13621
13622         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
13623         (both static and runtime) and reduce startup time.
13624
13625 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
13626
13627         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
13628         AsAny marshalling conversion instead of crashing.
13629
13630         * marshal.c: Fix warnings.
13631
13632 2004-02-09  Martin Baulig  <martin@ximian.com>
13633
13634         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
13635
13636         * reflection.h (MonoReflectionInflatedMethod): Removed the
13637         `declaring' field, it's now in the unmanaged MonoGenericMethod.
13638
13639         * reflection.c (method_encode_methodspec): Removed the `method'
13640         argument; we get it from `gmethod->declaring'.
13641         (inflated_method_get_object): Removed the `declaring' argument.
13642
13643 2004-02-09  Martin Baulig  <martin@ximian.com>
13644
13645         * class.h (MonoGenericMethod): New type.
13646         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
13647         `generic_method'.
13648
13649         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
13650         a `MonoGenericMethod *gen_method' one.
13651
13652         * class.c (mono_class_inflate_generic_type): Take an additional
13653         `MonoGenericMethod * argument.  This is only non-NULL if we're
13654         inflating types for a generic method.   
13655         (mono_class_inflate_generic_signature): Renamed to
13656         inflate_generic_signature() and made static; take a
13657         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
13658         (inflate_generic_header): Take a `MonoGenericMethod *' argument
13659         instead of a `MonoGenericInst *' one.
13660         (mono_class_inflate_generic_method): Likewise.
13661
13662         * reflection.c (encode_generic_method_sig): Take a
13663         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
13664         (method_encode_methodspec): Likewise.
13665         (inflated_method_get_object): Likewise. 
13666
13667         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
13668         field with a `MonoGenericMethod *gmethod' one.  
13669
13670 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
13671
13672         * class.h (mono_class_has_parent): add parens to expansion
13673         so you can ! this.
13674
13675 2004-02-08  Martin Baulig  <martin@ximian.com>
13676
13677         * image.h (MonoImage): Removed `generics_cache'.
13678
13679         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
13680         instead of a `MonoType *' argument; removed the `inflate_methods'
13681         argument.  Don't inflate methods here.
13682
13683         * loader.c (find_method): If it's a generic instance, call
13684         mono_class_init() on the `sclass->generic_inst->generic_type'.
13685
13686         * metadata.c (mono_type_size): Make this work on uninitialized
13687         generic instances; call it on the `ginst->generic_type's class.
13688
13689         * reflection.c (mono_reflection_bind_generic_parameters): Call
13690         mono_class_from_generic() to create the `ginst->klass'.
13691
13692 2004-02-08  Martin Baulig  <martin@ximian.com>
13693
13694         * class.h (MonoClass): Changed type of `generic_inst' from
13695         `MonoType *' to `MonoGenericInst *'.
13696
13697 2004-02-08  Martin Baulig  <martin@ximian.com>
13698
13699         * icall.c (ves_icall_Type_BindGenericParameters): Just call
13700         mono_type_get_object(), this is now creating a `MonoGenericInst'
13701         for MONO_TYPE_GENERICINST.
13702         (ves_icall_MonoGenericInst_GetParentType): Likewise.
13703         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
13704
13705         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
13706         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
13707         (inflated_method_get_object): Added `MonoClass *refclass' argument.
13708         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
13709         and reflected type.
13710
13711         * reflection.h (MonoReflectionInflatedMethod): Removed
13712         `declaring_type' and `reflected_type'.
13713
13714 2004-02-08  Martin Baulig  <martin@ximian.com>
13715
13716         * class.h (MonoGenericInst): Added `MonoType *parent' and
13717         `MonoType **ifaces'.
13718
13719         * reflection.h (MonoReflectionGenericInst): Removed `klass',
13720         `parent' and `interfaces'.
13721
13722         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13723         `MonoType *' argument and return a `MonoType *'.
13724
13725         * icall.c
13726         (ves_icall_MonoGenericInst_GetParentType): New interncall.
13727         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
13728
13729 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
13730
13731         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
13732         valuetype marshalling.
13733
13734 2004-02-06  Martin Baulig  <martin@ximian.com>
13735
13736         * class.c
13737         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
13738         (my_mono_class_from_generic_parameter): Likewise.
13739
13740 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
13741
13742         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
13743         contents of the symbol files lazily.
13744
13745         * object.h (MonoThread): Add 'name' and 'name_len' fields.
13746
13747         * threads.h threads.c icall.c: New icalls for getting and setting the
13748         threads name.
13749
13750 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
13751
13752         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
13753         Raise an exception when the domain is not found.
13754
13755 2004-02-03  Martin Baulig  <martin@ximian.com>
13756
13757         * reflection.c (mono_image_get_methodspec_token): Use the
13758         uninflated signature; fixes gen-33.
13759
13760 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
13761
13762         * gc.c threads.c: Make the finalizer thread a normal managed thread so
13763         the finalizer code can use thread functionality.
13764
13765         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
13766         the finalizer thread.
13767
13768         * threads.c: Make some functions more robust.
13769
13770         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
13771
13772         * metadata.h: Add new marshalling conventions.
13773
13774         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
13775         stringbuilder marshalling. Fixes #53700.
13776
13777         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
13778
13779         * reflection.c (mono_image_get_type_info): Save declarative security
13780         info.
13781
13782         * reflection.c (mono_image_get_field_info): Handle uninitialized 
13783         unmanaged fields as well.
13784
13785         * appdomain.c: Bump corlib version.
13786
13787 2004-02-01  Martin Baulig  <martin@ximian.com>
13788
13789         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
13790         method type arguments.  
13791
13792 2004-01-30  Duncan Mak  <duncan@ximian.com>
13793
13794         * marshal.h: Add prototype for
13795         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
13796         and
13797         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
13798         fix the build.
13799
13800 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
13801
13802         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
13803         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
13804
13805 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
13806
13807         * marshal.c (mono_marshal_get_native_wrapper): Add support for
13808         custom marshalling of valuetypes.
13809
13810         * marshal.c: Fix some warnings.
13811
13812 2004-01-29  Martin Baulig  <martin@ximian.com>
13813
13814         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
13815         for generic method parameters.
13816
13817         * reflection.c (method_encode_methodspec): Write the uninflated
13818         signature into the methodspec table.
13819         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
13820         is always the uninflated method.
13821         (reflection_methodbuilder_to_mono_method): Copy the generic
13822         parameters from the MethodBuilder into `header->gen_params'.
13823
13824 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
13825
13826         * class.c (mono_class_from_generic_parameter): Fix warning.
13827
13828 2004-01-27  Martin Baulig  <martin@ximian.com>
13829
13830         * class.c (mono_class_from_generic_parameter): Don't create
13831         `klass->methods' here.  
13832
13833 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
13834
13835         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
13836         extension since it does not work with libraries named lib<FOO>.dll.so.
13837
13838 2004-01-25  Martin Baulig  <martin@ximian.com>
13839
13840         * class.c (mono_class_inflate_generic_type): Added support for
13841         MONO_TYPE_GENERICINST.
13842
13843         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
13844         inflate methods on open constructed types.      
13845
13846 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13847
13848         * object.c: fire ProcessExit event in the root AppDomain after running
13849         Main. Fixes bug #53299.
13850
13851 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
13852
13853         * socket-io.c: include the new socket-wrappers.h header.
13854         Use the wrappers instead of the unix socket functions to make the code
13855         more clear.
13856
13857 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
13858
13859         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
13860
13861         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
13862         Fixes #22532.
13863
13864 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
13865
13866         * reflection.c (mono_image_create_pefile): Handle the case when the
13867         entry point is not a MethodBuilder.
13868
13869         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
13870         field to ReflectionMethod since it is not allways a builder.
13871
13872         * reflection.c (type_get_fully_qualified_name): New helper function to
13873         return the fully qualified name of a type.
13874
13875         * reflection.c (encode_marshal_blob): Always emit the fully qualified
13876         type name for custom marshallers.
13877
13878         * reflection.c (mono_marshal_spec_from_builder): Ditto.
13879
13880         * class.c (mono_class_setup_vtable): If a parent class already 
13881         implements an interface, use the implementing methods from that class.
13882         Fixes #53148.
13883
13884 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13885
13886         * threadpool.c: just return instead of ExitThread to allow for thread
13887         clean up earlier.
13888
13889 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
13890
13891         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
13892         when closing resource modules.
13893
13894         * reflection.c (mono_image_create_pefile): Handle the case when the
13895         entry point is not a MethodBuilder.
13896
13897         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
13898         field to ReflectionMethod since it is not allways a builder.
13899
13900 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
13901
13902         * marshal.c (mono_marshal_get_managed_wrapper): 
13903         mono_marshal_alloc takes native int so CONV_I
13904         the arg for 64bits.
13905
13906 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
13907
13908         * reflection.c (fixup_cattrs): New function to fixup the methoddef
13909         tokens in the cattr table. Fixes #53108.
13910
13911 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13912
13913         * loader.c: don't trim ".dll" before looking up in the config file.
13914         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
13915
13916 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
13917
13918         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
13919         Return the module which contains the resource as well.
13920         (ves_icall_System_Reflection_Module_Close): New icall.
13921
13922         * appdomain.c: Bump corlib version number.
13923
13924         * image.c (mono_image_addref): New public function.
13925
13926         * assembly.c: Call mono_image_addref.
13927
13928         * reflection.c (mono_module_get_object): Increase reference count of 
13929         the image.
13930
13931         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
13932         Fixes #22532.
13933
13934         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
13935         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
13936         proper exceptions on DllImport problems.
13937
13938 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
13939
13940         * class.c, metadata.c: eliminate CSIZE macro.
13941
13942 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
13943
13944         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
13945         * object.h: Added async_callback field in MonoAsyncResult.
13946         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
13947         * verify.c: Added async_callback in MonoAsyncResult layout.
13948
13949 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
13950
13951         * reflection.c (mono_reflection_get_custom_attrs): Add support
13952         for Modules.
13953
13954 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
13955
13956         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
13957         marshalling.
13958         (mono_marshal_method_from_wrapper): Add null pointer check.
13959
13960 2004-01-16  Martin Baulig  <martin@ximian.com>
13961
13962         * debug-mono-symfile.h: Set version number to 36 and reflect
13963         latest symbol writer changes.
13964
13965 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
13966
13967         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
13968         multi-dimensional arrays.
13969         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
13970         (mono_class_from_mono_type): Use bounded_array_class_get.
13971         
13972         * class.c (mono_bounded_array_class_get): New function which takes
13973         a 'bounded' bool argument to distinguish vectors from one dimensional
13974         arrays.
13975
13976         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
13977         bounded_array_class_get if the array has bounds.
13978
13979         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13980         Search modules loaded using AssemblyBuilder:AddModule as well.
13981
13982 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13983
13984         * appdomain.c: increased corlib version.
13985         * filewatcher.c: removed g_print.
13986         * icall.c:
13987         (get_property_info): only allocate what is actually requested.
13988         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
13989
13990 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13991
13992         * Makefile.am: added filewatcher.[ch]
13993         * filewatcher.[ch]: FileSystemWatcher runtime support.
13994         * icall.c: added new FSW icalls.
13995
13996 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
13997
13998         * string-icalls.c: fix stringbuilder regression as suggested by
13999         Iain McCoy <iain@mccoy.id.au>.
14000
14001 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14002
14003         * process.c (process_read_stringtable_block): Recognize '007f' as
14004         a language neutral stringtable block.
14005
14006 2004-01-12  Patrik Torstensson
14007
14008         * object.h (MonoStringBuilder) : Changed layout to support our
14009         new stringbuilder class.
14010         * marshal.c: Change marshalling to support the new layout of 
14011         string builder.
14012         * appdomain.c: increased version number because new layout of
14013         string builder.
14014
14015 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14016
14017         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14018         assembly name as an string instead of an AssemblyName, since it is
14019         easier to extract info from it.
14020
14021         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14022         the culture subdirectories too. Fixes #52231.
14023
14024 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14025
14026         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14027         It takes 2 new parameters with an optional name for the method to look
14028         for and case ignoring info.
14029
14030         * threadpool.c: removed unused variable.
14031
14032 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14033
14034         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14035         It takes 2 new parameters with an optional name for the property to look
14036         for and case ignoring info.
14037         Fixes bug #52753.
14038
14039 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14040
14041         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14042         Fix #52451.
14043
14044 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14045
14046         * appdomain.c:
14047         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14048         Fixes bug #52630.
14049
14050 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14051
14052         * reflection.c: Add support for more than one unmanaged resource.
14053
14054         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14055         in field->def_value, as done in all other cases.
14056
14057         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14058         TypeBuilders.
14059
14060         * reflection.c (mono_reflection_create_runtime_class): Remove 
14061         errorneous assignment to klass->element_class, since it is already
14062         done in mono_reflection_setup_internal_class.
14063
14064 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14065
14066         * gc.c: added missing LeaveCriticalSection.
14067         * icall.c: indented a couple of lines.
14068         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14069         if we call EndInvoke inside a callback. Fixes bug #52601.
14070
14071 2004-01-07  Martin Baulig  <martin@ximian.com>
14072
14073         * mono-debug-debugger.h
14074         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14075
14076 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14077
14078         * appdomain.c: Use messages in NotImplementedException.
14079
14080         * exception.c (mono_get_exception_not_implemented): Now this takes
14081         a message argument.
14082
14083         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14084         exception instead of g_asserting an aborting when something is not
14085         implemented.
14086
14087         Add some inline docs.
14088
14089 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14090
14091         * reflection.h: Update after changes to object layout.
14092
14093         * reflection.c: Implement saving of unmanaged aka win32 resources.
14094
14095         * appdomain.c: Bump version number.
14096
14097         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14098         Handle missing domains gracefully.
14099
14100 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14101
14102         * file-io.c : On Windows, there are much more invalid_path_chars.
14103
14104 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14105
14106         * class.h, object.c: prepare for GetType () speedup.
14107
14108 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14109
14110         * profiler.c: workaround for --profile null reference exception on
14111           cygwin. Patch by Patrik Torstensson.
14112
14113 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14114
14115         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14116         make work for unaligned access.
14117
14118 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14119
14120         * class.c: small cleanup (class->fields [i] -> field).
14121         * image.c: check address of metadata is valid.
14122
14123 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14124
14125         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14126         search the list of loaded assemblies.
14127
14128         * reflection.c (mono_reflection_type_from_name): Use 
14129         mono_assembly_loaded instead of mono_image_loaded.
14130
14131         * reflection.c: Fix warnings.
14132
14133 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
14134
14135         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
14136         is dynamic. This is needed since an assembly can contain both dynamic and
14137         non-dynamic images.
14138
14139         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
14140         assembly->dynamic.
14141
14142         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14143
14144         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14145         to store modules loaded using AddModule.
14146
14147         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14148         on Modules.
14149
14150         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14151
14152         * reflection.c (mono_image_fill_export_table_from_module): New function to
14153         fill out the EXPORTEDTYPES table from a module.
14154
14155         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14156         into a separate function. Also handle loaded non-dynamic modules.
14157
14158         * reflection.c (mono_image_basic_init): Fix memory allocation.
14159
14160         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14161
14162         * assembly.c (mono_assembly_load_references): Make this public.
14163
14164 2003-12-19  Martin Baulig  <martin@ximian.com>
14165
14166         * class.c (mono_class_initialize_generic): Made this static, take
14167         a `MonoGenericInst *' instead of a `MonoClass *'.
14168         (mono_class_from_generic): Call mono_class_initialize_generic()
14169         unless we're already initialized or being called from
14170         do_mono_metadata_parse_generic_inst().
14171
14172         * class.h (MonoGenericInst): Added `initialized' and
14173         `init_pending' flags.
14174
14175         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14176         `mono_class_init (gklass)' or mono_class_initialize_generic()
14177         here; set `generic_inst->init_pending' while parsing the
14178         `type_argv'.
14179
14180 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14181
14182         * locales.c: include string.h for memxxx prototypes
14183
14184 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14185
14186         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14187         constructor when accessing literal fields.
14188
14189 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14190
14191         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14192
14193         * reflection.c (assembly_add_resource_manifest): New function to fill
14194         the MANIFESTRESOURCE table.
14195
14196         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14197
14198         * reflection.h: Update to changes in class layout.
14199
14200         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14201         Reenable call to mono_runtime_is_shutting_down ().
14202
14203         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14204         determine if the runtime is shutting down.
14205
14206 2003-12-16  Jackson Harper <jackson@ximian.com>
14207
14208         * icall.c: comment out call to mono_runtime_is_shutting_down to
14209         fix build.
14210         
14211 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14212
14213         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14214         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14215
14216 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14217
14218         * reflection.c: move definition of swap_with_size
14219         to before its first call
14220
14221 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14222
14223         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14224
14225         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14226         icall.
14227
14228         * object.c: Fix warnings.
14229
14230         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14231         members if FlattenHierarchy is set.
14232
14233         * reflection.c (mono_image_add_decl_security): New function to emit
14234         declarative security.
14235
14236         * reflection.h reflection.c: Add support for declarative security.
14237
14238         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14239         
14240 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
14241
14242         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14243         
14244         * appdomain.c verify.c: Moved corlib version checking into its own
14245         function in appdomain.c since it needs to create vtables etc.
14246
14247 2003-12-13  Patrik Torstensson <p@rxc.se>
14248
14249         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
14250         instead of unwrapped server.
14251
14252 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
14253
14254         * verify.c (check_corlib): Fix field index.
14255
14256 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
14257
14258         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
14259         GetGacPath icall.
14260
14261 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
14262
14263         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
14264         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
14265         cope with sizeof(size_t) != sizeof(guint32).
14266
14267 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14268
14269         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
14270         in case of failure.
14271
14272 2003-12-10  Mark Crichton <crichton@gimp.org>
14273
14274         * icall.c: removed the GetNonZeroBytes.  We now handle this case
14275         in managed code.
14276
14277         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
14278
14279 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
14280
14281         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
14282         marked as deleted.
14283
14284 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
14285
14286         * verify.c (check_corlib): Handle the case when the version field is 
14287         initialized by a static constructor.
14288
14289 2003-12-08  Patrik Torstensson  <p@rxc.se>
14290
14291     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
14292
14293 2003-12-08  Martin Baulig  <martin@ximian.com>
14294
14295         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
14296         a MonoReflectionGenericParameter, also take the parameter index
14297         and name as arguments.
14298         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14299         (ves_icall_MonoGenericParam_initialize): New interncall.
14300         (ves_icall_Type_make_byref_type): New interncall.
14301
14302         * reflection.h (MonoReflectionGenericParam): Derive from
14303         MonoReflectionType, not just from MonoObject.  Added `refobj' and
14304         `index' fields.
14305
14306         * reflection.c (mono_reflection_define_generic_parameter): Create
14307         and return a new MonoReflectionGenericParam; don't initialize the
14308         constraints here.
14309         (mono_reflection_initialize_generic_parameter): New public method;
14310         initializes the constraints and creates the `param->pklass'.
14311
14312 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
14313
14314         * reflection.h reflection.c: Use the new fields 'num_types', 
14315         'num_fields' and 'num_methods' to track the number of types etc.
14316
14317         * verify.c (check_corlib): Check corlib version number.
14318
14319 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
14320
14321         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
14322         function works on all methods.
14323
14324 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
14325
14326         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
14327         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
14328         the custom_type_info flag of the transparent proxy.
14329         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
14330         objects that supports IRemotingTypeInfo.
14331         * object.h: Added custom_type_info field in transparent proxy.
14332
14333 2003-12-06  Martin Baulig  <martin@ximian.com>
14334
14335         * class.c (mono_class_create_from_generic): Removed.
14336         (mono_class_from_generic): Check `ginst->klass' before doing
14337         anything else.  This is important to fully support "recursive"
14338         generic types.
14339
14340         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
14341         empty `generic_inst->klass' before doing anything else.
14342
14343 2003-12-06  Dick Porter  <dick@ximian.com>
14344
14345         * verify.c: 
14346         * object.h:
14347         * icall.c:
14348         * locales.c: Use C structs to access class fields.  Don't do a
14349         conversion between MonoString and UChar because both are
14350         platform-endian UTF-16.  Compare now takes startindex and count
14351         parameters.  Add a char overload for IndexOf.  Speed up the
14352         invariant string IndexOf.
14353
14354 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
14355
14356         * Makefile.am (monosn_LDADD): Fix parallel build.
14357
14358 2003-12-04  Martin Baulig  <martin@ximian.com>
14359
14360         * icall.c
14361         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14362         (ves_icall_Type_make_array_type): New interncall.       
14363
14364 2003-12-04  Martin Baulig  <martin@ximian.com>
14365
14366         * locales.c: also change it in the !HAVE_ICU case.
14367
14368 2003-12-04  Dick Porter  <dick@ximian.com>
14369
14370         * icall.c:
14371         * locales.c: construct_compareinfo is now in CompareInfo, not
14372         CultureInfo.
14373
14374 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
14375
14376         * image.c (mono_image_load_file_for_image): Cache loaded images in the
14377         image->files array.
14378
14379         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
14380         table as well.
14381
14382         * assembly.c (mono_assembly_load_references): Only load references
14383         once.
14384
14385         * class.c (mono_class_from_name): Avoid linear search of the 
14386         EXPORTEDTYPE table.
14387
14388         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
14389
14390 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
14391
14392         * image.h (MonoImage): Add 'field_cache' field.
14393
14394         * loader.c (mono_field_from_token): Cache field lookups.
14395         
14396         * reflection.c (mono_module_get_object): Fix name property.
14397
14398         * icall.c (ves_icall_get_enum_info): Update after changes to 
14399         mono_metadata_get_constant_index ().
14400
14401         * icall.c: Get rid of get_type_info icall, use a separate icall for
14402         each type property to avoid needless memory allocations. Fixes #51514.
14403
14404         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
14405         to avoid needless binary searches.
14406
14407         * class.c (class_compute_field_layout): Move the initialization of
14408         field->def_value to mono_class_vtable ().
14409
14410         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
14411         non-corlib types.
14412
14413         * object.c (mono_object_allocate): Make it inline.
14414
14415         * object.c (mono_object_allocate_spec): Make it inline.
14416         
14417 2003-12-02  Dick Porter  <dick@ximian.com>
14418
14419         * locales.c (create_NumberFormat): NumberFormatInfo construction.
14420         Patch by Mohammad DAMT (mdamt@cdl2000.com).
14421
14422 2003-12-01  Dick Porter  <dick@ximian.com>
14423
14424         * threads.c: Fix signature and call in CreateMutex and
14425         CreateEvent.
14426
14427 2003-12-01  Dick Porter  <dick@ximian.com>
14428
14429         * icall.c: 
14430         * locales.c: Implement string compares and searching
14431
14432         * object.h: Add extra Thread field
14433
14434 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
14435
14436         * reflection.c (fixup_method): Add support for MonoCMethod.
14437
14438 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
14439
14440         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
14441
14442         * reflection.c (assembly_name_to_aname): Allow extra characters in
14443         assembly names. Fixes #51468.
14444
14445 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
14446
14447         * exception.c (mono_exception_from_name_domain): New helper function.
14448
14449         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
14450         exception object in the correct domain.
14451
14452         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
14453         formatting + make a copy a the input data.
14454
14455         * loader.c (mono_get_method_from_token): Methods which contain
14456         native code do not have entries in the ImplMap.
14457
14458         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
14459         Thanks to Gonzalo for spotting this.
14460         
14461         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
14462         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
14463
14464         * assembly.h (mono_assembly_load_from): Split the second part of 
14465         assembly loading into a new public function.
14466
14467         * exception.h (mono_get_exception_bad_image_format): New function.
14468
14469 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
14470
14471         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14472         Enumerate all modules inside a dynamic assembly. Fixes #51293.
14473         
14474         * icall.c: Add new icall for creating dynamic methods.
14475
14476         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
14477
14478         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
14479
14480         * reflection.c (mono_reflection_create_dynamic_method): New icall to
14481         create a dynamic method.
14482
14483         * reflection.c (resolve_object): New helper function.
14484
14485         * reflection.c: Generalize ReflectionMethodBuilder and the functions
14486         which manipulate it so they can also work on dynamic methods.
14487
14488         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
14489         creating the MonoReflectionMethodAux structure if it is not needed.
14490         
14491         * reflection.h verify.c: Update after changes to object layout.
14492
14493         * reflection.c (method_builder_encode_signature): Fix compilation on
14494         gcc 2.95.x.
14495
14496 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
14497
14498         * appdomain.h: Added support for context static fields. Added static_data
14499           field to MonoAppContext and renamed thread_static_fields to a more
14500           generic special_static_fields in MonoAppDomain, since it can now contain
14501           context static fields.
14502         * domain.c: Updated hashtable name.
14503         * object.c: Replaced field_is_thread_static() for a more generic
14504           field_is_special_static() which also checks for context static attribute.
14505           In mono_class_vtable(), added support for static context fields.
14506         * threads.c: Changed methods that manage thread static fields to more
14507           generic methods so they can be reused both for thread and context static
14508           data.
14509         * threads.h: Declared some new methods.
14510
14511 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
14512
14513         * reflection.h: Update after changes to the managed types.
14514
14515         * reflection.c (encode_custom_modifiers): New helper function.
14516
14517         * reflection.c (method_encode_signature): Emit custom modifiers.
14518
14519         * reflection.c (field_encode_signature): Emit custom modifiers.
14520
14521 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
14522
14523         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
14524
14525         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
14526         implementation.
14527
14528         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
14529         icall.
14530
14531         * object.c (mono_field_get_value_object): New function.
14532
14533         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
14534         specific.
14535
14536 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
14537
14538         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
14539         return a preallocated out-of-memory exception instance.
14540
14541         * object.c (out_of_memory): Use the new function.
14542
14543         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
14544         flag is before the custom modifiers. Fixes #49802.
14545
14546 2003-11-16  Martin Baulig  <martin@ximian.com>
14547
14548         * class.c (mono_class_is_open_constructed_type): Implemented the
14549         MONO_TYPE_GENERICINST case.
14550
14551 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
14552
14553         * assembly.c (mono_assembly_fill_assembly_name): New function to
14554         fill out the MonoAssemblyName structure.
14555         (mono_assembly_open): Use the new function.
14556
14557         * icall.c (fill_reflection_assembly_name): New helper function.
14558
14559         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
14560         new function.
14561
14562         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
14563
14564 2003-11-15  Martin Baulig  <martin@ximian.com>
14565
14566         * class.c (mono_class_is_open_constructed_type): New public
14567         function; checks whether a type is an open constructed type,
14568         ie. whether it still contains type parameters.
14569         (mono_class_inflate_generic_type): If we're a type parameter and
14570         the inflated type is also a MONO_TYPE_(M)VAR, return the original
14571         type.
14572
14573         * class.h (MonoGenericInst): Added `guint32 is_open'.
14574
14575         * loader.c (method_from_methodspec): Check whether we're an open
14576         or closed constructed type and set `ginst->is_open'.
14577
14578         * reflection.c (mono_reflection_bind_generic_parameters): Check
14579         whether we're an open or closed constructed type and set
14580         `ginst->is_open'.
14581         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
14582         from open constructed types.
14583
14584 2003-11-15  Martin Baulig  <martin@ximian.com>
14585
14586         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14587         a generic instance (instead of a generic type declaration) with
14588         unbound generic parameters, bind them to our actual types.
14589
14590 2003-11-14  Martin Baulig  <martin@ximian.com>
14591
14592         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
14593
14594         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14595         an interface type, populate `res->interfaces' with instantiated
14596         versions of all the interfaces we inherit.
14597
14598 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
14599
14600         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
14601         when MONO_PATH is set but doesn't contain the install dir.
14602
14603 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14604
14605         * icall.c:
14606         (ves_icall_Type_GetInterfaces): don't return an interface twice when
14607         it's also implemented in base classes. Fixes bug #50927.
14608
14609 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
14610
14611         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
14612         if this method is called from a finalizer. Fixes #50913.
14613
14614 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
14615
14616         * threads.c: Implement VolatileRead/VolatileWrite
14617
14618         * icall.c: Add new icalls for VolatileRead/VolatileWrite
14619
14620 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14621
14622         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
14623         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
14624         2.95.3.
14625
14626         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
14627         from Peter Ross (pro@missioncriticalit.com).
14628         
14629 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
14630
14631         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
14632
14633 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14634
14635         * assembly.c (mono_assembly_load_references): Disable check because it
14636         triggers on older corlibs which lots of people have.
14637
14638 2003-11-12  Jackson Harper  <jackson@ximian.com>
14639
14640         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
14641         load corlib.dll if mscorlib.dll is not found.
14642         * assembly.h: Remove corlib name define.
14643         * class.c:
14644         * domain.c:
14645         * image.c: Change corlib name to mscorlib.
14646         
14647 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14648
14649         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
14650
14651 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
14652
14653         * appdomain.h: Added loader_optimization here to sync with the C#
14654         code, and add disallow_binding_redirects field.
14655
14656 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
14657
14658         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
14659
14660         * reflection.c (mono_image_build_metadata): Fix crash on modules
14661         with no types.
14662
14663         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
14664
14665         * icall.c (ves_icall_get_method_info): Return callingConvention as
14666         well.
14667
14668         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
14669         namespaces from the EXPORTEDTYPE table as well.
14670
14671         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
14672         from all modules inside the assembly.
14673         
14674 2003-11-11  Martin Baulig  <martin@ximian.com>
14675
14676         * reflection.c (mono_reflection_bind_generic_parameters): Make
14677         this work for interfaces.
14678
14679 2003-11-11  Martin Baulig  <martin@ximian.com>
14680
14681         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
14682
14683 2003-11-11  Martin Baulig  <martin@ximian.com>
14684
14685         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
14686         "MonoInflatedMethod" and "MonoInflatedCtor".
14687
14688 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
14689
14690         * reflection.c (resolution_scope_from_image): Use the assembly table
14691         from the manifest module, since other modules don't have it.
14692
14693         * debug-helpers.c (mono_type_full_name): New helper function.
14694
14695         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
14696
14697         * image.c (mono_image_load_file_for_image): New public function which
14698         is a replacement for the load_file_for_image in class.c.
14699
14700         * assembly.c (mono_assembly_load_module): A wrapper for the function
14701         above which does assembly association and reference loading too.
14702
14703         * class.c (mono_class_from_name): Call mono_assembly_load_module.
14704
14705 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14706
14707         * appdomain.c: not all of the attributes for the full assembly name
14708         are required and the order doesn't matter. Fixes bug #50787.
14709
14710 2003-11-10  Dick Porter  <dick@ximian.com>
14711
14712         * locales.c: Use platform-endian UTF16
14713
14714 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
14715
14716         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
14717         
14718 2003-11-10  Martin Baulig  <martin@ximian.com>
14719
14720         * metadata.c
14721         (mono_metadata_load_generic_params): Make this actually work.
14722
14723         * reflection.c (mono_reflection_bind_generic_parameters): If our
14724         parent is a generic instance, pass all the `types' to it, no
14725         matter whether it has the same number of type parameters or not.
14726
14727 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
14728
14729         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
14730
14731         * assembly.c (mono_assembly_load_references): Move the image<->assembly
14732         assignment code to this function so it gets called recursively for all
14733         modules.
14734
14735         * image.c (load_modules): Remove the assembly assignment since it is
14736         now done by mono_assembly_load_references.
14737         
14738         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14739         Add 'module' argument.
14740         (mono_module_get_types): New helper function.
14741         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
14742
14743 2003-11-08  Martin Baulig  <martin@ximian.com>
14744
14745         * class.c (mono_class_inflate_generic_method): Interface method
14746         don't have a header.
14747
14748         * reflection.c (mono_image_get_methodspec_token): Take an
14749         additional `MonoGenericInst *' argument instead of reading it from
14750         the header; this is necessary to support interfaces.
14751         (mono_image_create_token): Pass the `MonoGenericInst *' from the
14752         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
14753         (inflated_method_get_object): Take an additional `MonoGenericInst *'
14754         argument.
14755
14756         * reflection.h (MonoReflectionInflatedMethod): Added
14757         `MonoGenericInst *ginst'.
14758
14759 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
14760
14761         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
14762
14763 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
14764
14765         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
14766
14767 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
14768
14769         * reflection.c 
14770         (reflection_methodbuilder_from_method_builder):
14771         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
14772         initialize a ReflectionMethodBuilder structure.
14773         (mono_image_get_methodbuilder_token):
14774         (mono_image_get_ctorbuilder_token): New functions to emit memberref
14775         tokens which point to types in another module inside the same assembly.
14776
14777         * reflection.c: Use the new helper functions.
14778         
14779         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
14780
14781         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
14782         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
14783
14784         * reflection.c (resolution_scope_from_image): Emit a moduleref if
14785         neccesary.
14786
14787         * reflection.c (mono_image_build_metadata): Emit metadata only for the
14788         current module. Emit the manifest only for the main module.
14789
14790         * reflection.c (mono_image_create_token): Add assertion when a 
14791         memberref needs to be created.
14792
14793         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
14794
14795         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
14796         larger buffer for the custom attribute blob. Fixes #50637.
14797         
14798 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14799
14800         * threadpool.c: notify listener on async processing handles after
14801         invoking the async callback. Thanks to Zoltan.
14802
14803 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
14804
14805         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
14806         avoid code duplication.
14807
14808         * reflection.h (MonoDynamicImage): New type which is currently unused,
14809         but will be used through the ref.emit code in place of 
14810         MonoDynamicAssembly.
14811
14812         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
14813         object layout.
14814
14815         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
14816         a MonoDynamicImage instead of just a MonoImage.
14817         
14818         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
14819         icalls to ModuleBuilder but keep their semantics, so they will work
14820         with moduleb->assemblyb. This will change later.
14821         
14822 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
14823
14824         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
14825         object layout.
14826
14827         * reflection.c (mono_image_build_metadata): Avoid creation of a default
14828         main module, since it is now done by the managed code.
14829
14830 2003-11-03  Martin Baulig  <martin@ximian.com>
14831
14832         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
14833         `ginst->klass' here.
14834         (method_encode_methodspec): Don't use the `ginst->generic_method's
14835         klass if it's a generic instance, use `ginst->klass' in this case.
14836
14837 2003-11-03  Martin Baulig  <martin@ximian.com>
14838
14839         * reflection.c (mono_image_get_generic_method_param_info):
14840         Removed, use mono_image_get_generic_param_info() instead.
14841         (mono_image_get_type_info): Write the GenericParam table before
14842         the Method table.  This is neccessary because in the GenericParam
14843         table, type parameters of the class (ie. '!0' etc.) must come
14844         before the ones from its generic methods (ie. '!!0' etc).
14845
14846 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
14847
14848         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
14849
14850 2003-11-02  Martin Baulig  <martin@ximian.com>
14851
14852         * reflection.c (create_generic_typespec): Take a
14853         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
14854         the generic parameters from it.
14855
14856 2003-11-02  Martin Baulig  <martin@ximian.com>
14857
14858         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
14859         instead of a `MonoClassField *' since we just need the type.
14860         (create_generic_typespec): New static function.  Creates a
14861         TypeSpec token for a generic type declaration.
14862         (mono_image_get_generic_field_token): New static function.
14863         (mono_image_create_token): If we're a FieldBuilder in a generic
14864         type declaration, call mono_image_get_generic_field_token() to get
14865         the token.
14866
14867 2003-11-02  Martin Baulig  <martin@ximian.com>
14868
14869         * reflection.h
14870         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
14871         `MonoReflectionGenericInst *declaring_type' and
14872         `MonoReflectionGenericInst *reflected_type' fields.
14873
14874         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
14875         `MonoReflectionGenericInst *declaring_type' and a
14876         `MonoReflectionGenericInst *reflected_type' argument instead of a
14877         single `MonoReflectionGenericInst *type' one.  Set
14878         `res->declaring_type' and `res->reflected_type' from them.
14879         (mono_reflection_inflate_field): Likewise.      
14880
14881 2003-11-02  Martin Baulig  <martin@ximian.com>
14882
14883         * class.c (mono_class_setup_vtable): Don't store generic methods
14884         in the vtable.  
14885
14886 2003-11-02  Martin Baulig  <martin@ximian.com>
14887
14888         * reflection.h (MonoReflectionGenericInst): Added
14889         `MonoReflectionType *declaring_type'.
14890
14891         * reflection.c (mono_reflection_bind_generic_parameters): Use
14892         `if (tb->parent)' instead of `klass->parent'.
14893
14894 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
14895
14896         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
14897         with an empty ASSEMBLY table.
14898
14899         * reflection.c (mono_image_build_metadata): Avoid using the same loop
14900         variable in the inner and outer loops.
14901
14902 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
14903
14904         * metadata.h (mono_metadata_make_token): Put parentheses around macro
14905         argument.
14906
14907         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
14908         
14909         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
14910         icalls. Instead, do everything in managed code. This is needed since
14911         it is hard to restore the original domain etc. in unmanaged code in the
14912         presence of undeniable exceptions.
14913
14914         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
14915         New icalls to push and pop appdomain refs.
14916
14917 2003-10-31  Martin Baulig  <martin@ximian.com>
14918
14919         * class.c (inflate_generic_type): Renamed to
14920         mono_class_inflate_generic_type() and made it public.
14921
14922         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
14923         New interncall.
14924
14925         * loader.c (mono_field_from_memberref): Also set the retklass for
14926         typespecs.
14927
14928         * fielder.c (mono_image_get_inflated_field_token): New static
14929         method; creates a metadata token for an inflated field.
14930         (mono_image_create_token, fixup_method): Added support for
14931         "MonoInflatedField".
14932         (fieldbuilder_to_mono_class_field): New static function.
14933         (mono_reflection_inflate_field): New public function.
14934
14935         * reflection.h
14936         (MonoReflectionGenericInst): Added `MonoArray *fields'.
14937         (MonoReflectionInflatedField): New typedef.     
14938
14939 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
14940
14941         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
14942         for Solaris and other platforms without s6_addr16
14943
14944 2003-10-30  Martin Baulig  <martin@ximian.com>
14945
14946         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
14947         argument instead of two.
14948         (mono_class_inflate_generic_signature): Likewise.
14949         (inflate_generic_header): Likewise.
14950         (mono_class_inflate_generic_method): Likewise.  In addition, if
14951         `ginst->klass' is set, it becomes the new `method->klass'.
14952
14953         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
14954         field.
14955
14956         * reflection.c (encode_generic_method_sig): Write a 0xa as the
14957         first byte. [FIXME]
14958         (method_encode_methodspec): If we have generic parameters, create
14959         a MethodSpec instead of a MethodRef.
14960         (fixup_method): Added support for "MonoInflatedMethod" and
14961         "MonoInflatedCtor".
14962         (mono_image_create_token): Added support for "MonoInflatedMethod"
14963         and "MonoInflatedCtor".
14964         (inflated_method_get_object): New static function; returns a
14965         managed "System.Reflection.MonoInflatedMethod" object.
14966         (mono_reflection_bind_generic_method_parameters): Return a
14967         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
14968         (mono_reflection_inflate_method_or_ctor): Likewise.
14969         (mono_image_get_generic_method_param_info): Initialize unused
14970         fields to zero.
14971         (mono_image_get_generic_param_info): Likewise.
14972
14973         * reflection.h (MonoReflectionInflatedMethod): New public
14974         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
14975         "S.R.MonoInflatedCtor" classes.
14976
14977         * loader.c (method_from_memberref): If we're a TypeSpec and it
14978         resolves to a generic instance, inflate the method.
14979
14980 2003-10-28  Dick Porter  <dick@ximian.com>
14981
14982         * object.c (mono_runtime_run_main): Convert command-line arguments
14983         into utf8, falling back to the user's locale encoding to do so.
14984
14985 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
14986
14987         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
14988         at this time.
14989
14990         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
14991
14992         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
14993         up icalls at method definition time. Partially fixes #33569.
14994
14995 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
14996
14997         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
14998         marshalling of arrays. Fixes #50116.
14999
15000         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15001
15002         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15003         points to a vtable in the dying appdomain.
15004
15005         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15006         listeners into unmanaged code inside the lock.
15007
15008         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15009         domains and add some comments.
15010
15011 2003-10-25  Martin Baulig  <martin@ximian.com>
15012
15013         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15014
15015         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15016
15017         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15018         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15019         currently parsing.  Create the generic class and store it in
15020         `generic_inst->klass' before parsing the type arguments.  This is
15021         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15022         for an example.
15023         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15024         to support recursive typespec entries.
15025
15026         * class.c (mono_class_setup_parent): If our parent is a generic
15027         instance, we may get called before it has its name set.
15028         (mono_class_from_generic): Splitted into
15029         mono_class_create_from_generic() and mono_class_initialize_generic().
15030
15031 2003-10-25  Martin Baulig  <martin@ximian.com>
15032
15033         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15034         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15035         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15036         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15037
15038         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15039         (create_typespec): Likewise.
15040         (mono_reflection_bind_generic_parameters): Return a
15041         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15042         (mono_reflection_inflate_method_or_ctor): New public function.
15043
15044         * reflection.h (MonoReflectionGenericInst): New typedef.        
15045
15046 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15047
15048         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15049         inside the domain lock. Fixes #49993.
15050         
15051         * object.c (mono_class_vtable): When typed allocation is used, 
15052         allocate vtables in the GC heap instead of in the mempool, since the
15053         vtables contain GC descriptors which are used by the collector even
15054         after the domain owning the mempool is unloaded.
15055
15056         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15057
15058         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15059         reflect what it does. Also invalidate mempools instead of freeing
15060         them if a define is set.
15061
15062         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15063         of the appdomain.
15064         
15065         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15066         hold the finalizable objects in this domain.
15067
15068         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15069         appdomain.
15070
15071         * appdomain.c (mono_domain_set): New function to set the current
15072         appdomain, but only if it is not being unloaded.
15073
15074         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15075         appdomain which is being unloaded.
15076         
15077         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15078         unloading of the root appdomain.
15079
15080         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15081         icall to execute a method in another appdomain. Intended as a 
15082         replacement for InternalSetDomain, which can confuse the code 
15083         generation in the JIT.
15084
15085         * appdomain.c (mono_domain_is_unloading): New function to determine
15086         whenever an appdomain is unloading.
15087
15088         * appdomain.c (mono_domain_unload): New function to correctly unload
15089         an appdomain.
15090
15091         * assembly.c (mono_assembly_load_references): Check that an assembly
15092         does not references itself.
15093
15094         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15095         domain manually, it asks the finalizer thread to do it, then waits for
15096         the result. Also added a timeout.
15097
15098         * icall.c: Register the new icalls.
15099
15100         * threads.h threads.c: Export the mono_gc_stop_world and 
15101         mono_gc_start_world functions.
15102         
15103         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15104         function to fill out the mempool with 0x2a.
15105
15106 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15107
15108         * reflection.h (MonoReflectionMethodAux): New structure to store
15109         information which is rarely used, thus is not in the MonoMethod
15110         structure.
15111
15112         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15113         store the aux info.
15114
15115         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15116         and marshalling info into the aux structure.
15117
15118         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15119         from the aux structure.
15120
15121         * loader.c (mono_method_get_param_names): Retrieve the param names from
15122         the aux structure.
15123         
15124 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15125
15126         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15127         warning.
15128
15129 2003-10-21  Dick Porter  <dick@ximian.com>
15130
15131         * socket-io.c
15132         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
15133         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
15134
15135 2003-10-21  Martin Baulig  <martin@ximian.com>
15136
15137         * reflection.c (mono_reflection_bind_generic_parameters):
15138         `klass->parent' is NULL for interfaces.
15139
15140 2003-10-21  Martin Baulig  <martin@ximian.com>
15141
15142         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15143
15144 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15145
15146         * exception.c (mono_exception_from_name_msg): New helper function for
15147         creating exceptions and initializing their message field.
15148
15149         * exception.c: Simplify functions using the new helper.
15150
15151         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15152         New function.
15153
15154         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15155         mono_raise_exception, since otherwise gcc doesn't generate the function
15156         epilog for raise_exception, confusing the stack unwinding in the JIT.
15157         Fixes #45043.
15158
15159         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15160         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15161         Fixes #49499.
15162
15163 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15164
15165         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15166         utf8.
15167
15168 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15169
15170         * icall.c: Removed GetUninitializedObject method because
15171           AllocateUninitializedClassInstance does the same.
15172
15173 2003-10-18  Martin Baulig  <martin@ximian.com>
15174
15175         * class.c (inflate_generic_signature): Renamed to
15176         mono_class_inflate_generic_signature() and made it public.
15177         (my_mono_class_from_generic_parameter): New static function; if we
15178         don't already have the generic parameter's MonoClass, create a
15179         very simple one which is just used internally in the runtime and
15180         not passed back to managed code.
15181
15182         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15183
15184         * metadata.h (MonoMethodSignature): Moved the
15185         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15186         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15187
15188         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15189         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15190         interncall on the MonoMethod class, not on MethodInfo.
15191         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15192         calling mono_reflection_bind_generic_method_parameters() directly.
15193
15194         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15195         return the already computed `method->signature'.
15196         (method_from_methodspec): New static function to load a method
15197         from a MethodSpec entry.
15198         (mono_get_method_from_token): Call the new method_from_methodspec()
15199         for MethodSpec tokens.  
15200         (mono_get_method_from_token): If we're a generic method, load the
15201         type parameters.
15202
15203         * reflection.c (mono_image_get_memberref_token): Allow
15204         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15205         table.
15206         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15207         (mono_image_create_token): First check whether it's a generic
15208         method (so we'd need to create a MethodSpec), then do the other
15209         two alternatives.
15210         (mono_reflection_bind_generic_method_parameters): Return a
15211         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15212         called directly from the interncall.
15213
15214 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15215
15216         * reflection.c (load_public_key): Move loading of the public key
15217         into managed code.
15218
15219         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15220
15221         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15222         fields.
15223
15224         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15225         culture, hash_alg and public_key. Fixes #49555.
15226
15227 2003-10-17  Martin Baulig  <martin@ximian.com>
15228
15229         * class.h (MonoGenericInst): Moved this declaration here and added
15230         `MonoMethod *generic_method'.
15231
15232         * icall.c
15233         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15234         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15235
15236         * metadata.c (mono_metadata_type_equal): Two types of
15237         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15238         index; ie. don't compare the address of the `MonoGenericParam'
15239         structure.
15240         (mono_metadata_load_generic_params): Removed the `MonoMethod
15241         *method' argument.
15242
15243         * metadata.h (MonoGenericInst): Moved declaration to class.h.
15244         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
15245
15246         * reflection.c (method_encode_signature): Encode the number of
15247         generic parameters.
15248         (encode_generic_method_sig): New static function.
15249         (method_encode_methodspec): New static function; creates an entry
15250         in the MethodSpec table for a generic method.
15251         (mono_image_get_methodspec_token): New static function.
15252         (mono_image_create_token): Call mono_image_get_methodspec_token()
15253         for generic methods.
15254         (mono_reflection_bind_generic_method_parameters): New public
15255         function.  Instantiates a generic method.
15256
15257 2003-10-16  Martin Baulig  <martin@ximian.com>
15258
15259         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
15260         *gen_params' here from MonoMethodHeader.
15261
15262         * metadata.c (mono_metadata_parse_method_signature): If we have
15263         generic parameters, initialize `method->gen_params' and then set
15264         the correct `type->data.generic_param' in all the parameters.
15265
15266 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
15267
15268         * threads.c (mono_threads_get_default_stacksize): New function to 
15269         return the default stacksize.
15270
15271         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
15272         termination of the finalizer thread, since the previous method had
15273         race conditions. Fixes #49628.
15274
15275         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
15276         as for the other managed threads.
15277
15278 2003-10-16  Martin Baulig  <martin@ximian.com>
15279
15280         * class.c (inflate_generic_signature): Copy `generic_param_count'
15281         and `gen_params'.
15282
15283         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
15284         New interncall.
15285
15286         * metadata.c (mono_metadata_parse_method_signature): Actually set
15287         the `method->generic_param_count' here.
15288         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
15289
15290 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
15291
15292         * object.h: Add a new field to TypedRef to simplify the implementation
15293         of the REFANY opcodes in the JIT.
15294
15295         * icall.c: Make use of the new field.
15296
15297         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
15298         dynamically.
15299
15300 2003-10-15  Martin Baulig  <martin@ximian.com>
15301
15302         * class.c (mono_class_from_gen_param): Renamed to
15303         mono_class_from_generic_parameter() and moved most of the
15304         functionality from mono_reflection_define_generic_parameter()
15305         here; ie. we create a "real" class here.
15306         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
15307         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
15308         previously been called.
15309
15310         * class.h (MonoGenericParam): Moved the declaration of this struct
15311         here from metadata.h and added `MonoMethod *method'.
15312
15313         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
15314         interncall.
15315
15316         * loader.c (mono_get_method_from_token): If we have any generic
15317         parameters, call mono_metadata_load_generic_params() to read them
15318         from the MONO_TABLE_GENERICPAR.
15319
15320         * metadata.c (mono_metadata_load_generic_params): Added
15321         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
15322
15323         * metadata.h (MonoMethodSignature): Replaced
15324         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
15325         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
15326
15327         * reflection.c (mono_reflection_define_generic_parameter): Moved
15328         most of the functionality into the new
15329         mono_class_from_generic_parameter(); set the `method' field if
15330         we're a method parameter.       
15331
15332 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
15333
15334         * marshal.c (emit_struct_conv): if native size is 0
15335         emit no code.
15336
15337 2003-10-14  Martin Baulig  <martin@ximian.com>
15338
15339         * icall.c: The generics API has changed in the spec since it was
15340         added to System.Type; these modifications make it match the spec
15341         again.
15342         (ves_icall_Type_GetGenericParameters): Renamed to
15343         `ves_icall_Type_GetGenericArguments'.
15344         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
15345         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
15346         `ves_icall_MonoType_get_HasGenericArguments'.
15347         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
15348         `ves_icall_MonoType_get_IsGenericParameter'.
15349         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
15350         this is no interncall anymore.
15351         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
15352         `ves_icall_TypeBuilder_get_IsGenericParameter'.
15353
15354 2003-10-14  Martin Baulig  <martin@ximian.com>
15355
15356         * reflection.c (mono_reflection_bind_generic_parameters): Also
15357         inflate generic methods if we're reading the class from IL.
15358
15359 2003-10-13  Martin Baulig  <martin@ximian.com>
15360
15361         * reflection.c (mono_reflection_define_generic_parameter): This
15362         method isn't called directly from the icall anymore; take a
15363         `MonoReflectionAssemblyBuilder *' so we can use this for type and
15364         method generic parameters.
15365         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
15366         (method_builder_encode_signature): Encode generic parameters.
15367         (mono_image_get_method_info): Write generic params to the
15368         MONO_TABLE_GENERICPARAM table.
15369
15370         * reflection.h (MonoReflectionMethodBuilder): Added
15371         `MonoArray *generic_params'.
15372
15373         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
15374
15375         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
15376         wrapper for mono_reflection_define_generic_parameter().
15377         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
15378
15379 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
15380
15381         * marshal.h: Add missing function to fix build.
15382
15383         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
15384         the SetLastError pinvoke attribute.
15385
15386         * marshal.c (mono_marshal_set_last_error): New helper function called
15387         by the generated code.
15388         
15389         * marshal.c (mono_mb_emit_branch): New helper function.
15390
15391         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
15392
15393         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15394         classes as parameters and return values of delegates. Fixes #29256. 
15395
15396 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
15397
15398         * locales.c: use gint32 in non HAVE_ICU case
15399
15400 2003-10-11  Martin Baulig  <martin@ximian.com>
15401
15402         * mono-debug.c (mono_debug_add_method): Added a workaround for
15403         bug #48591.
15404
15405 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
15406
15407         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
15408         delegates passed to native code must use the STDCALL calling 
15409         convention. Fixes #35987.
15410
15411 2003-10-10  Martin Baulig  <martin@ximian.com>
15412
15413         * class.c (inflate_generic_type): If we're inflating for a generic
15414         type instance (and not for a generic method), return
15415         MONO_TYPE_MVAR unchanged.
15416
15417 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15418
15419         * string-icalls.c: Join ignores null strings in the source array.
15420         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
15421         * threads.c: GetAvailableTheads is slightly more accurate.
15422
15423 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
15424
15425         * threads.h threads.c : add mono_threads_set_default_stacksize
15426         and pass default to CreateThread calls.
15427
15428 2003-10-09  Dick Porter  <dick@ximian.com>
15429
15430         * icall.c:
15431         * locales.h:
15432         * locales.c: Internal calls for constructing CultureInfo and
15433         related objects from libicu (if its available.)
15434
15435 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
15436
15437         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
15438
15439 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15440
15441         * threadpool.c: added an argument to async_invoke_thread that is the
15442         item to process, pass the MonoAsyncResult to the thread start function
15443         when creating a new thread. This way we don't need to acquire any lock
15444         when we're creating a new thread. Readded a semaphore for faster
15445         response times (instead of that Sleep i added).
15446
15447 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
15448
15449         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
15450         get daylight change dates better on Windows, fix handling
15451         of platforms without tm_gmtoff.
15452
15453 2003-10-06  Martin Baulig  <martin@ximian.com>
15454
15455         * class.c (inflate_generic_method): Renamed to
15456         mono_class_inflate_generic_method() and made public.
15457         (mono_class_init): Don't inflate the generic methods here.
15458         (mono_class_from_generic): Added `gboolean inflate_methods'
15459         argument.  Inflate the methods here.
15460
15461         * loader.c (mono_method_get_param_names): Ignore instances of
15462         generic types for the moment.
15463
15464         * reflection.c (fixup_method): Added support for inflated methods.
15465         (mono_image_create_token): Use mono_image_get_methodref_token()
15466         for inflated methods.
15467         (mono_custom_attrs_from_param): Ignore instances of generic types
15468         for the moment.
15469         (mono_reflection_bind_generic_parameters): New public function.
15470         Moved all the functionality from
15471         ves_icall_Type_BindGenericParameters() here and added support for
15472         dynamic types.
15473         (mono_reflection_define_generic_parameter): Initialize
15474         `klass->methods' here.
15475
15476         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
15477         functionality into mono_reflection_define_generic_parameter().
15478         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
15479         TypeBuilder, return that TypeBuilder.
15480
15481 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15482
15483         * appdomain.c: removed mono_delegate_semaphore.
15484
15485         * threadpool.c:
15486         (mono_thread_pool_add): moved hash table creation inside and the thread 
15487         creation outside of the critical region.
15488         (mono_thread_pool_finish): removed obsolete code.
15489         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
15490         continue or exit the thread depending on the queue.
15491
15492 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
15493
15494         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
15495         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
15496         handle more bool marshalling options
15497
15498 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
15499
15500         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
15501         arrays of structs. Also add a more descriptive error message when
15502         a structure member is marshalled as LPArray.
15503
15504 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
15505
15506         * marshal.c (mono_marshal_get_native_wrapper): Add support for
15507         marshalling arrays of complex types. Fixes #29098. Also remove an
15508         usused and incomplete function.
15509
15510 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
15511
15512         * gc.c: report heap_size - free_bytes as total memory allocated
15513         (bug#49362).
15514
15515 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
15516
15517         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
15518         fix timezone handling problems on Windows.
15519         
15520         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
15521         asserts when the year is outside the range handled by ms the functions.
15522
15523         * class.c (setup_interface_offsets): If the class is an interface,
15524         fill out its interface_offsets slot.
15525
15526 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15527
15528         * threadpool.c: mark threadpool threads as background.
15529
15530 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
15531
15532         * decimal.c - define DECINLINE to nothing if not using GCC
15533
15534 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
15535
15536         * assembly.c: More refcount fixes.
15537
15538 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15539
15540         * string-icalls.c: if we're not trimming, return the same string.
15541         When not splitting, don't create a new string.
15542
15543 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15544
15545         * image.c:
15546         (mono_image_open): increment the ref_count inside the critical section.
15547
15548 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
15549
15550         * image.c (mono_image_open): Fix reference counting bug.
15551
15552 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
15553
15554         * marshal.c (mono_marshal_type_size) struct alignment changed for 
15555         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
15556         64bits. Avoid leak in mono_marshal_get_native_wrapper when
15557         mono_lookup_pinvoke_call throws.        
15558
15559 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
15560
15561         * reflection.c (mono_reflection_parse_type): Fix #49114.
15562
15563         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
15564         temporary workaround for cygwin header problem.
15565
15566         * object.c (mono_object_isinst): Synchronize this with the code
15567         generated by the JIT for casts.
15568
15569 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
15570
15571         * reflection.c (encode_type): Fix #38332.
15572
15573 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
15574
15575         * marshal.c (mono_marshal_method_from_wrapper): New function to return
15576         the original method from the wrapper method.
15577
15578 2003-09-25  Martin Baulig  <martin@ximian.com>
15579
15580         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
15581         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
15582         (ves_icall_Type_get_IsGenericInstance): New interncall.
15583
15584 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
15585
15586         * object.c: fix cast warning in big endian code.
15587
15588 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
15589
15590         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
15591         
15592 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15593
15594         * assembly.c: don't call check_env from mono_assembly_load. It's
15595         already done once in mono_assemblies_init and may cause headaches when
15596         multiple threads are loading assemblies.
15597
15598 2003-09-19  Martin Baulig  <martin@ximian.com>
15599
15600         * reflection.c (mono_reflection_define_generic_parameter): Don't
15601         allocate `klass->methods', set `klass->flags' to
15602         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
15603
15604 2003-09-18  Martin Baulig  <martin@ximian.com>
15605
15606         * class.c (mono_class_init): Don't create `class->methods' if it's
15607         already initialized.
15608
15609         * metadata.c (mono_metadata_load_generic_params): Make this
15610         actually work.
15611
15612         * reflection.c (mono_reflection_define_generic_parameter): Set
15613         parent class and interfaces from the constraints.
15614
15615         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
15616         to keep this struct in sync with the declaration in TypeBuilder.cs.
15617
15618 2003-09-17  Martin Baulig  <martin@ximian.com>
15619
15620         * metadata.h (MonoType): Replaced the data's `int type_param'
15621         field with `MonoGenericParam *generic_param'.
15622         (MonoGenericParam): Added `MonoClass *klass'.
15623
15624         * class.c (mono_class_from_gen_param): Removed the
15625         `MonoImage *image' and `int type_num' arguments.
15626
15627         * metadata.c (mono_metadata_parse_generic_param): New static
15628         method; creates a MonoGenericParam which just contains the index.
15629         (do_mono_metadata_parse_type): Call
15630         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
15631         MONO_TYPE_MVAR.
15632
15633         * reflection.c (mono_image_typedef_or_ref): Generic type
15634         parameters may be in the same assembly, but never use a typedef
15635         for them.
15636         (mono_reflection_define_generic_parameter): We're now creating a
15637         "real" class for the type parameter; it's now safe to call
15638         mono_class_from_mono_type() on the class'es type, it'll do the
15639         right thing.
15640
15641 2003-09-16  Martin Baulig  <martin@ximian.com>
15642
15643         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
15644         `symfile->range_entry_size' and `symfile->class_entry_size' here;
15645         the `symfile' data structure must be fully initialized before it
15646         gets added to the table.
15647
15648 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
15649
15650         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
15651
15652         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
15653         class init trampolines.
15654
15655 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
15656
15657         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
15658         to the built-in profiler to turn off time and allocation profiling
15659         respectively.
15660
15661 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
15662
15663         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
15664         g_direct_equal.
15665
15666         * debug-helpers.c (mono_method_full_name): Print the wrapper type
15667         in human readable form.
15668
15669 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
15670
15671         * reflection.c icall.c: Fixed warnings.
15672
15673         * image.c (load_class_names): Use a temporary hash table to hold the
15674         namespaces in order to avoid doing many string comparisons.
15675
15676         * image.h: Fix typo.
15677
15678         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
15679         Pass NULL instead of g_direct_equal to the GHashTable constructor 
15680         since the NULL case is short-circuited inside g_hash_table_lookup, 
15681         leading to better performance.  
15682
15683         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
15684         obtain the first custom attribute for a given index. Depends on the
15685         CustomAttribute table being sorted by the parent field.
15686
15687         * reflection.c (mono_custom_attrs_from_index): Use the new function 
15688         for better performance.
15689
15690 2003-09-07  Martin Baulig  <martin@ximian.com>
15691
15692         * class.c (mono_class_init): If we're a generic instance, inflate
15693         all our methods instead of loading them from the image.
15694         (mono_class_from_generic): Set `class->methods = gklass->methods'.
15695
15696 2003-09-07  Martin Baulig  <martin@ximian.com>
15697
15698         * mono-debug-debugger.c: Added support for constructors.
15699
15700 2003-09-06  Martin Baulig  <martin@ximian.com>
15701
15702         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
15703         New interncall.
15704
15705         * reflection.c (mono_reflection_setup_generic_class): Call
15706         ensure_runtime_vtable() to create the vtable.
15707
15708 2003-09-05  Martin Baulig  <martin@ximian.com>
15709
15710         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
15711         MONO_TYPE_MVAR.
15712
15713 2003-09-04  Martin Baulig  <martin@ximian.com>
15714
15715         * reflection.c (mono_reflection_define_generic_parameter): Generic
15716         parameters start with zero.
15717
15718 2003-09-04  Martin Baulig  <martin@ximian.com>
15719
15720         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15721
15722         * reflection.h (MonoReflectionGenericParam): New typedef.
15723         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
15724         the generic parameters from the managed TypeBuilder.
15725
15726         * reflection.c (mono_reflection_define_generic_parameter): New function.
15727         (mono_reflection_create_runtime_class): Encode generic parameters.
15728         (mono_reflection_setup_generic_class): New function; this is
15729         called after adding adding all generic params to the TypeBuilder.
15730         (encode_type): Added MONO_TYPE_VAR.
15731
15732 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
15733
15734         * class.h class.c (mono_class_needs_cctor_run): Moved this method
15735         here from the JIT.
15736
15737         * assembly.h assembly.c: Moved the AOT loading code into an assembly
15738         load hook.
15739
15740 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
15741
15742         * reflection.h reflection.c class.h class.c: Delete duplicate 
15743         definition of mono_type_get_name () from reflection.c and export the
15744         one in class.c.
15745
15746         * class.c: Class loading fixes from Bernie Solomon 
15747         (bernard@ugsolutions.com).
15748
15749         * reflection.c: Endianness fixes from Bernie Solomon 
15750         (bernard@ugsolutions.com).
15751         
15752 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
15753
15754         * assembly.h assembly.c: Define a file format version for AOT
15755         libraries.
15756         
15757         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
15758
15759         * appdomain.h (MonoJitInfo): New field to determine whenever the
15760         code is domain neutral.
15761         
15762 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
15763
15764         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
15765
15766 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
15767
15768         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
15769         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
15770         Avoid caching the result since strings must be domain specific. Fixes
15771         #48050.
15772
15773 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
15774
15775         * marshal.c (mono_marshal_init): Make this callable multiple times
15776         since it is hard to find a correct place to call it.
15777
15778         * object.c (mono_runtime_class_init): Execute static constructors in
15779         the correct appdomain.
15780
15781         * image.c (build_guid_table): Handle the case when multiple images have
15782         the same GUID.
15783
15784 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15785
15786         * icall.c: added a couple of icalls for System.Web.
15787
15788 2003-08-28  Martin Baulig  <martin@ximian.com>
15789
15790         * icall.c (ves_icall_Type_BindGenericParameters): Use
15791         `klass->generic_inst' instead of `&klass->byval_arg' in the
15792         mono_type_get_object() call.  The returned type must be
15793         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
15794
15795 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
15796
15797         * NOTES: New file.
15798
15799         * object.c (mono_class_proxy_vtable): Make it thread safe.
15800
15801         * pedump.c: Fix warning.
15802
15803         * object.c appdomain.h: Get rid of metadata_section. 
15804         It is no longer needed and it was causing deadlocks with domain->lock.
15805
15806         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
15807
15808 2003-08-26  Martin Baulig  <martin@ximian.com>
15809
15810         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
15811
15812 2003-08-26  Martin Baulig  <martin@ximian.com>
15813
15814         * pedump.c (main): Call mono_metadata_init(),
15815         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
15816         and mono_loader_init().
15817
15818 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
15819
15820         * loader.h: Add missing include to fix build.
15821
15822         * image.h: mono_image_load_references is no more.
15823
15824         * assembly.c: Reworked assembly loading to make it really thread safe.
15825         After these changes, the assembly returned by mono_assembly_open is
15826         fully initialized, i.e. all its references assemblies are loaded.
15827
15828         * assembly.c (mono_image_load_references): Renamed to 
15829         mono_assembly_load_references, and made private, since clients no
15830         longer need to call it.
15831
15832         * class.c: Removed calls to mono_assembly_load_references, since it was
15833         a source of deadlocks.
15834
15835         * loader.h loader.c class.h class.c: Protect data structures using a 
15836         new lock, the loader lock.
15837
15838         * class.c (mono_class_setup_vtable): Create temporary hash tables and
15839         GPtrArrays only when needed.
15840
15841         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
15842         into empty structures by mcs. Fixes pinvoke7.cs.
15843         
15844         * domain.c (mono_init): Call a new initialization function.
15845
15846         * appdomain.c (mono_runtime_init): Call the new initializer function
15847         of the marshal module.
15848
15849         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
15850         inserted into empty structures by mcs. Fixes pinvoke7.cs.
15851
15852         * marshal.h marshal.c: Added locks around the wrapper caches to make
15853         this module thread safe.
15854
15855         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
15856         this argument. Fixes pinvoke1.exe.
15857
15858 2003-08-25  Lluis Sanchez <lluis@ximian.com>
15859
15860         * object.h: Added call_type field to MonoMethodMessage and the corresponding
15861         enumeration of values. Removed fields to store remote call output values in
15862         MonoAsyncResult. Not needed any more.
15863         * object.c: Initialize call_type and async_result fields in mono_message_init.
15864         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
15865         dispatching the message.
15866         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
15867         async call to finish. To do it use a message with EndInvoke call type.
15868
15869 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
15870
15871         * loader.h loader.c (mono_method_hash_marhal_info): New function which
15872         determines whenever a method has marshalling info.
15873
15874 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15875
15876         * assembly.c: fix the build on windows.
15877
15878 2003-08-22 Lluis Sanchez <lluis@ximian.com>
15879
15880         * object.cs: Fixed bug #47785.
15881
15882 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
15883
15884         * string-icalls.c (StringReplace): If their are no occurances of
15885         the old string found return a reference to the supplied
15886         string. This saves some memory and matches MS behavoir.
15887         
15888 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15889
15890         * socket-io.c: fixed compilation for systems that define AF_INET6
15891         and don't define SOL_IP/SOL_IPV6.
15892
15893 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
15894
15895         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
15896         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
15897
15898         * rawbuffer.c rawbuffer.h: Make this module thread safe.
15899
15900         * domain.c: Make this module thread safe.
15901
15902         * domain.c (mono_init): Call new initialization function.
15903
15904         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
15905         reference types too. Fixes #38812.
15906
15907         * image.c (mono_image_init): Fixed warnings.
15908
15909         * class.c (mono_class_from_typeref): Handle assembly load failure
15910         correctly.
15911
15912         * appdomain.c (add_assemblies_to_domain): Handle the case when
15913         the references of an assembly are not yet loaded.
15914
15915         * metadata.c image.c assembly.c: Moved initialization of global
15916         variables to a separate function called at startup since lazy 
15917         initialization of these variables is not thread safe.
15918         
15919         * image.c assembly.c: Made this module thread safe by adding locks in 
15920         the appropriate places.
15921
15922         * domain.c (mono_init): Call the new initialization functions of the
15923         three modules.
15924
15925 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
15926
15927         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
15928           make a direct call. It is proxy's work to make the call asynchronous.
15929           mono_delegate_end_invoke(): If the targe is a proxy, just collect
15930           the return values.
15931         * object.cs: mono_method_call_message_new(): read AsyncResult and
15932           state object from parameters list, if this info is requested.
15933         * object.h: Added fields to store remote call output values in
15934           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
15935
15936 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15937
15938         * object.h: add needed fields to MonoThread.
15939         * threads.c, threads.h: allow registering a function to cleanup data
15940         allocated per thread by the JIT.
15941
15942 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15943
15944         * loader.h: portability fix by Bernie Solomon
15945         * <bernard@ugsolutions.com>.
15946
15947 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
15948
15949         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
15950         return a MonoArray. This simplifies the code and also ensures that
15951         the cache allways contains an object reference as a value.
15952
15953         * icall.c (ves_icall_get_parameter_info): Simplified using the new
15954         function.
15955
15956 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15957
15958         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
15959         fixes a problem with byte ordering when getting the address family for
15960         a socket.
15961
15962 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
15963
15964         * .cvsignore: Added monosn.
15965
15966         * reflection.h reflection.c loader.c: Added support for parameter
15967         marshalling to dynamically created types. Fixes #47295.
15968
15969 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
15970
15971         * rand.c: remove useless warnings.
15972
15973 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
15974
15975         * class.c: implemented ldtoken for methods and fieldrefs.
15976
15977 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15978
15979         * threadpool.c: when mono_async_invoke was called, no one took care of
15980         monitoring the queue. So if the method invoked took some time and we
15981         got new async invoke requests after 500 ms (the thread created waited
15982         that long in WaitForSingleObject), the new async invoke was not called
15983         until the previous one finished.
15984
15985         This is fixed now. Thanks to Totte for helping with it.
15986
15987 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15988
15989         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
15990
15991 2003-08-11  Martin Baulig  <martin@ximian.com>
15992
15993         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
15994
15995 2003-08-06  Martin Baulig  <martin@ximian.com>
15996
15997         * mono-debug-debugger.c: Added support for static fields,
15998         properties and methods.
15999
16000 2003-08-06  Martin Baulig  <martin@ximian.com>
16001
16002         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16003         make this work for applications with multiple application domains.
16004
16005 2003-08-04  Martin Baulig  <martin@ximian.com>
16006
16007         * mono-debug-debugger.c: Completely reworked the type support; the
16008         most important thing is that we're now just using one single
16009         `MonoType' instance per type.
16010
16011 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16012
16013         * mono-endian.h, mono-endian.c, icall.c: Added icall
16014         ves_icall_System_Double_AssertEndianity to assert double word endianity
16015         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16016
16017 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16018
16019         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16020         support, icalls and fixes.
16021
16022 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16023
16024         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16025         classes that are a punctuation character in .NET is not the same a
16026         g_unichar_ispunct.
16027
16028 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16029
16030         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16031
16032 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16033
16034         * icall.c: Add new MemCopy internalcall.
16035         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16036         Simplified code; It is not necessary to handle all the cases here,
16037         as the C# code takes care of it.  Only handle the case of the name
16038         resource embedded into the assembly.
16039
16040         Changed signature to return the data pointer and the size of the
16041         data. 
16042
16043 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16044
16045         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16046         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16047
16048 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16049
16050         * socket-io.c: ignore EINTR error in select.
16051
16052 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16053
16054         * class.h, class.c: removed unused subclasses field in MonoClass.
16055
16056 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16057
16058         * icall.c: improve fix of get_base_definition(). If the parent class
16059           doesn't have the mehod, look at the parent of the parent.
16060         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16061           to check if a parameter is an in or out parameter
16062           (PARAM_ATTRIBUTE_IN is not set by default).
16063           mono_method_return_message_restore(): Use mono_class_value_size to
16064           get the size of a value type. mono_type_stack_size (parameterType)
16065           does not return the correct value if parameterType is byRef.
16066           mono_load_remote_field(), mono_load_remote_field_new(),
16067           mono_store_remote_field(), mono_store_remote_field_new():
16068           raise exception if the remote call returns an exception.
16069
16070 2003-07-28  Martin Baulig  <martin@ximian.com>
16071
16072         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16073         method.  This is a wrapper around mono_runtime_invoke() which
16074         boxes the instance object if neccessary.
16075
16076 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16077
16078         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16079         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16080
16081 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16082
16083         * icall.c: disable mcs bug workaround.
16084
16085 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16086
16087         * object.c (mono_runtime_class_init): Take the metadata_section
16088         mutex before obtaining the domain mutex.
16089
16090         * appdomain.h: Added definition of metadata_section mutex here. 
16091
16092         * object.c: define metadata_mutex here.
16093
16094 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16095
16096         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16097         fixed.
16098
16099 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16100
16101         * reflection.c: Fix bug #46669
16102
16103 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16104
16105         * exception.c:
16106         * exception.h:
16107         * icall.c:
16108         * object.h: fill in the type name for TypeLoadException.
16109
16110 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16111
16112         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16113         relationship between TypeBuilders while compiling corlib) and bug
16114         45993 (Array types returned from the runtime while compiling
16115         corlib were from the loaded corlib).
16116
16117 2003-07-22  Martin Baulig  <martin@ximian.com>
16118
16119         * mono-debug-debugger.c: Reworked the type support a bit more;
16120         distinguish between types and classes.
16121
16122 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16123
16124         * icall.c: add IsArrayImpl icall.
16125
16126 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16127
16128         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16129         initializing real_size only once. Also fix bug #46602.
16130
16131 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
16132
16133         * object.c: Renamed mono_metadata_section to metadata_section.
16134
16135 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
16136
16137         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
16138           empty array if the type is an array. Fixed.
16139           ves_icall_MonoMethod_get_base_definition: if the base method
16140           is abstract, get the MethodInfo from the list of methods of
16141           the class.
16142         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16143           and it was 1-based. Fixed in mono_param_get_objects.
16144
16145 2003-07-20  Martin Baulig  <martin@ximian.com>
16146
16147         * mono-debug.h: Set version number to 31.
16148         (mono_debug_init): Added `MonoDomain *' argument.
16149
16150         * mono-debug-debugger.c: Reworked the type support; explicitly
16151         tell the debugger about builtin types; pass the `klass' address to
16152         the debugger.
16153
16154 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16155
16156         * image.c: Allow new metadata tables to be loaded without a
16157         warning. Also update the warning message to give the new constant value.
16158                 
16159 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16160
16161         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16162         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16163         array type representation changes.
16164
16165 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16166
16167         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16168         on Environment.Exit () call.
16169
16170 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16171
16172         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16173         requires a matching corlib.
16174
16175 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16176
16177         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16178           Committed again without the CRs.
16179         
16180 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16181
16182         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16183           getting it from the "this" socket instance. Did not work
16184           if the socket is a subclass of Socket.
16185           Also fixed bug #35371.
16186
16187 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16188
16189         * metadata.c: fixed size for TypedByRef.
16190         * loader.c: when searching for a method, consider the vararg amrker.
16191         * unicode.c, decimal.c: constify some arrays.
16192
16193 2003-07-15  Dick Porter  <dick@ximian.com>
16194
16195         * socket-io.c: Fixed compilation for gcc < 3.2.
16196
16197         Fixed compilation for machines that don't have AF_INET6 (thanks to
16198         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16199
16200         Fixed compile warnings.
16201         
16202         Fixed formatting and line endings.
16203
16204 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16205
16206         * socket-io.h:
16207         * socket-io.c: Added IPv6 support.
16208
16209 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16210
16211         * class.c (mono_class_is_assignable_from): New function to implement
16212         the is_assignable_from logic. Used by mono_object_isinst, 
16213         Type::IsAssignableFrom () and the interpreter.
16214
16215         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16216         Object, even interfaces.
16217         
16218         * object.c (mono_object_isinst): Implement in terms of 
16219         is_assignable_from.
16220
16221         * icall.c (ves_icall_type_is_assignable_from): New icall.
16222
16223 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16224
16225         * domain.c (foreach_domain): fix compiler warning.
16226
16227 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16228
16229         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16230         not available on all plattforms
16231
16232 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16233
16234         * image.h image.c: Store the metadata version string in MonoImage.
16235         * icall.c: New icall to retrieve the image version.
16236         * reflection.c (create_dynamic_image): Fill in the image version field
16237         * reflection.c (build_compressed_metadata): Use the image version
16238         from the image structure.
16239
16240 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16241
16242         * appdomain.c: modified comment.
16243         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
16244         That will be its last iteration when mono_gc_cleanup is called from
16245         mono_runtime_cleanup and before the domain is unloaded.
16246
16247         Fixes bug #45962.
16248
16249 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
16250
16251         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
16252         attributes.
16253
16254 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16255
16256         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
16257         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
16258         Bernie Solomon <bernard@ugsolutions.com>.
16259
16260 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16261
16262         * object.c, object.h: provide mono_object_new_fast() for faster
16263         allocation in some special cases.
16264
16265 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
16266
16267         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
16268         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
16269
16270 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
16271
16272         * threadpool.c: fix leaks.
16273
16274 2003-07-01  Dick Porter  <dick@ximian.com>
16275
16276         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
16277         using MonoGHashTables.  Fixes threadpool bug posted to list.
16278
16279 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16280
16281         * image.h, image.c: added support to load an assembly from a byte array.
16282         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
16283         assembly bundle support.
16284
16285 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
16286
16287         * threadpool.c (mono_thread_pool_add): keep a reference to the
16288         AsyncResult to prevent GC
16289
16290 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16291
16292         * class.c: leak fix.
16293
16294 2003-06-25  Dick Porter  <dick@ximian.com>
16295
16296         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
16297         for the async object, the WaitHandle object will close the handle.
16298         Fixes bug 45321.
16299
16300 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16301
16302         * class.c: in mono_array_class_get (), lookup from the hash with the
16303         same type we insert: this works around a bug in
16304         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
16305         lluis. The real fix will have to wait for after the release.
16306
16307 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16308
16309         * icall.c: fix memory leak when getting type members.
16310
16311 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16312
16313         * reflection.c: added more pubtoken special cases.
16314
16315 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
16316
16317         * class.c: handle field offset correctly when class size
16318         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
16319
16320 2003-06-20  Martin Baulig  <martin@ximian.com>
16321
16322         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
16323         *image' field.
16324
16325 2003-06-20  Martin Baulig  <martin@ximian.com>
16326
16327         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
16328
16329 2003-06-20  Martin Baulig  <martin@ximian.com>
16330
16331         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
16332         just distinguish between variables in registers and variables at
16333         an offset relative to a register.
16334
16335 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16336
16337         * icall.c: #ifdef out latest changes until mcs is fixed.
16338
16339 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16340
16341         * icall.c: return members in metadata order.
16342
16343 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16344
16345         * icall.c: avoid infinite loop in GetTimeZoneData.
16346
16347 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
16348
16349         * icall.c: added Marshal.Prelink/All icalls.
16350
16351 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16352
16353         * object.c, object.h: fix warnings and do some overflow checking
16354         when creating arrays.
16355
16356 2003-06-17  Dick Porter  <dick@ximian.com>
16357
16358         * file-io.h:
16359         * file-io.c: File attributes need to be tweaked slightly when
16360         passed from the managed to the w32 world.
16361
16362 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16363         * profiler.h profiler-private.h profiler.c: Rework last patch
16364         based on suggestion by Paolo.
16365         
16366 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16367
16368         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
16369         instruction level coverage data collection.
16370         * profiler.h profiler.c (: Added new callback function which can be
16371         used by the profiler to limit which functions should have coverage
16372         instrumentation.
16373         * profiler.c (mono_profiler_load): Call g_module_build_path to
16374         generate the file name of the profiler library.
16375
16376 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16377
16378         * profiler.c, profiler.h, profiler-private.h: added basic block 
16379         coverage profiling API.
16380
16381 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
16382
16383         * reflection.c (mono_reflection_create_runtime_class): Add support
16384         for events in dynamically generated code.
16385
16386         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
16387         not allocated.
16388
16389 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16390
16391         * icall.c: when getting timezone info, return reasonable values if we
16392         can't get the actual data.
16393
16394 2003-06-14  Dick Porter  <dick@ximian.com>
16395
16396         * threads.c (start_wrapper): Remove the reference to the thread
16397         object in the TLS data, so the thread object can be finalized.
16398         This won't be reached if the thread threw an uncaught exception,
16399         so those thread handles will stay referenced :-( (This is due to
16400         missing support for scanning thread-specific data in the Boehm GC
16401         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
16402
16403 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
16404
16405         * reflection.c: ensure streams and tables are first allocated with
16406         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
16407
16408 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16409
16410         * icall.c: fixed GetElementType for byrefs (bug# 44792).
16411
16412 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
16413
16414         * reflection.c (mono_reflection_create_runtime_class): Add support for
16415         properties to dynamically created classes.
16416         * reflection.c: Fix a few places where non-MonoObjects were inserted
16417         into the tokens hashtable.
16418
16419 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16420
16421         * object.c: some support to handle out of memory exceptions.
16422
16423 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
16424
16425         * marshal.c (mono_marshal_get_native_wrapper): support reference
16426         return types
16427
16428 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16429
16430         * object.h, object.c: more portability stuff from Bernie Solomon.
16431         Unexport mono_object_allocate(). Added mono_object_unbox ().
16432         Set exitcode when an unhandled exception is thrown.
16433
16434 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
16435
16436         * marshal.c (mono_marshal_get_native_wrapper): use custom
16437         marshaler for return types.
16438
16439 2003-06-10  Dick Porter  <dick@ximian.com>
16440
16441         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
16442         ip_mreq is available
16443
16444 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
16445
16446         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
16447         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
16448         by Bernie Solomon <bernard@ugsolutions.com>.
16449
16450 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
16451
16452         * gc.c (mono_gc_init): Avoid error message on shutdown when
16453         GC_DONT_GC=1 is used.
16454
16455         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
16456         New icall to return the GUID of a module.
16457
16458 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16459
16460         * class.c: ensure instance size always includes the parent's size
16461         even whem class size is set explicitly (fixes bug#44294).
16462
16463 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16464
16465         * profiler.h, profiler.c: made the simple profiler thread-safe,
16466         get more accurate timing info. Allow the loading of an
16467         externally-developed profiler module.
16468
16469 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
16470
16471         * marshal.c (mono_marshal_get_native_wrapper): improved
16472         class/byref arguments.
16473         (mono_marshal_get_native_wrapper): better string marshaling support.
16474
16475 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
16476
16477         * class.c: ensure .pack and .size are handled correctly and
16478         simplified layout of static fields.
16479
16480 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
16481
16482         * appdomain.c
16483         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
16484
16485         * loader.c (mono_lookup_pinvoke_call): look for modules in the
16486         current directory (fix bug 44008)
16487
16488 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
16489
16490         * marshal.c (mono_marshal_get_native_wrapper): started support for
16491         custom marshalers.
16492         (mono_delegate_to_ftnptr): consider marshalling specifications
16493
16494 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
16495
16496         * reflection.c, reflection.h: emit custom marshal info.
16497
16498 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16499
16500         * object.c: free the GError.
16501         * icall.c: added CloseEvent_internal.
16502         * threads.[ch]:
16503         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
16504         call.
16505
16506 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
16507
16508         * loader.c (mono_method_get_signature): Add support for dynamic
16509         assemblies.
16510
16511 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
16512
16513         * reflection.c: fixed bug #43905.
16514
16515 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16516
16517         * class.c, domain.c, icall.c, metadata.h, object.h: support for
16518         handling TypedReference and ArgIterator.
16519         * loader.c, loader.h: added function to get signature at call site.
16520
16521 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16522
16523         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
16524         data readonly. Buglets and warning fixes. Some MethodSpec support.
16525
16526 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16527
16528         * class.h, class.c, object.c: remove relative numbering support.
16529
16530 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
16531
16532         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
16533         free the string, until we get a chance to fix Gtk#
16534
16535 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16536
16537         * marshal.c: revert last patch.
16538
16539 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
16540
16541         * icall.c: updates for new mono_class_vtable() not calling
16542         the type constructor anymore.
16543
16544 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
16545
16546         * object.h, object.c: separate vtable creation from type
16547         initialization. Make running the .cctor thread safe.
16548
16549 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
16550
16551         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
16552
16553 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
16554
16555         * loader.c (mono_get_method): consider calling convention
16556
16557 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
16558
16559         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
16560         to return the invisible global type for a module.
16561
16562         * reflection.c (mono_image_build_metadata): Emit global fields too.
16563
16564 2003-05-20  Peter Williams  <peterw@ximian.com>
16565
16566         * loader.c (mono_lookup_internal_call): Add a few newlines.
16567
16568 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
16569
16570         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
16571         literal strings.
16572
16573         * appdomain.c (set_domain_search_path): Recalculate search path when
16574         AppDomainSetup.PrivateBinPath changes.
16575
16576         * object.c (mono_class_compute_gc_descriptor): It turns out some
16577         parts of the class libs (like System.Thread) holds pointers to
16578         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
16579         to treat native int a pointer type here.
16580         
16581 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
16582
16583         * appdomain.h, domain.c: add hashtable for jump target resolution.
16584
16585 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
16586
16587         * reflection.h reflection.c icall.c: Added new icalls 
16588         GetManifestResourceInfoInternal, GetModulesInternal and support
16589         infrastructure.
16590
16591 2003-05-16  Dick Porter  <dick@ximian.com>
16592
16593         * icall.c:
16594         * file-io.h:
16595         * file-io.c: Implement System.IO.MonoIO::GetTempPath
16596
16597 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
16598
16599         * object.c: mono_store_remote_field: little fix to previous patch.
16600
16601 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16602
16603         * class.c: add constructors to array classes.
16604         * icall.c: special case array construction for InternalInvoke (),
16605
16606 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
16607
16608         * class.h class.c reflection.c object.c: Added support for field
16609         defaults in dynamically generated classes.
16610
16611 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
16612
16613         * reflection.c: properly encode charset for ddlimport.
16614
16615 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
16616
16617         * threads.c: allow compiling without GC.
16618
16619 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16620
16621         * appdomain.h, object.c, object.h, threads.c, threads.h: added
16622         handling of thread static data.
16623
16624 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16625
16626         * reflection.h, reflection.c: added mono_custom_attrs_free ().
16627
16628 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
16629
16630         * class.c (mono_array_class_get): always set the serializable flags
16631         (mono_array_class_get): always set the SEALED attribute for array types
16632
16633 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
16634
16635         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
16636         attributes (fix for bug 42021).
16637
16638 2003-05-12  Dick Porter  <dick@ximian.com>
16639
16640         * gc.c: Don't run finalizers when the finalizer thread is
16641         finishing up, because the default domain has already been
16642         destroyed.
16643
16644 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
16645
16646         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
16647         value is null, we should throw an exception.   This is slightly
16648         different than the other conventions used for the constructor.
16649
16650 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16651
16652         * socket-io.c: fixed windows build.
16653
16654 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16655
16656         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
16657
16658 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
16659
16660         * object.c (mono_string_new_wrapper): Compatibility fix for MS
16661         compilers.
16662
16663 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
16664
16665         * class.c (mono_class_layout_fields): Add experimental GC aware
16666         auto layout facility. Requires class library changes to work correctly.
16667
16668         (mono_class_setup_vtable): Avoid overriding explicit interface
16669         method implementations. Fixes iface3.exe test.
16670
16671         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
16672         object reference.
16673         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
16674         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
16675
16676         * metadata.h: Add new type classification macro which determines
16677         whenever the type holds an object reference.
16678
16679 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
16680
16681         * marshal.c (mono_marshal_get_native_wrapper): cleanups
16682
16683 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
16684
16685         * gc.c (finalizer_thread): Work around a GC bug.
16686
16687 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
16688
16689         * marshal.c (emit_struct_conv): allow unions
16690
16691         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
16692
16693 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
16694
16695         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
16696
16697 2003-05-06  Martin Baulig  <martin@ximian.com>
16698
16699         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
16700
16701 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16702
16703         * socket-io.c:
16704         (Select_internal): allow NULLs, don't create arrays if not needed.
16705         Coupled with Socket.cs changes.
16706
16707         * threadpool.c:
16708         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
16709         register a finalizer for it that will close the semaphore handle. This
16710         fixes the leak and make Lupus' test run with > 4080 loops.
16711
16712 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
16713
16714         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
16715         Jerome Laban (bug #42287)
16716
16717 2003-05-02  Martin Baulig  <martin@ximian.com>
16718
16719         * debug-mono-symfile.h
16720         (MonoSymbolFile): Moved declaration into mono-debug.h.
16721         (MonoDebugMethodJitInfo): Likewise.
16722         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
16723         argument.
16724         (_mono_debug_address_from_il_offset): Take a
16725         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
16726
16727         * mono-debug.h
16728         (MonoDebugDomainData): New struct.
16729         (mono_debug_get_domain_data): New function.
16730         (mono_debug_add_method): Take an additional `MonoDomain *'
16731         argument.
16732         (mono_debug_source_location_from_address): Likewise.
16733         (mono_debug_il_offset_from_address): Likewise.
16734         (mono_debug_address_from_il_offset): Likewise.
16735
16736 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
16737
16738         * reflection.c: one more check for null type in custom attrs.
16739
16740 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16741
16742         * reflection.c: avoid warning (comparison is always false due to limited
16743         range of data type).
16744
16745 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16746
16747         * icall.c: throw an exception in Type.GetField if the argument 'name'
16748         is NULL.
16749
16750 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
16751
16752         * reflection.c: fixed handling of enums in named arguments to custom
16753         attributes (bug #42123).
16754
16755 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
16756
16757         * reflection.c: use the right array element type and handle
16758         a null for a Type argument, too.
16759
16760 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
16761
16762         * reflection.c: handle arrays as arguments to custom attributes.
16763
16764 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16765
16766         * reflection.c: handle a string value in a custom attr
16767         ctor that takes an object.
16768
16769 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
16770
16771         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
16772         (fix bug #42063)
16773
16774 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
16775
16776         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
16777
16778 2003-04-27  Martin Baulig  <martin@ximian.com>
16779
16780         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
16781         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
16782         MONO_DEBUGGER_EVENT_BREAKPOINT.
16783         (mono_breakpoint_trampoline_code): Removed.
16784         (mono_debugger_event_handler): The last argument is now a
16785         `guint32'.
16786         (mono_debugger_insert_breakpoint_full): Removed the
16787         `use_trampoline' argument.
16788         (mono_debugger_method_has_breakpoint): Likewise.
16789         (mono_debugger_trampoline_breakpoint_callback): Renamed to
16790         mono_debugger_breakpoint_callback(); take the method and
16791         breakpoint number as arguments.
16792
16793 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
16794
16795         * metadata.c: fix off by one when loading parameters attributes.
16796
16797 2003-04-24  Martin Baulig  <martin@ximian.com>
16798
16799         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
16800
16801 2003-04-24  Martin Baulig  <martin@ximian.com>
16802
16803         * mono-debug-debugger.c: Moved all code which interacts with the
16804         Mono Debugger here.
16805
16806         * debug-mono-symfile.c: This code now just deals with the symbol
16807         file itself, the debugger code is now in mono-debug-debugger.c.
16808
16809 2003-04-23  Martin Baulig  <martin@ximian.com>
16810
16811         * mono-debug.c (mono_debug_source_location_from_il_offset):
16812         New method; like mono_debug_source_location_from_address(), but
16813         takes an IL offset instead of a machine address.
16814
16815 2003-04-23  Martin Baulig  <martin@ximian.com>
16816
16817         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
16818         `line' field; this is now computed by the debugger.
16819
16820 2003-04-23  Martin Baulig  <martin@ximian.com>
16821
16822         * mono-debug.[ch]: New files.  This is the new debugging interface.
16823
16824         * mono-debug-debugger.[ch]: New files.  Moved all code which
16825         interacts with the Mono Debugger here.
16826
16827 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
16828
16829         * domain.c (mono_init): initialize mono_defaults.monitor_class
16830
16831 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
16832
16833         * reflection.c (method_encode_code): Add a spicy exception to help
16834         future compiler authors.
16835
16836 2003-04-21  Martin Baulig  <martin@ximian.com>
16837
16838         * icall.c
16839         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16840         Make this work with relative pathnames; g_filename_to_uri() needs
16841         an absolute filename.
16842
16843 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
16844
16845         * icall.c: Track name changes in Object and ValueType.
16846
16847 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
16848
16849         * metadata.c (mono_type_stack_size): size should be a multiple of
16850         sizeof (gpointer)
16851
16852 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16853
16854         * gc.c:
16855         (internal_domain_finalize): moved into mono_domain_finalize. No need
16856         to create another thread because the finalizers will be run in the
16857         finalizer thread.
16858         
16859         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
16860         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
16861         to be run (MS does this too).
16862
16863 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
16864
16865         * object.c (mono_class_compute_gc_descriptor): Update comment.
16866
16867         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
16868
16869         * image.h: Add synchronized wrapper cache.
16870
16871         * image.c (do_mono_image_open): Initialize cache.
16872
16873         * reflection.c (create_dynamic_mono_image): Initialize cache.
16874
16875 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16876
16877         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
16878         ves_icall_System_Buffer_ByteLengthInternal.
16879
16880 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16881
16882         * reflection.c: setup klass->nested_in earlier. Allow
16883         a dash in the assembly name.
16884
16885 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
16886
16887         * metadata.c (mono_type_to_unmanaged): dont access
16888         type->data.klass for MONO_TYPE_OBJECT
16889         (mono_type_to_unmanaged): consider System.Delegate class
16890
16891 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
16892
16893         * class.c: just setup supertypes in the proper place instead of
16894         initializing the full element class for arrays.
16895
16896 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16897
16898         * class.c: ensure the element class of arrays is initialized.
16899         Setup the supertype info for array classes, too.
16900
16901 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
16902
16903         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
16904
16905 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16906
16907         * Makefile.am: re-added -m option when running cygpath. This way,
16908         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
16909         separator.
16910         * mono-config.c: same codepath for locating mono config file for WIN32
16911         and the rest.
16912         * assembly.c: if mono_assembly_setrootdir is called, don't override
16913         the value set.
16914
16915 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16916
16917         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
16918         MONO_ASSEMBLIES variable.
16919
16920 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
16921
16922         * icall.c: added Assembly::GetNamespaces() icall.
16923
16924 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16925
16926         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
16927
16928 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
16929
16930         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
16931         * object.c: fixed bug in the construction of vtable for proxies
16932
16933 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
16934
16935         * object.c (mono_array_new): Mark mono_array_new as an icall.
16936
16937 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16938
16939         * class.c: fixed test for public method when overriding interfaces.
16940         Closes bug #40970.
16941
16942 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16943
16944         * appdomain.h, domain.c: added mono_domain_foreach() to
16945         be able to access the currently loaded appdomains.
16946         * object.c: make string interning work across sppdomains.
16947         Mark some functions for use as icalls.
16948
16949 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
16950
16951         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
16952
16953         * reflection.h reflection.c: Allocate long living data using 
16954         GC_MALLOC_ATOMIC so the collector does not need to scan it.
16955
16956         * reflection.c: Double the allocation size in streams instead of
16957         increasing it, to prevent unneccesary copying on large assemblies.
16958         
16959         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
16960         creation if the assembly does not have the Run flag set.
16961
16962 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
16963
16964         * class.h: avoid the C++ keywords in header files (Jerome Laban
16965         spotted and fixed this).
16966
16967 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16968
16969         * object.c:
16970         (mono_unhandled_exception): fill in the arguments for the
16971         UnhandledException event. Only trigger that event for the default
16972         domain (as MS does).
16973
16974 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
16975
16976         * object.c: Improve typed allocation stuff based on suggestions from
16977         Paolo. Also turn it on if the GC library supports it.
16978
16979 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
16980
16981         * object.c object.h class.h: Added experimental typed allocation
16982         facility using the interfaces in gc_gcj.h.
16983
16984         * os/gc_wrapper.h: Added new include files.
16985         
16986 2003-04-03  Martin Baulig  <martin@ximian.com>
16987
16988         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
16989         which is not yet enabled by default.
16990
16991         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
16992         functions.
16993         (mono_gc_lock, mono_gc_unlock): New static functions.
16994
16995         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
16996         functions; stop/start the world for the garbage collector.  This
16997         is using the windows API; we need to complete the SuspendThread()/
16998         ResumeThread() implementation in the io-layer to make this work on Unix.
16999         (mono_gc_push_all_stacks): New public function; tells the garbage
17000         collector about the stack pointers from all managed threads.
17001
17002 2003-04-03  Martin Baulig  <martin@ximian.com>
17003
17004         * object.h (MonoThread): Added `gpointer stack_ptr'.
17005
17006         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17007
17008 2003-04-03  Martin Baulig  <martin@ximian.com>
17009
17010         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17011
17012 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17013
17014         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17015         field.last.
17016
17017 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17018
17019         * loader.c (mono_lookup_internal_call): Report the corlib that is
17020         out of sync.
17021
17022 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17023
17024         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17025         System.DBNull (it's class not valuetype).
17026
17027 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17028
17029         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17030         if the array method was already assigned a token (fixes bug#40646).
17031
17032 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17033
17034         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17035         if no assembly is given.
17036
17037 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17038
17039         * metadata.h: Added the new tables.
17040
17041         * row-indexes.h: Added definitions for new tables.
17042
17043         * metadata.c: Add schemas for new tables, and add support for
17044         computing the sizes of them.
17045
17046         * class.c: Update for handling the new type cases.
17047
17048 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17049
17050         * metadata.h (MONO_TYPE_IS_VOID): new macro
17051
17052 2003-03-31  Martin Baulig  <martin@ximian.com>
17053
17054         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17055
17056         * threads.c (mono_thread_new_init): Call `thread_created' in the
17057         mono_thread_callbacks.
17058
17059 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17060
17061         * loader.h: added marshalbyrefobject_class to mono_defaults
17062         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17063         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17064           generation of output parameters.
17065           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17066         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17067           contextbound and the target object belongs to the context of the caller.
17068         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17069         * object.c: Implemented support for interfaces and abstract classes
17070           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17071           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17072
17073 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17074
17075         * class.h class.c (mono_class_is_subclass_of): New function.
17076         
17077         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17078         routines for most common case (calls from ArrayList::ToArray).
17079
17080         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17081         routine so programs which call Environment::Exit() can be profiled.
17082
17083         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17084         Added MONO_ARCH_SAVE_REGS.
17085
17086         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17087
17088 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17089
17090         * blob.h: Add a couple of new MonoType types definitions.
17091
17092         * tabledefs.h: Add a couple of new call convs.
17093
17094 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17095
17096         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17097         the layout of the class.
17098
17099         * reflection.c (alloc_table): double the size on overflow to avoid
17100         unnecessary copying.
17101
17102         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17103         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17104         null so it can be garbage collected.
17105         
17106 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17107
17108         * reflection.c (mono_reflection_get_type): Return the resolved type
17109         only if it is in the assembly we searched.
17110
17111         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17112
17113         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17114         method.
17115
17116 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17117
17118         * appdomain.c:
17119         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17120         the right one is 'file:///blah', but MS allows it.
17121         * assembly.c:
17122         (mono_assembly_open): allow 'file://blah'
17123
17124         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17125
17126 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17127
17128         * socket-io.c: fixes bug #40310.
17129
17130 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
17131
17132         * reflection.c (mono_reflection_parse_type): handle deeply nested
17133         types correctly.
17134
17135         * reflection.c (mono_image_create_token): Use unique token values
17136         since they will be put into a hash table.
17137
17138         * class.c (mono_class_setup_vtable): If a method occurs in more than
17139         one place in the vtable, and it gets overriden, then change the
17140         other occurances too.
17141
17142         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17143         object as return type.
17144
17145 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17146
17147         * icall.c: Deleted "ToString" implementation for double and float
17148         because they are full implemented in managed code.
17149
17150 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17151
17152         * reflection.c, reflection.h: implemented and exported functions
17153         to retrieve info about custom attributes.
17154
17155 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17156
17157         * appdomain.c: moved Uri handling to assembly.c
17158         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17159         work when using a file Uri in *nix and windows.
17160
17161         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17162         GetReferencedAssemblies.
17163
17164 2003-03-18  Dick Porter  <dick@ximian.com>
17165
17166         * icall.c: Rename a couple of internal calls
17167
17168         * threads.c: Set the thread state to Stopped when a thread exits.
17169         Fixes bug 39377.
17170
17171 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17172
17173         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17174         New icall.
17175
17176         * object.c (mono_class_vtable): fix warning.
17177
17178 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17179
17180         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17181
17182         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17183         memory.
17184         (method_encode_clauses): Create exception info structures in the right
17185         order.
17186         (mono_reflection_setup_internal_class): Initialize supertypes field.
17187
17188         * class.c object.c: Handle interfaces which implement other interfaces 
17189         correctly.
17190
17191         * class.h class.c: Move the supertypes array initialization code into 
17192         a separate function so it can be used for dynamic types too. Also call
17193         it earlier, in mono_class_init(), since it can be used before the
17194         type is initialized.
17195
17196 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17197
17198         * Makefile.am:
17199         * assembly.c:
17200         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17201
17202         * appdomain.c:
17203         * appdomain.h:
17204         * marshal.c:
17205         * object.c: remove warnings.
17206
17207 2003-03-13  Martin Baulig  <martin@ximian.com>
17208
17209         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17210         (MonoDebugLexicalBlockEntry): New types.
17211
17212         * debug-mono-symfile.c
17213         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17214
17215 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17216
17217         * process.c: ret can be any non-zero value accroding to MS doc.
17218
17219 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17220
17221         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17222         fixing a warning for a miss-used prototype, would have cause
17223         random memory corruption.
17224
17225 2003-03-07  Martin Baulig  <martin@ximian.com>
17226
17227         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17228         getting really annoying ....
17229
17230 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17231
17232         * reflection.c (fixup_method): added support for array methods.
17233
17234 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17235
17236         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17237         (pointed out by Michael Adams).
17238
17239 2003-03-04  Dick Porter  <dick@ximian.com>
17240
17241         * icall.c: Temporarily reverted the Double and Single ToString()
17242         change, because it broke nunit.
17243
17244 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
17245
17246         * object.h, threads.h: make include files compatible with C++
17247         (patch by Jerome Laban <jlaban@wanadoo.fr>).
17248
17249 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17250
17251         * icall.c: Erased ToString helper functions for Double and Single.
17252         Now, that implementations ar all in managed code (Double and Single
17253         Formatters).
17254
17255 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
17256
17257         * appdomain.c: Added method for initializing the default context of
17258         a domain. Added internal call for getting the default context.
17259         * appdomain.h: Added context variable in MonoDomain struct.
17260         * domain.c: mono_domain_set also sets the default context of the domain
17261         * icall.c: Mapped internal method InternalGetDefaultContext.
17262         * object.c: mono_object_get_virtual_method returns always a remoting
17263         wrapper if the object is a transparent proxy.
17264         mono_runtime_invoke_array: when creating an object by calling the
17265         constructor, if the created object is a proxy, then the constructor should
17266         be called using the a remoting wrapper.
17267
17268 2003-03-03  Dick Porter  <dick@ximian.com>
17269
17270         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
17271         variable so it compiles on solaris.  Problem spotted by
17272         Christopher Taylor <ct@cs.clemson.edu>
17273
17274 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17275
17276         * appdomain.c:
17277         (get_info_from_assembly_name): don't leak value.
17278
17279         * icall.c:
17280         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
17281         result.
17282
17283 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
17284
17285         * assembly.c: export mono_image_load_references ().
17286         * class.c: handle function pointers. mono_class_from_name() now
17287         supports nested type names directly.
17288
17289 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
17290
17291         * reflection.h reflection.c: Encode already created dynamic methods 
17292         and fields correctly as a DEF instead of a REF.
17293
17294         * reflection.c: Get rid of the force_ref argument to 
17295         mono_image_typedef_or_ref since it was wrong in the first place.
17296
17297         * string-icalls.c: add error checking to string constructors according
17298         to the MSDN docs.
17299
17300         * reflection.c: Emit types in the order their TypeBuilders were 
17301         created. Previously, a new table index was assigned to each type before
17302         the tables were emitted. This was wrong because the signature blob
17303         might already refer to a type by its original table index.
17304
17305 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
17306
17307         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
17308         change.
17309         
17310 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17311
17312         * Makefile.am: make assemblies dir have \ instead of / on windows.
17313
17314 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
17315
17316         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
17317         iterate over the NESTEDCLASS table using a linear search since the
17318         table is not guaranteed to be sorted by the secondary key.
17319
17320         * class.c (mono_class_create_from_typedef): fixed up call to
17321         mono_metadata_nesting_typedef.
17322         
17323 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
17324
17325         * marshal.c (mono_string_to_byvalstr): clear the memory as
17326         suggested by Jerome Laban <jlaban@wanadoo.fr>
17327
17328 2003-02-26  Dick Porter  <dick@ximian.com>
17329
17330         * process.c: Cope with padding in .rsrc blocks
17331
17332 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17333
17334         * metadata.h: reverted the filter_len change, it breaks reflection
17335         
17336 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17337
17338         * metadata.h: added a new field to store the filter_len
17339         
17340
17341 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
17342
17343         * reflection.c: handle custom attributes for types and members
17344         created with Reflection.Emit (bug#38422).
17345
17346 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
17347
17348         * reflection.c: define RTSpecialName automatically for constructors for
17349         compatibility with MS.NET.
17350
17351         * reflection.c (mono_reflection_create_runtime_class): initialize
17352         nested_in field of dynamically created classes.
17353
17354 2003-02-22  Martin Baulig  <martin@ximian.com>
17355
17356         * debug-mono-symfile.h: Incremented version number.
17357
17358 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17359
17360         * object.h icall.c process.c: fix warnings.
17361
17362 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17363
17364         * appdomain.h appdomain.c:
17365         (mono_domain_try_type_resolve): split the 
17366         name_or_tb argument into a name and a tb argument.
17367         (mono_domain_has_type_resolve): new function to check whenever the
17368         application has registered a TypeResolve event handler.
17369         
17370         * icall.c reflection.h reflection.c: move the type resolve logic into
17371         mono_reflection_get_type () so it will be invoked when 
17372         Assembly::GetType () is called.
17373
17374         * reflection.c:
17375         (mono_reflection_get_type): renamed to get_type_internal.
17376         (mono_reflection_get_type): fixed type name generation so it works 
17377         for nested types too.
17378         (mono_reflection_get_type): call has_type_resolve () to avoid the 
17379         costly type name generation if there is no resolve event handler.
17380
17381 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17382
17383         * class.c, image.c: load exported types from file references.
17384
17385 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
17386
17387         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
17388           used to cache the managed methods used to create proxies and make 
17389           remote invocation of methods.
17390         * class.h: Added in MonoVTable a flag to indicate that a class needs 
17391           to be remotely created.
17392         * object.c: Modified the method mono_class_vtable(). It now initializes 
17393           the remote flag of the vtable. Modified mono_object_new_specific(), 
17394           so now it checks the remote flag.
17395         * icall.c: Added a couple of internal methods, one for enabling instance 
17396           creation interception for a type, and one for creating objects bypassing
17397           the remote check.
17398
17399 2003-02-18  Martin Baulig  <martin@ximian.com>
17400
17401         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
17402         New interncall to get a method's metadata token.
17403
17404         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
17405         New interncall for the debugger.
17406
17407 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
17408
17409         * class.c (mono_class_setup_vtable): allocate supertype array
17410
17411 2003-02-18  Martin Baulig  <martin@ximian.com>
17412
17413         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
17414
17415 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17416
17417         * reflection.c:
17418         (assembly_name_to_aname): jump over unknown properties (i've found
17419         something like: 'type, assembly, version=xxx, custom=null, public...',
17420         so now will ignore custom=null and still get the rest of the values).
17421
17422 2003-02-17  Dick Porter  <dick@ximian.com>
17423
17424         * threads.c: Have Thread.Start() wait for a semaphore to signal
17425         that the thread has set up all its local data.  This fixes bug
17426         34323, where Abort() raced the new thread's TLS data.
17427
17428         Also removes the handle_store() call from start_wrapper, because
17429         threads are now always created suspended and there is no longer a
17430         race between the parent and child threads to store the info.
17431
17432 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
17433
17434         * image.c: explain the #- heap issue in a message, hopefully
17435         avoiding FAQs on mono-list.
17436
17437 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17438
17439         * icall.c:
17440         (GetEntryAssembly): if the domain has not invoked
17441         AppDomain.ExecuteAssembly yet, return the assembly of the default
17442         AppDomain.
17443
17444 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
17445
17446         * class.c (mono_ldtoken): make it work in dynamic assemblies.
17447
17448 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
17449
17450         * metadata.c, reflection.c: simple speedup to type hash
17451         and equals code.
17452
17453 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
17454
17455         * image.c, image.h, class.c, assembly.c: move module loading
17456         to MonoImage. When loading metadata, consider alignemnet from
17457         the start of metadata, not from the metadata address in memory.
17458
17459 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
17460
17461         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
17462         AssemblyBuilder objects. Factored out custom attribute creation into
17463         a separate function.
17464         (create_custom_attr): new function to create custom attributes.
17465
17466 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
17467
17468         * Makefile.am: Got tired of typing the full pathname to pedump.
17469         Until there is another option, am installing this.
17470
17471 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
17472
17473         * class.c (class_compute_field_layout): always set field->parent 
17474         (mono_ldtoken): use mono_defaults.fieldhandle_class;
17475
17476 2003-02-11  Dick Porter  <dick@ximian.com>
17477
17478         * threads-types.h:
17479         * monitor.c: Rewrote Monitor, making lock much faster and
17480         Pulse/Wait work as specified.  Also uses much fewer handles, and only
17481         creates them as needed.
17482
17483         * exception.c: Added SynchronizationLockException
17484
17485         * threads.c: Deleted old Monitor implementation.  The new one is
17486         in a new file.
17487
17488 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
17489
17490         * class.c: handled TypedReference type code. Set the correct size for
17491         class data. Setup interface_offsets for interface classes, too.
17492
17493 2003-02-09  Martin Baulig  <martin@ximian.com>
17494
17495         * debug-mono-symfile.h: Reflect latest symbol writer changes.
17496
17497 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
17498
17499         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
17500         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
17501         * object.c: fixed mono_object_get_virtual_method () for interfaces.
17502         * verify.c: check for code that runs after the end of the method.
17503
17504 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17505
17506         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
17507         "System.Math::Round2".
17508         * sysmath.h: Added Floor, Round and Round2 definitions.
17509         * sysmath.c: Modified certain functions that were not 100% compliant
17510         with MS.NET (math precision) and added the implementation of Floor,
17511         Round and Round2.
17512
17513 2003-02-07  Martin Baulig  <martin@ximian.com>
17514
17515         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
17516
17517 2003-02-07  Martin Baulig  <martin@ximian.com>
17518
17519         * debug-mono-symfile.c: Reflected latest symwriter changes.
17520         (mono_debug_create_mono_symbol_file): Removed.
17521         (mono_debug_open_mono_symbol_file): Take an argument which
17522         specifies whether to create a dynamic symbol file.
17523
17524 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
17525
17526         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
17527
17528 2003-02-05  Martin Baulig  <martin@ximian.com>
17529
17530         * reflection.c (mono_image_build_metadata): Make this public,
17531         protect it against being called multiple times, don't create
17532         resources and don't build the compressed metadata here.
17533         (mono_image_create_pefile): Do this here.
17534
17535         * icall.c
17536         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
17537
17538 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17539
17540         * socket-io.c: fixed bug #36322.
17541
17542 2003-02-06  Piers Haken <piersh@friskit.com>
17543
17544         * appdomain.[ch]:
17545         * class.h:
17546         * debug-mono-symfile.c:
17547         * icall.c:
17548         * loader.c:
17549         * mono-config.c:
17550         * monosn.c:
17551         * reflection.c:
17552         * socket-io.c: warning cleanups
17553
17554 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
17555
17556         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
17557         function. works like remoting invoke, but does a check for the Proxy first.
17558
17559 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
17560
17561         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
17562
17563 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
17564
17565         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
17566         array of pointers.
17567         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
17568         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
17569
17570         * object.c (mono_store_remote_field_new): used by the new jit
17571         instead of mono_store_remote_field
17572         (mono_load_remote_field_new): used by the new jit
17573         instead of mono_load_remote_field
17574
17575 2003-02-05  Patrik Torstensson
17576
17577         * appdomain.c: changed unload to take the domain id instead
17578         of domain
17579         
17580         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
17581
17582
17583 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17584
17585         * appdomain.c: don't look for assemblies in ApplicationBase if
17586         PrivateBinPathProbe is set.
17587
17588 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17589
17590         * object.c: make the first argument in main_args contain the absolute
17591         path to the assembly. Fixes bug #37511.
17592
17593 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17594
17595         * icall.c: get correct UTC offset for countries not using daylight
17596         time saving. Fixes bug #30030.
17597
17598 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17599
17600         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
17601         and 1 are the family).
17602
17603 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
17604
17605         * icall.c (ves_icall_InternalExecute): removed wrong assertion
17606
17607         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
17608
17609 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
17610
17611         * reflection.c: added support for SignatureHelper tokens, which is
17612         needed by the Calli opcode.
17613
17614         * reflection.h: track changes to SignatureHelper class.
17615
17616         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
17617
17618 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17619
17620         * appdomain.c: fixed loading assemblies from PrivateBinPath.
17621
17622 2003-02-03  Patrik Torstensson
17623         * appdomain.[c|h], domain.c : 
17624          - Added support for getting a domain via domain id
17625          - Support for setting and getting domain from System.AppDomain 
17626            (used in cross appdomain channel)
17627          - Added support for get/set for a MonoAppContext on a thread 
17628            (Context class in System.Runtime.Remoting.Contexts),
17629          - Removed hack in Get/SetData and ExecuteAssembly.
17630         
17631         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
17632         the managed world to get control when a proxy is created.
17633
17634         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
17635         
17636 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
17637
17638         * icall.c
17639         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17640         Populate the codebase field as well.
17641
17642 2003-02-02  Martin Baulig  <martin@ximian.com>
17643
17644         * debug-mono-symfile.c
17645         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
17646         (mono_debug_symfile_add_method): Allow interncalls.
17647
17648 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17649
17650         * icall.c: throw parse exception if strtod fails or the string is empty.
17651
17652 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
17653
17654         * marshal.c: handle object type separately from defined
17655         class types.
17656
17657 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
17658
17659         * marshal.c: handle NATIVE_LPSTR for strings when it's
17660         explicitly specified.
17661
17662 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
17663
17664         * reflection.c, reflection.h, icall.c: setup the reflection
17665         handle cache for ModuleBuilders and AssemblyBuilders.
17666
17667 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
17668
17669         * reflection.c (reflection_methodbuilder_to_mono_method): set
17670         pinvoke flag
17671
17672 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17673
17674         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
17675
17676 2003-01-29  Dick Porter  <dick@ximian.com>
17677
17678         * threads.c: No need for the fake_thread kludge now that Thread
17679         doesn't run a class constructor
17680         
17681 2003-01-29  Dick Porter  <dick@ximian.com>
17682
17683         * threads.c: Use g_direct_hash instead of the rather bogus
17684         g_int_hash
17685
17686 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
17687
17688         * marshal.c (mono_marshal_get_native_wrapper): add check for null
17689         (fix pinvoke12.exe)
17690         (mono_marshal_get_struct_to_ptr): generate valid IL code
17691         (mono_marshal_get_ptr_to_struct): generate valid IL code
17692         (*): correctly set sig->pinvoke, we need to memdup the signature
17693         to do that
17694
17695 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17696
17697         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
17698         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
17699
17700 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
17701
17702         * profiler.c: provide more callers information.
17703
17704 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
17705
17706         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
17707
17708         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
17709
17710         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
17711
17712 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17713
17714         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
17715         exception instead of going into an infinite loop on dates which it 
17716         can't yet handle.
17717
17718         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
17719         out-of-range exception if needed.
17720
17721         * class.c (mono_class_setup_vtable): allow a virtual method to provide
17722         an implementation for an interface method and to override an inherited
17723         method at the same time. 
17724         Imagine a scenario when a virtual method is used to override a
17725         virtual abstract method in a parent class, and this same method 
17726         provides an implementation for an method inherited from an interface. 
17727         In this case, the interface resolution code will set im->slot, which 
17728         means that the virtual method override pass will skip this method 
17729         which means a pointer to the abstract method inherited from the parent
17730         will remain in the vtable of this non-abstract class.
17731
17732         * class.c: (mono_class_setup_vtable): continue search for a real 
17733         method if only an abstract method is found.     
17734
17735 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
17736
17737         * reflection.c: add size to encoding for ByValStr and ByValArray
17738         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
17739
17740 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17741
17742         * class.c (mono_class_setup_vtable): pass the override info as an
17743         argument.
17744
17745         * class.c (mono_class_setup_vtable): set the slot of overriding methods
17746         correctly.
17747         
17748         * reflection.c (ensure_runtime_vtable); add support for method 
17749         overrides.
17750         
17751 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17752
17753         * reflection.c (resolution_scope_from_image): Hack to work to work with
17754         dynamic assemblies.
17755
17756         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
17757         added a 'force_ref' argument to force this function to allways return 
17758         a TypeRef. This is needed by mono_image_get_memberref_token ().
17759         
17760 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17761
17762         * reflection.c (mono_image_get_type_info): interfaces really don't have
17763         a parent.
17764
17765         * reflection.c (mono_image_basic_init): fill out missing fields of
17766         image structure.
17767
17768         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
17769         dynamic assemblies. This is required so dynamic assemblies show up in
17770         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
17771         Type::GetType() etc. This is consistent with MS behaviour.
17772
17773         * image.c image.h reflection.c: add newly created classes to the name 
17774         cache so mono_class_get () will find them.      
17775
17776 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17777
17778         First part of changes to get IKVM.NET running under mono.
17779         
17780         * appdomain.h, appdomain.c: added new function 
17781         mono_domain_try_type_resolve() which will emit TypeResolve events. 
17782         This function will call AppDomain::DoTypeResolve to do the actual work.
17783
17784         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
17785         moved existing code dealing with dynamic tokens to a new function 
17786         called mono_reflection_lookup_dynamic_token (). This function will 
17787         raise TypeResolve events when appropriate. Since reflection.c is not 
17788         part of libmetadata, a new hook function called 
17789         mono_lookup_dynamic_token() is added to class.c which will call this.
17790
17791         * assembly.h assembly.c: make the invoke_load_hook function public,
17792         so it can be called for dynamic assemblies.
17793
17794         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
17795
17796         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
17797         type isn't found.
17798
17799         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
17800         MonoGHashTable, since it contains pointers to objects which the GC 
17801         needs to track.
17802
17803         * assembly.c (search_loaded): remove unused variable.
17804         
17805 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
17806
17807         * object.c: fixed issue exposed by gcc-generated IL programs
17808         that use RVA data for pointers.
17809
17810 2003-01-25  Martin Baulig  <martin@ximian.com>
17811
17812         * threads.c (start_wrapper): Moved the initialization of
17813         `start_func' above the mono_new_thread_init() call to which we
17814         pass it as argument.
17815
17816 2003-01-24  Martin Baulig  <martin@ximian.com>
17817
17818         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
17819         the MonoThread pointer.
17820
17821 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
17822
17823         * icall.c: Rename `PowImpl' to Pow.
17824
17825 2003-01-23  Dick Porter  <dick@ximian.com>
17826
17827         * threads.c (start_wrapper): Create a Thread object if needed, so
17828         the Main() thread can do the class initialisation in a subthread
17829         that has been set up to allow managed code execution.
17830
17831         Pass the thread ID instead of the MonoThread pointer to the thread
17832         start and attach callbacks.  This change is required, because the
17833         jit thread start callback must be called _before_ the Thread
17834         object can be created.
17835         
17836         (mono_thread_init): Removed much object creation code that is no
17837         longer needed.  No managed code is called from here now.
17838
17839         * object.c (mono_runtime_exec_managed_code): Create a subthread
17840         for Main, and call back to the runtime to use it.
17841         Set the exit code when Main exits.
17842
17843         * gc.c: Make sure domain finalisation happens in a subthread.
17844         Re-enable threaded GC, fixing bug 31333 (again).
17845
17846         * environment.c: System.Environment internall calls (so far just
17847         ExitCode is here, the others are still in icall.c)
17848
17849         * appdomain.c (mono_runtime_cleanup): All threads running managed
17850         code should have finished before mono_runtime_cleanup() is
17851         reached, so no need to clean up threads.
17852
17853 2003-01-22  Martin Baulig  <martin@ximian.com>
17854
17855         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
17856         `gpointer func' arguments.      
17857         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
17858         but added `MonoThread *thread' argument.
17859         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
17860
17861         * threads.c (mono_new_thread_init): Added `gpointer func' argument
17862         and pass it to the mono_thread_start_cb callback.
17863         (mono_install_thread_callbacks): New public function to install a
17864         set of callbacks which are set by the debugger.
17865         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
17866
17867 2003-01-22  Martin Baulig  <martin@ximian.com>
17868
17869         * Makefile.am: Install debug-mono-symfile.h.
17870
17871 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
17872
17873         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
17874
17875 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
17876
17877         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
17878         * class.c (mono_ptr_class_get): correctly set access levels of pointers
17879         (mono_array_class_get): correctly set access levels of arrays
17880
17881 2003-01-20      Patrik Torstensson
17882         * image.h (MonoAssemblyName): changed major, minor, build, revision
17883         from signed to unsigned.
17884
17885 2003-01-20  sean kasun <skasun@azstarnet.com>
17886
17887         * reflection.c (load_cattr_value): Now this handles
17888         MONO_TYPE_SZARRAY.  Fixes bug #35629
17889
17890 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
17891
17892         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
17893         integer value
17894
17895 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17896
17897         * decimal.c: fixed bug #26056.
17898
17899 2003-01-17  Martin Baulig  <martin@ximian.com>
17900
17901         * gc.c: Raise an ExecutionEngineException instead of using g_error().
17902
17903 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17904
17905         * exception.[ch]:
17906         (mono_get_exception_type_initialization): new function.
17907
17908         * object.c: throw a TypeInitializationException when an exception is
17909         thrown invoking the class constructor.
17910
17911 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17912
17913         * reflection.c: fixed attribute reading.
17914
17915 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17916
17917         * icall.c:
17918         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
17919         provided, look for the type in the calling assembly and then in
17920         mscorlib; if the assembly name is provided, only try that one.
17921
17922 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
17923
17924         * object.c: register the vtable before there is a chance it's
17925         queried again recursively.
17926
17927 2003-01-13  Duncan Mak  <duncan@ximian.com>
17928
17929         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
17930         gc-internal.h. 
17931         
17932 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
17933
17934         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
17935
17936 2003-01-11  Martin Baulig  <martin@ximian.com>
17937
17938         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
17939         this to 20 for the release.
17940
17941 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
17942
17943         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
17944
17945         * loader.c (mono_method_get_marshal_info): bug fix
17946
17947         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
17948         structures with explicit layout
17949
17950 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
17951
17952         * profiler.c: made the output more readable (and sorted). 
17953         Added caller information for the allocation profiler.
17954
17955 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
17956
17957         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
17958
17959 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17960
17961         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
17962         to get value types.
17963         
17964 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
17965
17966         * object.c, profiler.h, profiler.c, profiler-private.h:
17967         Added object allocation profiler.
17968
17969 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
17970
17971         * reflection.h, reflection.c: handle global methods.
17972         Compress blob entries.
17973
17974 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
17975
17976         * marshal.c: fix compilation.
17977
17978 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
17979
17980         * loader.c (mono_method_get_marshal_info): impl.
17981
17982         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
17983
17984 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17985
17986         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
17987         for reference types.
17988
17989 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
17990
17991         * loader.c: fixed off by one error in loaded parameter names.
17992
17993 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
17994
17995         * marshal.c (mono_marshal_get_icall_wrapper): like
17996         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
17997         instead of a MonoMethod.
17998
17999 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18000
18001         * decimal.c: fixed bug #36537.
18002
18003 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18004
18005         * marshal.c: throw a missing method exception if a
18006         P/Invoke method is not found.
18007
18008 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18009
18010         * icall.c: allow a null this for constructors.
18011
18012 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18013
18014         * icall.c: raise the proper exceptions if the arguments to the
18015         internal Invoke are incorrect.
18016
18017 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18018
18019         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18020
18021 2003-01-03  Martin Baulig  <martin@ximian.com>
18022
18023         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18024
18025 2002-12-31  Martin Baulig  <martin@ximian.com>
18026
18027         * debug-mono-symfile.c: Completely rewrote the type section.
18028         Instead of using individual malloc()ed fields, we use one big
18029         continuous memory area and offsets into this area.
18030         See the comments in the source code for details.
18031
18032 2002-12-30  Martin Baulig  <martin@ximian.com>
18033
18034         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18035
18036 2002-12-30  Martin Baulig  <martin@ximian.com>
18037
18038         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18039         line number table in this data blob instead of using an external
18040         pointer.
18041
18042 2002-12-28  Martin Baulig  <martin@ximian.com>
18043
18044         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18045
18046 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18047
18048         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18049         as a boxed return type.
18050
18051 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18052
18053         * appdomain.c
18054         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18055         g_build_filename to properly get separators on the filename created.
18056
18057         * object.h: Small change, introduce MonoMarshalByRefObject to
18058         track the layout of that structure in the C# universe as we make
18059         changes there.
18060
18061 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18062
18063         * object.c: removed assert to allow static fields on interfaces.
18064         * loader.c: a TypeSpec may be used for any type, not just arrays.
18065
18066 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18067
18068         * class.c, class.h: added mono_class_array_element_size ().
18069         Ignore static methods in interfaces.
18070
18071 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18072
18073         * threads.c: fixed the build under cygwin.
18074
18075 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18076
18077         * reflection.c: handle nullref constants. Allocate keys for
18078         reflection handles with the GC.
18079
18080 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18081
18082         * threads.c, threads.h: added mono_thread_get_abort_signal()
18083         to get a suitable signal for thread abort.
18084
18085 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18086
18087         * metadata.c: fix handling of ExportedType table.
18088
18089 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18090
18091         * icall.c: added WriteWindowsDebugString internal call.
18092
18093 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18094
18095         * reflection.h: added fields to match C# implementation.
18096
18097 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18098
18099         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18100
18101 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18102
18103         * gc.h, gc-internal.h: Rename header for GC internal calls to
18104         gc-internal.h from gc.h as to not clash with Boehm GC having its
18105         header installed as <gc.h> in outside include paths.
18106         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18107         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18108
18109 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18110
18111         * icall.c: assign minor, build and revision in FillName.
18112
18113 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18114
18115         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18116         Added support for running code generated by Reflection.Emit.
18117
18118 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18119
18120         * appdomain.c: check for NULL argument in LoadFrom.
18121
18122 2002-12-10  Dick Porter  <dick@ximian.com>
18123
18124         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18125
18126 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18127
18128         * appdomain.c: fix buglet when building exe file name.  Handle full
18129         assembly name (needed after latest changes to AssemblyName).
18130         * image.c:
18131         (mono_image_close): free some hashtables.
18132
18133 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
18134
18135         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
18136         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
18137         on some systems (redhat 7.3) 
18138
18139 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
18140
18141         * threads.c: delete the critical section of a sync block,
18142         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18143
18144 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18145
18146         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18147
18148 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18149
18150         * appdomain.[ch]: handle the assembly preload event to try loading the
18151         assemblies using the paths we have in the current domain.
18152
18153         * assembly.[ch]: created an assembly preload hook that is called to try
18154         loading the assembly by other means that the ones provided here.
18155
18156         * domain.c: initialize the domain search path.
18157
18158         From now on, assemblies (TODO: except corlib and System) are loaded
18159         according to these rules when using mono_assembly_load ():
18160
18161                 1. It tries to load the assembly from the ApplicationBase
18162                 of the current domain appending .dll and .exe (TODO: have to
18163                 try loading from name/name.dll and name/name.exe).
18164
18165                 2. It tries the search path specified in PrivateBinPath for the
18166                 current domain (if any).
18167
18168                 3. Previous behavior.
18169
18170 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18171
18172         * icall.c: implemented GetInterfaceMap() related icall.
18173         * domain.c, loader.h: load MethodInfo in mono_defaults.
18174
18175 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18176
18177         * gc.c: disable the finalizer thread for now, untill all the issues
18178         with it are resolved.
18179
18180 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18181
18182         * string-icalls.c: handle embedded nulls in string ctor when the
18183         length is specified.
18184
18185 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18186
18187         * class.c: look for explicit interface implementation in parent
18188         classes, too.
18189
18190 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18191
18192         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18193
18194 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18195
18196         * gc.c: protect handles with a critical section.
18197
18198 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18199
18200         * icall.c:
18201         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18202         parameters. If no assembly specified, try getting the type from all
18203         the assemblies in the current domain, else, load the assembly and get
18204         the type from it.
18205
18206 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18207
18208         * marshal.c: applied patch from Aleksey Demakov that fixes
18209         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18210
18211 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18212
18213         * icall.c: fixed get_location.
18214
18215 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18216
18217         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18218         declarations to make it work with older gcc. 
18219
18220         * loader.c (mono_get_method): set signature->pinvoke for native calls
18221
18222 2002-11-20  Dick Porter  <dick@ximian.com>
18223
18224         * threads.c (mono_thread_init): Set the main thread's handle
18225
18226 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18227
18228         * gc.c: allow compilation without GC support. Changed to match the
18229         mono coding style.
18230
18231 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18232
18233         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18234
18235 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18236
18237         * reflection.c: set a public key token on the core assemblies.
18238
18239 2002-11-18  Dick Porter  <dick@ximian.com>
18240
18241         * threads.c: Split out some thread initialisation so that other
18242         files can set the start callback function.
18243
18244         * gc.c: Run finalisers in a separate thread, to avoid stack
18245         overflow.  Fixes bug 31333.
18246
18247         * appdomain.c: Set up GC finalisation thread.
18248
18249         * reflection.c: 
18250         * object.c: 
18251         * domain.c: Use gc.h macros for GC_malloc
18252         
18253 2002-11-15  Dick Porter  <dick@ximian.com>
18254
18255         * threadpool.c: 
18256         * threads.c:
18257         * appdomain.c: Removed mono_runtime_init_with_attach(),
18258         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
18259         merging the extra parameter with the existing function.  Removed
18260         unneeded code in mono_thread_attach().
18261
18262 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
18263
18264         * image.c (mono_image_loaded_by_guid): a method to get loaded
18265         images by guid. 
18266         (load_metadata_ptrs): we store the guid as string.
18267
18268 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
18269
18270         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
18271
18272         * metadata.c (mono_guid_to_string): imported method form Zoltan
18273         Varga (slightly modified)
18274
18275         * assembly.c (mono_assembly_open): load precompiled code
18276
18277         * loader.h (MonoMethod): we store the method token for use in the
18278         aot compiler. 
18279
18280 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18281
18282         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
18283         the hook function called when an assembly is loaded.
18284         
18285         * domain.c: Modified file.
18286         (mono_domain_assembly_load): removed hash table insertion of assemblies.
18287
18288         Fixes bug #33196.
18289
18290 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
18291
18292         * reflection.c: Map PEFileKind to the value expected by the WinNT
18293         image loader. 
18294
18295 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18296
18297         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
18298         Read until the buffer is filled completely.
18299
18300 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18301
18302         * icall.c: implemented MonoType.InternalGetEvent ().
18303
18304 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18305
18306         * appdomain.c: implemented InitAppDomainSetup. Delayed
18307         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
18308         the entry_assembly.
18309
18310         * assembly.c: base_dir is now an absolute path ending with
18311         G_DIR_SEPARATOR.
18312
18313         * icall.c: modified get_location according to the above changes.
18314
18315         * object.c: init AppDomain.SetupInformation for the default domain after
18316         we have the entry assembly.
18317
18318         * domain.c: when unloading a domain, setup = NULL.
18319
18320 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
18321
18322         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
18323
18324 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
18325
18326         * object.h, object.c: introduced mono_object_get_virtual_method ()
18327         to lookup the method invoked on an object when a callvirt is done on
18328         a method.
18329         * icall.c: make MethodInfo::Invoke() always do a virtual call.
18330
18331 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18332
18333         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
18334         current domain when loaded an assembly and failed to load it.
18335
18336         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
18337
18338 2002-10-31  Dick Porter  <dick@ximian.com>
18339
18340         * icall.c: 
18341         * file-io.h: 
18342         * file-io.c: Return the error status in a parameter, as the
18343         GetLastError() value has long since been blown away if we try and
18344         look it up in a subsequent internal call invocation.  Delete the
18345         GetLastError() internal call, because it's useless.
18346
18347 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
18348
18349         * class.[ch]: added cast_class to fix bug 29517
18350
18351 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
18352
18353         * marshal.c: create valid IL code in the filter clause:
18354         the new JIT is less forgiving:-)
18355
18356 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18357
18358         * icall.c: removed get_property internal call.
18359
18360 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
18361
18362         * appdomain.h domain.c: Added an ID to appdomains.
18363         
18364         * threads.c threads.h icall.c: Implement icall
18365         Thread:GetDomainID(), and remove unused icall 
18366         CurrentThreadDomain_internal.
18367
18368 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18369
18370         * icall.c: Don't recurse through the base types in GetConstructor.
18371         Fixes bug #32063. 
18372
18373 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18374
18375         * mempool.h, mempool.c: added mono_mempool_empty() and
18376         mono_mempool_stats().
18377
18378 2002-10-23  Dick Porter  <dick@ximian.com>
18379
18380         * file-io.c: 
18381         * file-io.h: 
18382         * icall.c: Added MonoIO.GetFileType internal call
18383
18384 2002-10-17  Dick Porter  <dick@ximian.com>
18385
18386         * appdomain.c (mono_runtime_cleanup): Don't signal the async
18387         delegate semaphore before waiting for all threads to finish,
18388         because new threads can also call async delegates.  Fixes bug
18389         32004.
18390
18391         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
18392         of 3 seconds, in case another async job is queued.  (This part is
18393         needed because the bug fix reintroduced the 3s exit lag.)  This
18394         makes the mono_runtime_shutdown flag superfluous.
18395
18396 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18397
18398         * reflection.c: include ehader size in method section headers.
18399         Really check for suplicated modules entries.
18400
18401 2002-10-17  Martin Baulig  <martin@gnome.org>
18402
18403         * debug-mono-symfile.c: Added back support for locals.
18404
18405 2002-10-14  Martin Baulig  <martin@gnome.org>
18406
18407         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
18408         MONO_TYPE_VOID.
18409
18410 2002-10-14  Martin Baulig  <martin@gnome.org>
18411
18412         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
18413         mono_class_get() instead of looking in the class cache. 
18414
18415 2002-10-13  Martin Baulig  <martin@gnome.org>
18416
18417         * debug-mono-symfile.c: Set version number to 28, include the
18418         signature in method names.
18419
18420 2002-10-13  Martin Baulig  <martin@gnome.org>
18421
18422         * debug-mono-symfile.h: Set version number to 27.
18423
18424 2002-10-11  Martin Baulig  <martin@gnome.org>
18425
18426         * gc.c: Don't register/unregister NULL pointers as disappearing links.
18427
18428 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18429
18430         * metadata.c, metadata.h: added helper function to allocate signatures.
18431
18432 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18433
18434         * icall.c: added internal call to get the location of machine.config.
18435
18436 2002-10-08  Martin Baulig  <martin@gnome.org>
18437
18438         * debug-mono-symfile.c: Ignore classes with a pending init for the
18439         moment.
18440
18441 2002-10-03  Dick Porter  <dick@ximian.com>
18442
18443         * threads.c: Freebsd pthread_t is a pointer
18444
18445 2002-10-03  Dick Porter  <dick@ximian.com>
18446
18447         * socket-io.c: Implemented GetHostName_internal
18448
18449 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18450
18451         * mono-config.c:
18452         (mono_config_parse_file): don't leak the text.
18453
18454 2002-10-02  Martin Baulig  <martin@gnome.org>
18455
18456         * debug-mono-symfile.c: Added support for methods.
18457
18458 2002-10-01  Martin Baulig  <martin@gnome.org>
18459
18460         * debug-mono-symfile.c: Don't emit methods and line numbers for
18461         the dynamic symbol file, just write the type table.  We can easily
18462         have an external helper program which creates a symbol file for an
18463         IL file.        
18464
18465 2002-10-01  Dick Porter  <dick@ximian.com>
18466
18467         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
18468         Only add the handle to the cleanup array when we're about to
18469         launch the thread.  Bug 31425 deadlocked when the test was run on
18470         mono under w32.
18471
18472 2002-10-01  Martin Baulig  <martin@gnome.org>
18473
18474         * debug-mono-symfile.c: Added support for properties.
18475
18476 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18477
18478         * reflection.c: unaligned store fix from Mark Crichton
18479         <crichton@gimp.org>.
18480
18481 2002-09-27  Martin Baulig  <martin@gnome.org>
18482
18483         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
18484         New interncall.
18485
18486 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18487
18488         * assembly.h, assembly.c: use a sane API to hook into the assembly
18489         loading process instead of a useless special-purpouse hack
18490         (ngen needs a hook, too, for example).
18491
18492 2002-09-27  Dick Porter  <dick@ximian.com>
18493
18494         * threads.c (mono_thread_init): Call GetCurrentProcess() so
18495         io-layer can set up some process handle info.  Not needed on w32,
18496         but doesn't hurt either.
18497
18498         * process.c: Pass the program name in the second parameter to
18499         CreateProcess, so the path is searched.  Include the working
18500         directory. Implemented process name, process enumeration, and some
18501         process detail internal calls.
18502         
18503         * icall.c: Added internal calls for process lookup, and some
18504         process details
18505
18506 2002-09-26  Martin Baulig  <martin@gnome.org>
18507
18508         * assembly.c (mono_install_open_assembly_hook): New global
18509         function to install a function to be invoked each time a new
18510         assembly is loaded.
18511         (mono_assembly_open): Run this callback function if set.
18512
18513         * debug-mono-symfile.c: Put back line numbers for the dynamic
18514         symbol file and also record the .il file as source file.  This
18515         allows us to install the temporary symbol file as `file.dbg' just
18516         like a compiler-generated one.
18517
18518 2002-09-26  Nick Zigarovich <nick@chemlab.org>
18519
18520         * Corrected typo in gc.c (BOHEM vs BOEHM).
18521
18522 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18523
18524         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
18525         GetProperties. Also avoid calling g_slist_length in GetProperties and
18526         GetMethods.
18527
18528 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18529
18530         * reflection.c: avoid unaligned stores (bug spotted by
18531         Mark Crichton  <crichton@gimp.org>).
18532
18533 2002-09-25  Martin Baulig  <martin@gnome.org>
18534
18535         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
18536         instead of guint64 for addresses and added prologue/epilogue info.
18537
18538 2002-09-25  Martin Baulig  <martin@gnome.org>
18539
18540         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
18541         store line number info.  For the dynamic symbol file, we only need
18542         to provide the JIT generated dynamic line number info for the dynamic
18543         symbol file.
18544
18545 2002-09-25  Martin Baulig  <martin@gnome.org>
18546
18547         * debug-mono-symfile.h: Incremented version number.
18548
18549 2002-09-24  Martin Baulig  <martin@gnome.org>
18550
18551         * class.c (mono_debugger_class_init_func): New global function
18552         pointer variable.
18553         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
18554         call it.
18555
18556         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
18557         function.  This is called via the mono_debugger_class_init_func
18558         hook to add all types to the dynamic type table.
18559         (ves_icall_MonoDebugger_GetType): New interncall to get a class
18560         from its metadata token.
18561
18562         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
18563         New interncall for the debugger.
18564
18565 2002-09-24  Nick Drochak <ndrochak@gol.com>
18566
18567         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
18568         before using it in case it is null.
18569         
18570 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18571
18572         * metadata.c: allow custom modifiers in local var signatures
18573         (bug spotted by Zoltan Varga).
18574
18575 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18576
18577         * class.c: deal with the <Module> class that may have a NULL vtable.
18578         Eliminate warnings.
18579
18580 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18581
18582         * image.c, image.h: more strong name helpers.
18583         * monosn.c: more work: convert pem keys to cryptoapi format.
18584
18585 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18586
18587         * string-icalls.c: speedup IndexOf.
18588
18589 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18590
18591         * icall.c: updates from Zoltan.2.Varga@nokia.com.
18592
18593 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18594
18595         * icall.c: cleanup: use mono_object_domain ().
18596
18597 2002-09-23  Martin Baulig  <martin@gnome.org>
18598
18599         * debug-mono-symfile.c: Improved type support.
18600
18601 2002-09-22  Martin Baulig  <martin@gnome.org>
18602
18603         * debug-mono-symfile.c: Added support for reference types and strings.
18604
18605 2002-09-22  Martin Baulig  <martin@gnome.org>
18606
18607         * debug-mono-symfile.c: Started to work on the type table.
18608
18609 2002-09-21  Martin Baulig  <martin@gnome.org>
18610
18611         * debug-mono-symfile.c: Largely reworked the symbol table format.
18612         The symbol table is now incrementally updated each time a new
18613         method is added.  We're now also using our own magic and version
18614         so that you don't need to recompile all your classes if the
18615         dynamic table changes.
18616         (mono_debug_update_mono_symbol_file): Removed.
18617         (mono_debug_symfile_add_method): New function to add a method.
18618
18619 2002-09-21  Martin Baulig  <martin@gnome.org>
18620
18621         * icall.c
18622         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
18623         New interncall.
18624
18625         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
18626         New interncall to get a method from its metadata token.
18627
18628 2002-09-21  Martin Baulig  <martin@gnome.org>
18629
18630         * debug-mono-symfile.c: Create type table.
18631
18632 2002-09-20  Martin Baulig  <martin@gnome.org>
18633
18634         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
18635
18636 2002-09-20  Martin Baulig  <martin@gnome.org>
18637
18638         * debug-mono-symfile.c: Provide information about params and locals.
18639
18640 2002-09-20  Martin Baulig  <martin@gnome.org>
18641
18642         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
18643         New interncall.
18644
18645         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
18646         interncall to get a method from its metadata token.
18647
18648 2002-09-20  Martin Baulig  <martin@gnome.org>
18649
18650         * debug-mono-symfile.c: Added a few checks for method->header
18651         being non-NULL.  This should never happen, but for the moment
18652         let's use a g_warning() rather than a g_assert().
18653
18654 2002-09-19  Mark Crichton  <crichton@gimp.org>
18655
18656         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
18657         even if support for it isn't present.  Added an #ifdef to fix this.
18658
18659         * socket-io.c: Added checks back for Solaris support.
18660
18661 2002-09-19  Martin Baulig  <martin@gnome.org>
18662
18663         * debug-mono-symfile.c (read_string, write_string): Reflect latest
18664         changes in the symbol file format.
18665
18666 2002-09-18  Martin Baulig  <martin@gnome.org>
18667
18668         * debug-mono-symfile.c: Set version number to 21.
18669
18670 2002-09-18  Dick Porter  <dick@ximian.com>
18671
18672         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
18673         on netbsd.  Fixes bug 30051.
18674
18675 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18676
18677         * reflection.c:
18678         (set_version_from_string): little fix.
18679
18680 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18681
18682         * monosn.c, Makefile.am: added strong name utility.
18683         * reflection.h, reflection.c: implemented delayed signing,
18684         locale, version and hash id assembly attributes.
18685
18686 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18687
18688         * loader.c, metadata.c: load param attributes in signatures.
18689
18690 2002-09-16  Martin Baulig  <martin@gnome.org>
18691
18692         * debug-mono-symfile.c: Added string table with all method names.
18693
18694 2002-09-14  Martin Baulig  <martin@gnome.org>
18695
18696         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
18697         fast method lookup.
18698
18699 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18700
18701         * reflection.c: record the public key token of referenced assemblies.
18702
18703 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18704
18705         * image.c, image.h: added functions to get the strong name and the
18706         public key of an assembly.
18707         * pedump.c: use them.
18708
18709 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
18710
18711         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
18712
18713 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
18714
18715         * marshal.c (mono_marshal_get_managed_wrapper): Added
18716         MONO_TYPE_BOOLEAN 
18717
18718 2002-09-11  Martin Baulig  <martin@gnome.org>
18719
18720         * gc.c: Call GC_unregister_disappearing_link() on all links when
18721         finalizing them, this is necessary to aviod a crash in boehm's
18722         finalize handler.
18723
18724 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18725
18726         * gc.c: handle GetTarget for finalized objects spotted and fixed by
18727         nick@chemlab.org.
18728
18729 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18730
18731         * icall.c: implemented MonoType::Module.
18732         * reflection.c, reflection.h: mono_module_get_object () from
18733         Tomi Pakarinen <tomi.pakarinen@welho.com>.
18734
18735 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18736
18737         * icall.c: ignore overridden methods in GetMethods ().
18738         Fix for FieldInfo::SetValue().
18739         * object.c: handle float/double in runtime invoke.
18740
18741 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18742
18743         * object.c: allow a constructor to be called again on an object.
18744
18745 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18746
18747         * class.h, class.c: move field layout code to it's own function and
18748         export it. Get an interface id earlier. Move fields in MonoClass
18749         so they are more cache friendly and align the bitfields.
18750         * loader.c: temporary handle get_param_names() for a runtime method.
18751         * reflection.c, reflection.h: more code to handle runtime creation of
18752         types.
18753
18754 2002-09-09  Martin Baulig  <martin@gnome.org>
18755
18756         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
18757         signature with the pinvoke field being set for the actual call.
18758
18759 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18760
18761         * icall.c: removed some unused icalls. Start of map of glib charsets
18762         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
18763
18764 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18765
18766         * debug-helpers.c: break infinite loop (found and fixed by
18767         Holger Arnold <harnold@gmx.de>).
18768
18769 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18770
18771         * icall.c: target may be null in create_delegate.
18772
18773 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18774
18775         * marshal.c: handle a boolean return type.
18776
18777 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18778
18779         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
18780
18781 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18782
18783         * gc.c: fix weakreferences.
18784
18785 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18786
18787         * icall.c: added icall to get default codepage.
18788
18789 2002-09-03  Dick Porter  <dick@ximian.com>
18790
18791         * threads.h: 
18792         * threads.c: Use MonoThread instead of MonoObject where
18793         apropriate.
18794
18795         Store running thread objects in a hash table, so that we have all
18796         the info to hand when waiting for them to finish
18797         (means we don't need OpenThread() any more, so mingw builds should
18798         be fully functional again.)
18799
18800         * verify.c:
18801         * object.h: Added thread ID to MonoThread
18802
18803 2002-09-03  Martin Baulig  <martin@gnome.org>
18804
18805         * icall.c (System.Reflection.Assembly::get_location): New interncall.
18806
18807 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18808
18809         * icall.c: fixed leak in get_temp_path. Thanks lupus.
18810
18811 2002-09-03  Martin Baulig  <martin@gnome.org>
18812
18813         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
18814         argument to store the end address of the disassembled instruction.
18815
18816         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
18817         here from debug-symfile.h.
18818         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
18819         JIT into this struct.
18820         (MonoSymbolFile): Added `char *image_file' field.
18821         (MonoDebugGetMethodFunc): Removed.
18822         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
18823         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
18824         (mono_debug_find_method): New method.
18825
18826         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
18827         create a full symbol file.
18828         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
18829         and static symbol files.
18830         (mono_debug_find_method): The symbol file keeps an internal method hash,
18831         call this to get a MonoDebugMethodInfo from a MonoMethod.
18832
18833         * debug-symfile.[ch]: Removed.
18834
18835 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
18836
18837         * image.c (do_mono_image_open): Remove linker version check.
18838
18839 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
18840
18841         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
18842         wrappers for instance methods.
18843         
18844 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18845
18846         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
18847
18848 2002-08-28  Dick Porter  <dick@ximian.com>
18849
18850         * Makefile.am: Export HOST_CC for w32 builds
18851
18852 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18853
18854         * file-io.c process.c: MonoString are null terminated, no
18855         need for mono_string_to_utf16() anymore.
18856
18857 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18858
18859         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
18860
18861 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
18862
18863         * icall.c, reflection.h: speedup System.MonoType.
18864
18865 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18866
18867         * reflection.c: allow null as the value of a string argument in
18868         custom attributes constructors.
18869
18870 2002-08-27  Martin Baulig  <martin@gnome.org>
18871
18872         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
18873         `trampoline_address' field.
18874
18875 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
18876
18877         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
18878         check (fixes bug #29486) 
18879
18880 2002-08-27  Martin Baulig  <martin@gnome.org>
18881
18882         * debug-mono-symfile.c: Changed the file format in a way that allows us
18883         open it read-only and to use a specially malloced area for all the
18884         dynamic data.  We can now also generate a symbol file on-the-fly if we're
18885         debugging IL code and there is no MCS generated symbol file for it.
18886
18887 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18888
18889         * object.c: added a define for a good string and array
18890         creation speedup (not enabled by default because we need to deal with
18891         the synch stuff).
18892
18893 2002-08-26  Martin Baulig  <martin@gnome.org>
18894
18895         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
18896         function to create a dynamic symbol file.  This is used by the
18897         debugger to create a symbol file for IL code on-the-fly.
18898
18899 2002-08-26  Martin Baulig  <martin@gnome.org>
18900
18901         * loader.c (mono_lookup_pinvoke_call): Include the error message
18902         from g_module_error() in the error message.
18903
18904 2002-08-24  Martin Baulig  <martin@gnome.org>
18905
18906         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
18907         function to update the symbol file.  The symbol file is mmap()ed
18908         writable, but private.  This allows us to install the symbol file
18909         together with the assembly.
18910
18911 2002-08-24  Martin Baulig  <martin@gnome.org>
18912
18913         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
18914         but they can read the new symbol file format which mcs is now creating.
18915
18916         * debug-symfile.c (mono_debug_find_source_location): Moved to
18917         debug-mono-symfile.c; this is now operating on the new symbol file.
18918
18919 2002-08-23  Martin Baulig  <martin@gnome.org>
18920
18921         * debug-helpers.c (mono_method_desc_from_method): New function to get
18922         a MonoMethodDesc from a MonoMethod.
18923
18924 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18925
18926         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
18927         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
18928
18929 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18930
18931         * string-icalls.[ch]: make helper methods static.
18932
18933 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18934
18935         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
18936         types to it and to SetValueInternal.
18937
18938         * object.c: Moved handle_enum label to its proper place. This was the
18939         f... bug! ;-)
18940
18941         This time i compiled mcs and gtk-sharp and they both work.
18942
18943 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18944
18945         * icall.c: reverted partially my previous patch until 
18946         object.c:set_value handles enums correcly.
18947
18948 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18949
18950         * icall.c:
18951         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
18952         (ves_icall_System_Environment_get_MachineName): removed warning when
18953         compiling under cygwin.
18954
18955 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18956
18957         * object.c: fixed field_get_value() for reference types.
18958
18959 2002-08-22  Dick Porter  <dick@ximian.com>
18960
18961         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
18962         Don't free a buffer while it's still needed.  Patch from Jonathan
18963         Liger <Jonathan.liger@wanadoo.fr>
18964
18965 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
18966
18967         * icall.c (ves_icall_System_Environment_get_Platform): Add new
18968         internal call.
18969
18970 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
18971
18972         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
18973         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
18974
18975         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
18976         we call unmanaged code which throws exceptions.
18977
18978 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18979
18980         * appdomain.h: added per-domain entry_assembly.
18981         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
18982         arguments.
18983         * icall.c: Assembly::GetEntryAssembly icall.
18984         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
18985         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
18986
18987 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18988
18989         * appdomain.h, gc.c: added mono_domain_finalize ().
18990
18991 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18992
18993         * object.c:
18994         (mono_print_unhandled_exception): changed g_warning by g_printerr
18995         because g_log has a 1024 characters limit (yeah, i got a big stack
18996         trace). Don't print exception name, that should be in ToString 
18997         returned string.
18998
18999 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19000
19001         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19002         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19003
19004 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19005
19006         * object.c:
19007         (mono_print_unhandled_exception): after previous commit, i realized
19008         that MS calls ToString on the exception. I changed this function to
19009         do that. This way we get stack_trace for free.
19010
19011 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19012
19013         * object.c:
19014         (mono_print_unhandled_exception): invoke Message property instead of
19015         getting 'message' field from Exception. Don't allocate memory for
19016         'trace' and 'message' if not needed.
19017
19018 2002-08-18  Dick Porter  <dick@ximian.com>
19019
19020         * unicode.c: Fix asserts to match Encoder.cs checks
19021
19022 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19023
19024         * marshal.c: fix unaligned store issue and a few wrong
19025         opcode argument types.
19026
19027 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19028
19029         * icall.c: added GetUninitializedObjectInternal internal call.
19030
19031 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19032
19033         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19034         to the right domain.
19035
19036 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19037
19038         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19039
19040         * class.c (class_compute_field_layout): set blittable to false for Strings
19041
19042         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19043
19044 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19045
19046         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19047         first chunk of code to create types at runtime. Code to
19048         handle ReflectedType/DeclaringType. Make reflection handles
19049         domain specific.
19050
19051 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19052
19053         * class.c: set correct name in arrays.
19054
19055 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19056
19057         * appdomain.c (mono_domain_transfer_object): make it work with
19058         valuetypes. bug fixes.
19059
19060 2002-08-12  Dick Porter  <dick@ximian.com>
19061
19062         * object.h: Rename some parameters to avoid c++ keywords (Patch
19063         from Joseph Wenninger <kde@jowenn.at>)
19064
19065 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19066
19067         * icall.c: added icall to implement Assembly.GetFile*.
19068
19069 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19070
19071         * reflection.h, reflection.c: code to embed managed resources.
19072
19073 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19074
19075         * class.c: move all the type size stuff into
19076         class_compute_field_layout().
19077
19078 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19079
19080         * class.c: ensure enums have always the correct instance size.
19081         * unicode.c: remove wrong assert.
19082
19083 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19084
19085         * assembly.c: fix mem corruption issue.
19086         * image.h, image.c: added mono_image_get_resource () to access
19087         managed resources.
19088         * icall.c: implemented Assembly.EntryPoint property and some
19089         Managed Resources related internalcalls.
19090
19091
19092 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19093
19094         * image.c, image.h: impemented mono_image_get_entry_point ().
19095         * appdomain.c: use mono_image_get_entry_point.
19096
19097 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19098
19099         * reflection.c: support the object type argument when loading
19100         custom attributes.
19101
19102 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19103
19104         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19105         String as return type.
19106
19107 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19108
19109         * reflection.c: fix encoding of named args for custom attrs to match
19110         the ms implementation. Read them back when instantiating custom
19111         attributes.
19112
19113 2002-08-02  Radek Doulik  <rodo@ximian.com>
19114
19115         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19116         by Dietmar as quick fix
19117         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19118         16 as stack size, used on more places as quick fix before Dietmar
19119         will fix it properly
19120
19121 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19122
19123         * object.h, object.c: added accessors for fields and properties.
19124
19125 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19126
19127         * class.c, class.h: made mono_class_get_field_from_name ()
19128         loop on parent types.
19129         Added mono_class_get_property_from_name ().
19130
19131 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19132
19133         * class.c, class.h: move the code to setup the type vtable in its own
19134         function so that it can be reused also for types created at runtime.
19135         Eliminate the "class" identifier from the header file.
19136         * reflection.c: setup the vtable for enums so that we can create
19137         objects for use in SetConstant ().
19138
19139 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
19140
19141         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
19142         instead of the delegate itself as this pointer (bug #28383)
19143
19144 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19145
19146         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19147         conversions.
19148
19149 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19150
19151         * loader.c: don't set the pinvoke bit on icalls.
19152
19153 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19154
19155         * debug-helpers.c (mono_method_full_name): only print a number to
19156         indicate wrapper type (so that the output is more readable in traces).
19157
19158 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19159
19160         * class.c (mono_class_init): include method override patch from Paolo
19161
19162 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19163
19164         * icall.c: fixed GetTypeCode().
19165
19166 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19167
19168         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19169         use real delegate invoke function to make it work with multicast
19170         delegates (fix bug# 28291).
19171
19172 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19173
19174         * object.c: load constant strings.
19175
19176 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19177
19178         * reflection.c: no magic numbers.
19179         * tabledefs.h: security action enum.
19180
19181 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19182
19183         * assembly.c: fix possible memory corruption.
19184
19185 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19186
19187         * reflection.h, reflection.c: added support for linking resources.
19188         * verify.c: check we have an updated corlib.
19189
19190 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19191
19192         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19193         string arrays.
19194         (mono_marshal_string_array): null terminate unmanaged string arrays.
19195         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19196
19197 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19198
19199         * icall.c: Type.GetType () can now return also types from the
19200         calling assembly.
19201
19202 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19203
19204         * loader.h, loader.c: stack walking support.
19205         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19206         GetCallingAssembly.
19207
19208 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19209
19210         * marshal.c: added optimisations for blittable types 
19211
19212         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19213         (mono_class_setup_mono_type): set blittable attribute for single
19214         and double.
19215
19216         * marshal.c (mono_string_utf8_to_builder): impl.
19217         (mono_string_builder_to_utf8): impl.
19218         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19219
19220 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19221
19222         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19223         (mono_marshal_get_managed_wrapper): impl. byref types
19224
19225 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19226
19227         * icall.c:
19228         (search_method): don't display debug message. 
19229
19230 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19231
19232         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19233
19234 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19235
19236         * appdomain.c: set the missing filename when throwing exception.
19237
19238 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19239
19240         * metadata.c (mono_type_size): code cleanup
19241         (mono_type_stack_size): removed some test code
19242
19243 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
19244
19245         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
19246         mono_get_exception_file_not_found now.
19247
19248         * exception.c (mono_exception_from_name_two_strings): New version
19249         that will call a constructor with two string arguments. 
19250         (mono_get_exception_file_not_found): New helper routine, used to
19251         report file-not-found errors.
19252
19253 2002-07-20  Dick Porter  <dick@ximian.com>
19254
19255         * process.h:
19256         * process.c: Pass file handles to CreateProcess
19257         
19258         * icall.c:
19259         * file-io.h:
19260         * file-io.c: Implemented CreatePipe
19261
19262 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19263
19264         * metadata.c (mono_get_param_info): set alignment for value types
19265
19266 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19267
19268         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
19269         Constify mono_domain_assembly_open().
19270         * loader.c: handle null namespace in icalls.
19271
19272 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19273
19274         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
19275         (emit_str_to_ptr_conv): marshal object as structs
19276
19277         * metadata.c (mono_type_to_unmanaged): marshal object as structs
19278
19279         * marshal.c (mono_marshal_get_runtime_invoke): support value types
19280
19281 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
19282
19283         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
19284         (mono_marshal_get_native_wrapper): we an now return value types
19285
19286 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19287
19288         * verify.c: more checks implemented.
19289
19290 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
19291
19292         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
19293         (fix bug #27695)
19294         (mono_marshal_get_native_wrapper): allow byref arguments
19295         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
19296         impl. PtrToStringXXX methods
19297         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
19298         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
19299         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
19300         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
19301         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
19302
19303 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19304
19305         * reflection.c: fix buglet in parsing an assembly name.
19306
19307 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19308
19309         * marshal.c (emit_ptr_to_str_conv): first impl.
19310
19311 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19312
19313         * object.c, class.h: cache the vtable in the class as suggested by
19314         vargaz@freemail.hu (Zoltan Varga).
19315
19316 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19317
19318         * class.h, loader.c: added mono_field_from_token().
19319         * verify.c: first cut of type checking code.
19320
19321 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19322
19323         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
19324
19325 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
19326
19327         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
19328         (fix bug #27782)
19329         (mono_marshal_get_remoting_invoke): impl.
19330         (mono_delegate_begin_invoke): impl.
19331         (mono_mb_emit_save_args): impl.
19332         (mono_delegate_end_invoke): impl.
19333         (mono_marshal_get_delegate_begin_invoke):
19334         (mono_marshal_get_delegate_end_invoke):
19335         (mono_marshal_get_delegate_invoke): generate a special name for
19336         those methods (including the signature) and associate them whith
19337         the delegate class. 
19338
19339 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
19340
19341         * reflection.[ch]: 
19342         (mono_reflection_type_from_name): now it has a MonoImage parameter
19343         which is used as the default image to search the type in. If the image
19344         is NULL or getting the type from it fails, it defaults to corlib.
19345
19346         * icall.c: changed 1 call to mono_reflection_type_from_name to match
19347         new parameter.
19348
19349 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19350
19351         * reflection.c: update the parameter table index.
19352
19353 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19354
19355         * domain.c: don't include the mark byte in the string hash.
19356
19357 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19358
19359         * icall.cs: icall for Type.GetTypeCode ().
19360         * verify: a couple of fixes and disabled local initialization checks.
19361
19362 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
19363
19364         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
19365
19366         * debug-helpers.c (mono_method_full_name): print the type of the
19367         runtime wrapper
19368
19369         * metadata.c (mono_signature_hash): a hash function for signatures
19370         (mono_signature_hash): better hash algorithm
19371
19372         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
19373
19374         * debug-helpers.c (mono_method_full_name): this can now generate
19375         method names with signatures
19376
19377         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
19378         method dont have this pointers.
19379
19380 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19381
19382         * reflection.c: fixup typebuilder tokens.
19383         * image.c: fix buglet.
19384         * marshal.h: remove whitespace.
19385         * metadata.h, metadata.c: reinstate code that was removed.
19386         * verify.c: handle catch directives and fix another couple of bugs.
19387
19388 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
19389
19390         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
19391         (mono_marshal_get_native_wrapper): make it comp. with the old code
19392         (mono_marshal_get_native_wrapper): support boolean
19393         (mono_marshal_get_managed_wrapper): support more types
19394
19395 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
19396
19397         * class.c (class_compute_field_layout): compute class->blittable attribute.
19398
19399 2002-07-09  Dick Porter  <dick@ximian.com>
19400
19401         * threads.c: Make the thread cleaning up cope with threads that
19402         call ExitThread()
19403
19404 2002-07-08  Radek Doulik  <rodo@ximian.com>
19405
19406         * reflection.c (method_encode_code): use non-translated values to
19407         compute finally_start, this fixes exception handling on ppc, yay!
19408
19409         * decimal.h (struct signscale): fix endianess
19410
19411 2002-07-07  Radek Doulik  <rodo@ximian.com>
19412
19413         * reflection.c: swap box_val and not val
19414
19415 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19416
19417         * reflection.c, reflection.h: handle full assembly info in type name.
19418         Handle Type arguments when loading custom attributes.
19419         * icall.c: updated to use new mono_reflection_type_from_name () method.
19420
19421 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19422
19423         * loader.c:
19424         (method_from_memberref): also print assembly name when method not found.
19425
19426 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19427
19428         * icall.c:
19429         (ves_icall_TypeGetProperties): fixed bug #27473. 
19430
19431 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19432
19433         * reflection.c: display image name and token when cannot find the
19434         .ctor for an attribute.
19435
19436 2002-07-05  Martin Baulig  <martin@gnome.org>
19437
19438         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19439
19440 2002-07-04  Dick Porter  <dick@ximian.com>
19441
19442         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
19443         compile on mingw.  This will cause mingw builds to not wait for
19444         subthreads to terminate after the main thread does.  I've lodged a
19445         bug with the mingw developers for them to wrap OpenThread().
19446
19447 2002-07-03  Dick Porter  <dick@ximian.com>
19448
19449         * threads.c: Store thread IDs instead of handles, because
19450         GetCurrentThread() returns a pseudohandle and therefore stores
19451         useless values.  mono_thread_cleanup() continues checking the
19452         array of threads until it is empty, to cope with subthreads
19453         spawning new threads after the main thread has finished.
19454
19455         * profiler.h:
19456         * profiler.c:
19457         * profiler-private.h: Pass the thread ID to thread profiler
19458         functions, instead of a handle
19459
19460 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19461
19462         * verify.c: fixes to make it more usable.
19463         * pedump.c: added --verify code to verify IL code in an assembly.
19464
19465 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19466
19467         * reflection.c: turn errors into warnings to allow compiling corlib.
19468
19469 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19470
19471         * reflection.c: add special cases to compile corlib.
19472
19473 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19474
19475         * reflection.c: handle properties with only a set method.
19476
19477 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19478
19479         * opcodes.h: add enum with opcodes in opval order.
19480
19481 2002-07-01  Dick Porter  <dick@ximian.com>
19482         
19483         * object.h:
19484         * object.c (mono_runtime_run_main): Removed unneeded argument
19485
19486 2002-06-28  Martin Baulig  <martin@gnome.org>
19487
19488         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19489
19490 2002-06-27  Dick Porter  <dick@ximian.com>
19491
19492         * threads.c: Store the handle in both the parent thread and in the
19493         subthread, to minimise the time between starting a new thread and
19494         storing its ID.
19495
19496 2002-06-26  Dick Porter  <dick@ximian.com>
19497
19498         * appdomain.c (mono_runtime_cleanup): Close the socket library
19499         after all the threads have finished, not before
19500
19501 2002-06-26  Martin Baulig  <martin@gnome.org>
19502
19503         * debug-symfile.c (mono_debug_find_source_location): Added
19504         `guint32 *line_number' argument.  If it's not NULL, store the line number
19505         there and return the file name without the line number.
19506
19507 2002-06-25  Dick Porter  <dick@ximian.com>
19508
19509         * icall.c:
19510         * process.h:
19511         * process.c: Process forking and other support functions
19512
19513 2002-06-25  Dick Porter  <dick@ximian.com>
19514
19515         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
19516         things dont happen when the image is closed.
19517         (mono_image_lookup_resource): Walk the resource section looking
19518         for a particular entry
19519
19520         * cil-coff.h: PE resource section decoding
19521
19522 2002-06-25  Dick Porter  <dick@ximian.com>
19523         
19524         * assembly.h:
19525         * assembly.c: 
19526         (mono_assembly_foreach): Accessor functions to walk the list of
19527         loaded assemblies
19528         (mono_assembly_set_main):
19529         (mono_assembly_get_main): Process methods need to know which
19530         assembly is the "main" one
19531
19532         * object.c (mono_runtime_run_main): Record the main assembly
19533
19534         * debug-helpers.c: Fix typo
19535
19536 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
19537
19538         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
19539         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
19540
19541 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19542
19543         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
19544
19545 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
19546
19547         * image.c (do_mono_image_open): Initialize reference count,
19548         otherwise we leak the MonoImage.
19549
19550 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19551
19552         * reflection.c: small tweak to handle self-hosting.
19553
19554 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19555
19556         * reflection.c: fix type name parse code.
19557
19558 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19559
19560         * reflection.c: break out of the loop.
19561         * image.c: special case corlib.
19562
19563 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19564
19565         * reflection.c: add all the custom attrs at the end to ensure the
19566         ctors have been properly initialized when the attributes are defined
19567         in the current assembly.
19568
19569 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19570
19571         * reflection.c: handle correctly multiple-nested types.
19572
19573 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19574
19575         * row-indexes.h: fix typos.
19576         * reflection.c: adjust for typos and fix method_def_or_ref
19577         encoding in MethodImpl table.
19578
19579 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19580
19581         * reflection.c: fix entry point patching (thanks Serge!).
19582
19583 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
19584
19585         * verify.c: add check for System.Exception
19586
19587 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19588
19589         * image.c, class.c: minifix for code just c&p'ed.
19590         * reflection.c: warning fix.
19591         * object.h, loader.h, domain.c: load also StringBuilder.
19592
19593 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19594
19595         * marshal.h, marshal.c: some support code to handle complex marshaling.
19596
19597 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19598
19599         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
19600         Better signatures with vtable error dump.
19601
19602 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
19603
19604         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
19605
19606 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
19607
19608         * icall.c (ves_icall_Type_GetField): impl.
19609
19610 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19611
19612         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
19613         to retrieve a marshal description blob for a field or param.
19614
19615 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19616
19617         * reflection.h, reflection.c: change order of nested type emission
19618         to avoid table corruption. The NestedTypes table is sorted.
19619         * icall.c: change order of GetConstructor results to workaround mcs bug.
19620
19621 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19622
19623         * reflection.h, reflection.c: handle field and param marshal
19624         information.
19625
19626 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19627
19628         * icall.c, marshal.c marshal.h: more Marshal class implementation.
19629
19630 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19631
19632         * reflection.c: fix call convention.
19633
19634 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19635
19636         * reflection.h, reflection.c: mono_image_get_memberref_token()
19637         takes a type instead of a class, now. Added
19638         mono_image_get_array_token() to create tokens for the special
19639         multi-dim array methods.
19640
19641 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19642
19643         * assembly.c: handle modules (no assembly table). Split
19644         loading references in its own function.
19645         * class.c: handle moduleref resolution scope.
19646         * image.c, image.h: cache module name in image.
19647
19648 2002-06-07  Martin Baulig  <martin@gnome.org>
19649
19650         * reflection.c (mono_image_get_type_info): Only add a class layout entry
19651         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
19652
19653 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19654
19655         * icall.c: more signature fixes that used uint instead of int.
19656
19657 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19658
19659         * reflection.c: fixed signature of field refs.
19660
19661 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19662
19663         * class.c, reflection.c: handle typerefs of nested types
19664         (both on read and when writing files).
19665
19666 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19667
19668         * icall.c: fix method signatures that tried to workaround the previous
19669         typo, d'oh!
19670
19671 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19672
19673         * debug-helpers.c: fix typo.
19674
19675 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19676
19677         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
19678         rewrote the PE/COFF writing code (our programs are understood by the
19679         ms runtime, now).
19680
19681 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19682
19683         * gc.c, gc.h, icall.c: weakreference support.
19684
19685 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19686
19687         * Makefile.am, mono-config.c: use $(sysconfdir).
19688
19689 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19690
19691         * icall.c: changed default precision of Double.ToString() to 15.
19692         Fixed memory leak. Unified with Single.ToString.
19693
19694 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19695
19696         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
19697
19698 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19699
19700         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
19701         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
19702         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
19703         and myself.
19704
19705 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19706
19707         * debug-symfile.c, sysmath.c: yet more compilation fixes.
19708
19709 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19710
19711         * reflection.c, socket-io.c: more compilation fixes.
19712
19713 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19714
19715         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
19716         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
19717         unicode.c: warning and compiler compatibility fixes.
19718
19719 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19720
19721         * class.h, metadata.c: fixed warnings/compilation errors.
19722
19723 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19724
19725         * Makefile.am, mono-config.c, mono-config.h: configuration file
19726         support routines.
19727         * loader.c, loader.h: make Dll mapping configurable at runtime in the
19728         config file. Export methods to insert and lookup mappings.
19729
19730 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19731
19732         * reflection.c: handle types and boxed objects in custom attr
19733         constructors.
19734
19735 2002-05-30  Martin Baulig  <martin@gnome.org>
19736
19737         * debug-symfile.c
19738         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
19739
19740 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
19741
19742         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
19743         to lookup the implmap row for a P/Invoke method.
19744         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
19745         P/Invoke method from the runtime on an as needed basis.
19746
19747 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
19748
19749         * metadata.c (mono_metadata_parse_signature): impl.
19750
19751 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19752
19753         * class.c: handle .pack directive.
19754
19755 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19756
19757         * object.c: initialize static fields with RVA data.
19758
19759 2002-05-25  Martin Baulig  <martin@gnome.org>
19760
19761         * debug-symfile.c
19762         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
19763
19764 2002-05-24  Martin Baulig  <martin@gnome.org>
19765
19766         * debug-symfile.c
19767         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
19768         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
19769         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
19770
19771 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19772
19773         * object.c: special case string ctros in invoke.
19774         * gc.c: silly whitespace changes.
19775
19776 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
19777
19778         * threadpool.[ch]: impl. a threadpool that can
19779         be used by mint and mono.
19780
19781 2002-05-22  Martin Baulig  <martin@gnome.org>
19782
19783         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
19784         The first argument is now a `MonoReflectionModuleBuilder *', the return
19785         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
19786         `methods' field to get the method builder.  The `token' argument is the
19787         unfixed token.
19788
19789         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
19790         invalid characters instead of g_assert_not_reached()ing.  This seems
19791         to be the behaviour of mscorlib.
19792
19793 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
19794
19795         * object.c (mono_runtime_invoke_array): applied patch from Rachel
19796         Hestilow to fix bug #25104
19797
19798 2002-05-21  Martin Baulig  <martin@gnome.org>
19799
19800         * debug-symfile.c (mono_debug_find_source_location): New function.
19801         Looks up an IL offset in the line number table and returns the source
19802         location as a string.
19803
19804 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19805
19806         * icall.c:
19807         (mono_double_ToStringImpl): changed %f by %g until we have something
19808         better.
19809
19810 2002-05-21  Nick Drochak  <ndrochak@gol.com>
19811
19812         * icall.c : Use different name for Math.Pow's icall.  Needed to check
19813         parameters first in C#.
19814
19815 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19816
19817         * icall.c, reflection.h: added icall to get info about an event.
19818
19819 2002-05-20  Radek Doulik  <rodo@ximian.com>
19820
19821         * object.c (mono_value_box): don't use memcpy for boxing on BIG
19822         endian
19823         (mono_value_box): don't use memcpy for small sizes on
19824         architectures with unaligned access
19825
19826 2002-05-20  Martin Baulig  <martin@gnome.org>
19827
19828         * reflection.c (mono_reflection_setup_internal_class): Don't crash
19829         if `tb->parent == NULL'.
19830         (mono_reflection_create_internal_class): New function.  This is
19831         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
19832         for enum types.
19833
19834         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
19835         New interncall.
19836
19837 2002-05-19  Martin Baulig  <martin@gnome.org>
19838
19839         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
19840         argument to get the length, don't default to the array length.
19841
19842 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
19843
19844         * assembly.c (mono_assembly_setrootdir): New function used to
19845         override the MONO_ASSEMBLIES directory.
19846
19847 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19848
19849         * icall.c: ValueType_GetHashCode() initialize local var.
19850
19851 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19852
19853         * reflection.c: sort custom attributes table.
19854
19855 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19856
19857         * reflection.c: support named args in custom attributes (write support).
19858
19859 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19860
19861         * reflection.c: fix finally position calculation.
19862
19863 2002-05-15  Radek Doulik  <rodo@ximian.com>
19864
19865         * reflection.c: fixed endianess at many places
19866
19867         * icall.c (ves_icall_InitializeArray): comment out debug msg
19868
19869 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
19870
19871         * object.c (mono_unhandled_exception): new function to handle
19872         unhandled exceptions.
19873         (mono_unhandled_exception): call the UnhandledException event.
19874         (mono_runtime_delegate_invoke): impl.
19875
19876 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
19877
19878         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
19879         returns the RVA, not the direct pointer to the data. Handle the case
19880         when the class size is fixed.
19881
19882 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19883
19884         * reflection.c: fix some endianess issues.
19885
19886 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
19887
19888         * object.c (mono_runtime_invoke): is now able to catch exceptions.
19889
19890         * threads.c (mono_thread_init): added a callback which is invoked
19891         at thread start.
19892
19893 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
19894         
19895         * icall.c: make GetHashCode return non-negative values.
19896
19897 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
19898
19899         * object.c, icall.c, gc.c: revert to address-based hashcode.
19900
19901 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
19902
19903         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
19904
19905 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19906
19907         * icall.c, class.c: special case <Module>.
19908
19909 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
19910
19911         * icall.c: fix bug in GetNow().
19912
19913 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
19914
19915         * object.c (mono_runtime_class_init): make sure that we call all
19916         static class constructors.
19917
19918 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19919
19920         * reflection.c: sort methodsemantics table.
19921
19922 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19923
19924         * reflection.h, reflection.c: honour init locals setting.
19925
19926 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
19927
19928         * icall.c: copied Double ToStringImpl for Single ToStringImpl
19929
19930 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19931
19932         * reflection.c: support ContructorBuilders in attribute blob creation.
19933
19934 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19935
19936         * reflection.c: some changes to build a binary that can be run
19937         directly in windows.
19938
19939 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
19940
19941         * loader.c: print a big message when an icall can't be found.
19942
19943 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19944
19945         * string-icalls.c: fix bug 24248.
19946
19947 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19948
19949         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
19950         icall.c, reflection.h: separate assembly loading by pathname and by
19951         assembly name. Use the MONO_PATH env var to search for assemblies.
19952
19953 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19954
19955         * assembly.c, image.h: add some support for assemblies
19956         with multiple modules.
19957         * class.c, class.h: export mono_class_from_typeref().
19958         * loader.c: remove duplicated code and use mono_class_from_typeref(),
19959         instead.
19960
19961 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19962
19963         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
19964         documentation says (the ECMA one is correct).
19965
19966 2002-05-02  Dick Porter  <dick@ximian.com>
19967
19968         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
19969         Don't name the synchronisation mutex.
19970
19971 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
19972
19973         * rand.c
19974         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
19975         Make the prototypes match.
19976         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
19977         Same.
19978
19979         * icall.c
19980         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
19981         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
19982         all systems have tm.tm_zone, so use strftime() with %Z to print
19983         the timezone abreviation into a temp string.
19984
19985         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
19986         rather than mono_array_addr() on a MonoString on Big Endian
19987         machines.
19988
19989 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
19990
19991         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
19992         fix bug 24041
19993
19994 2002-04-30  Dick Porter  <dick@ximian.com>
19995
19996         * socket-io.c: Cope with SOCKET being an integer rather than a
19997         pointer now.
19998
19999         * threads.c: Added Thread_free_internal, to deal with thread
20000         handle cleanup.  Moved calls to handle_store() and handle_remove()
20001         to start_wrapper(), so each can only be called once.  Allocate
20002         synchronisation blocks with GC_malloc(), and use GC finalisation
20003         to close the handles.
20004
20005         * icall.c: added System.Threading.Thread::Thread_free_internal
20006
20007 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20008
20009         * icall.c: support Environment.Exit, CommandLineArgs().
20010
20011 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20012
20013         * object.c, object.h: added mono_runtime_run_main () and
20014         mono_runtime_get_main_args () for use in System.Environment.
20015
20016 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20017
20018         * gc.c: fix thinko, enable actual finalization since the jit is now
20019         fixed.
20020
20021 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20022
20023         * gc.c, object.c: take into account that an object may be offset wrt the address
20024         returned by GC_malloc().
20025
20026 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20027
20028         * image.c: handle files without entries in the assembly table (modules).
20029
20030 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20031
20032         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20033         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20034         allowed to be null when it's System.Object class setup.
20035
20036 2002-04-27  Martin Baulig  <martin@gnome.org>
20037
20038         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20039         if `tb->parent == NULL' rather than crashing.
20040
20041 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20042
20043         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20044         calling acos() where asin() should have been called.
20045
20046 2002-04-26  Martin Baulig  <martin@gnome.org>
20047
20048         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20049         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20050         there's a subdirectory called `System', but we don't want to read that
20051         subdirectory as an assembly.
20052
20053 2002-04-25  Martin Baulig  <martin@gnome.org>
20054
20055         * debug-symfile.c: Reflect latest MonoString changes.
20056
20057 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20058
20059         * rand.c, rand.h: instance method icalls need to have an explicit
20060         this pointer as first argument in the C implementation.
20061
20062 2002-04-25  Nick Drochak <ndrochak@gol.com>
20063
20064         * icall.c: Fix typo in map for GetNonZeroBytes
20065
20066 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20067
20068         * string-icalls.c : String does now passes unit tests without any 
20069         errors, the following changes has been made:
20070         
20071         Implemented replace methods.
20072         Renaming of methods to (try) follow the standard.
20073         Fixed compare ordinal
20074         Made all memory allocated directly to function instead of via icall function.
20075         Small performance fix in is_in_array function
20076                         
20077  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20078
20079         c (mono_string_Internal_ctor_charp_int_int):
20080         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20081         sindex < 0, throw ArgumentOutOfRangeException instead of
20082         ArgumentNullException.
20083
20084         Added new check for length == 0, however
20085         I need to make it return String.Empty from the C code.
20086         
20087         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20088         that calculate the length for us here.
20089         
20090         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20091         mono_string_new_utf16 with mono_string_new, since value is utf8.
20092
20093 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20094
20095         * object.c: register the object for finalization if needed.
20096         Allocate one more char in the string for the terminating 0 char.
20097
20098 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20099
20100         * class.c, class.h, image.c: check if a type implemenst a destructor.
20101         Use the proper key for array class lookups.
20102         * icall.c: register the icalls in the System.GC class.
20103         * gc.c, gc.h: GC-related functions and icalls.
20104
20105 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20106
20107         * icall.c:
20108         * socket-io.c:
20109         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20110         changed a couple of free () by g_free ().
20111
20112         * decimal.c: one-liner in the comments for decimal2string ().
20113
20114 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20115
20116         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20117
20118 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20119
20120         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20121         * object.c (mono_runtime_invoke_array) : handle null in params
20122
20123 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20124
20125         * string-icalls.c: fixed bug in split (one off bug)
20126
20127 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20128
20129         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
20130         * icalls.c: added String::Equals as internal method
20131
20132 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20133
20134         * threads.c: fixed bug in the double interlocked functions
20135
20136 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
20137
20138         * threads.c: implemented all of the new interlocked icalls.
20139         * string-icalls.c: fix a bug in insert.
20140         * icalls.c: added the icalls for interlocked, removed old string functions.
20141         
20142 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20143
20144         * loader.c: fix off-by-one error when reading argument names.
20145
20146 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20147
20148         * profiler.c: win32 counter implementation (untested).
20149         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20150         (the latter needs testing and more complete impl. from win32 folks).
20151
20152 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20153
20154         * object.c: mono_array_new_full workaround mono_array_class_get
20155         problem.
20156
20157 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20158
20159         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20160         * object.h (mono_string_chars): Changed casting type.
20161
20162 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20163
20164         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20165                            method signatures to use gunichar2 instead of gint16.
20166
20167 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20168
20169         * object.h, object.c: domain-specific versions of mono_object_new and
20170         mono_array_new.
20171
20172 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20173
20174         * object.c: changed String layout
20175
20176         * string-icalls.c (mono_string_Internal_ctor_chara): added
20177         internal string constructors.
20178
20179 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20180
20181         * threads.c: pass 'this' to the thread start routine.
20182
20183 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20184
20185         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20186         InternalCompareStr don't call twice mono_string_cmp_char for the last
20187         character. Improved performance in mono_string_cmp_char.
20188
20189 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20190
20191         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20192         code into its own library: libmonoruntime.
20193
20194 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20195
20196         * object.h, object.c: changed array format so that szarrays do not
20197         require a bounds structure.
20198         * icall.c, appdomain.c: support for new szarray format.
20199
20200 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20201
20202         * metadata.c: compare also the retuns type when comparing signatures:
20203         we didn't do this as an optimization since really overloaded methods
20204         must differ also in the arguments, but this doesn't work with
20205         low-level IL code (or when using explicit conversion operators: see
20206         bug#23498 for an example).
20207
20208 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20209
20210         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20211
20212 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20213
20214         * icall.c: make MonoType::GetElementType its own icall.
20215
20216 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20217
20218         * icall.c: remove MonoMethod_get_Name().
20219         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20220         object.
20221
20222 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20223
20224         * string-icalls.c: optimized a few methods.
20225
20226 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20227
20228         * icall.c: added all new string internal calls
20229         * string-icalls.c: added, new string internal call implementation.
20230         * object.c: added mono_string_new_size for allocating a string a size
20231
20232 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20233
20234         * object.c (mono_object_isinst): use the same code as in the
20235         optimized x86 version.
20236
20237 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20238
20239         * profiler.c: TSC-based timer code (faster and more accurate).
20240         Not hooked up in configure, yet (set USE_X86TSC to 1).
20241
20242 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
20243
20244         * profiler.c, profiler.h: track time spent compiling methods.
20245         * threads.c: track thread creation/destruction.
20246
20247 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
20248
20249         * profiler.c, profiler.h, profiler-private.h: profiling interface
20250         and sample implementation. Moved here so that it can be used also by
20251         the jit.
20252
20253 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
20254
20255         * reflection.c, reflection.h: keep types and other handles separate in
20256         the hash tables for referred tokens. Add guid for modules.
20257
20258 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20259
20260         * assembly.c: fix bugs found with valgrind.
20261         * metadata.h, metadata.c: added mono_metadata_guid_heap().
20262
20263 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
20264
20265         * threads: added icall support for getting current domain for
20266                    the thread.
20267  
20268 2002-04-13  Martin Baulig  <martin@gnome.org>
20269
20270         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
20271         (MonoDebugVarInfo): Added `index' field for register based addresses.
20272         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
20273         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
20274         `MonoDebugVarInfo *params' and `guint32 this_offset' with
20275         `MonoDebugVarInfo *this_var'.
20276
20277         * debug-symfile.c (relocate_variable): New static function to write
20278         a location description for a local variable or method parameter.
20279
20280 2002-04-12  Martin Baulig  <martin@gnome.org>
20281
20282         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
20283         stack offset and begin/end scope address of a local variable.
20284         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
20285         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
20286         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
20287
20288         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
20289         Added new relocation types for start/end scope of a local variable.
20290
20291 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20292
20293         * object.h: add mono_object_domain() macro.
20294         * reflection.c: handle typespecs.
20295         * icall.c: MonoMethod::get_Name() implementation.
20296
20297 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20298
20299         * icall.c: String::GetHashCode() icall implementation.
20300
20301 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20302
20303         * icall.c: String::IndexOfAny icall.
20304         * object.c, object.h: make array->max_length more useful.
20305         Intrduced mono_object_class() and mono_string_length() macros.
20306
20307 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20308
20309         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
20310         instead of g_unichar_isdigit.
20311
20312 2002-04-11  Nick Drochak  <ndrochak@gol.com>
20313
20314         * icall.c: Implement a simple Double.ToString().
20315
20316 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20317
20318         * appdomain.h: only io-layer.h is supposed to be included.
20319         * icall.c: explicitly import environ. Fix warning.
20320
20321 2002-04-10  Nick Drochak  <ndrochak@gol.com>
20322
20323         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
20324                 return true even if it's not Daylight Savings time.
20325                 Only return false for the case where the function isn't
20326                 implemented for a plaform (read Windows).
20327
20328 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20329
20330         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
20331         data with a mutex.
20332
20333 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
20334
20335         * mempool.c (mono_mempool_alloc): only use g_malloc when
20336         absolutely necessary.
20337
20338 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20339
20340         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
20341
20342         * class.c (mono_class_vtable): use domain mempool to allocate vtable
20343         (mono_class_proxy_vtable): use domain mempool
20344
20345 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20346
20347         * appdomain.h, appdomain.c: split initialization that requires the
20348         execution engine support into mono_runtime_init().
20349
20350 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20351
20352         * class.c (mono_class_init): don't include vtable inside MonoClass
20353         to save some memory, gather some statistics.
20354         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
20355
20356 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20357
20358         * icall.c: internalcall implementation for ValueType.Equals().
20359
20360 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
20361
20362         * object.c (mono_message_init): moved 
20363         (mono_runtime_exec_main): new arch. independent impl.
20364         (mono_runtime_invoke_array): new method - like
20365         mono_runtime_invoke, but you can pass an array of objects.
20366         (mono_remoting_invoke): new arch. independent impl.
20367         (mono_message_invoke): new arch. independent impl.
20368         (mono_runtime_class_init): new arch. independent impl.
20369         (mono_runtime_object_init): new arch. independent impl.
20370
20371 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20372
20373         * metadata.c, object.c, reflection.c: documented the exported
20374         functions.
20375
20376 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20377
20378         * icall.c: simpler code to pass the assembly builder data to corlib.
20379         Implement GetNestedTypes() internalcall.
20380
20381 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20382
20383         * class.c: warn if a type can't be loaded.
20384
20385 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
20386
20387         * image.h: typedef MonoImageOpenStatus
20388         * types.h: removed unused file
20389         
20390 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
20391
20392         * icall.c: Enum_ToObject accepts enum value arguments.
20393
20394 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20395
20396         * class.c: move initialization of properties, events and nested
20397         classes, so that they happen for interfaces, too.
20398
20399 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20400
20401         * icall.c: cleanup some ugly casts in Array_SetValue*.
20402
20403 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20404
20405         * icall.c: the values array fro enums is of the correct type, now.
20406         Implement (correctly) getFullName instead of assQualifiedName for
20407         MonoType.
20408         * reflection.h, reflection.c: added mono_type_get_name ().
20409
20410 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20411
20412         * assembly.c, image.h: for each MonoImage, record from wich assembly
20413         it was loaded.
20414         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
20415         Make Type.Assembly work.
20416
20417 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
20418
20419         * debug-symfile.h: use char* instead of gpointer to avoid
20420         unnecessary casts.
20421
20422         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
20423
20424         * icall.c (ves_icall_InternalExecute): impl. FielSetter
20425         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
20426
20427 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
20428
20429         * icall.c (mono_message_init): impl. (code cleanup)
20430         (ves_icall_InternalExecute): impl. FieldGetter
20431
20432         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
20433         defined we call all (non-static)methods through the vtable. 
20434
20435 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
20436
20437         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
20438         finalizer even though the memory is still referenced (and the chunk of
20439         memory is not freed).
20440
20441 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20442
20443         * assembly.c: fix brokeness.
20444
20445 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
20446
20447         * class.c: kill some warnings. Check explicit interface method
20448         implementation also without considering the namespace.
20449         Load also literal strings in static class data.
20450
20451 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
20452
20453         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
20454         (default_assembly_name_resolver): Make the resolver take the
20455         "base" directory where the assembly was originally defined, so we
20456         can load DLLs that are in the same directory as the assembly that
20457         is being referenced.
20458
20459 2002-03-28  Dick Porter  <dick@ximian.com>
20460
20461         * file-io.h: 
20462         * file-io.c:
20463         * socket-io.c: 
20464         * unicode.h: 
20465         * unicode.c: Warning cleanups
20466
20467 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
20468
20469         * object.h, reflection.h: use the correct type instead of MonoObject.
20470
20471 2002-03-28  Martin Baulig  <martin@gnome.org>
20472
20473         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
20474         (mono_debug_update_symbol_file): Initialize classes if necessary.
20475
20476 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
20477
20478         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
20479         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
20480
20481 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
20482
20483         * assembly.h: fix function prototype.
20484         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
20485         * mono-endian.h: use const cast.
20486
20487 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20488
20489         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
20490
20491 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
20492
20493         * loader.c: don't assert when a typeref can't be loaded, give
20494         a chance to the runtime to trow an exception instead.
20495         * loader.h: fix warning.
20496
20497 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20498
20499         * class.c (mono_class_proxy_vtable): added proxy support
20500
20501 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
20502
20503         * icall.c: removed last of PAL calls, added System.Environment
20504         * file-io.h, file-io.c: MonoIO implementation
20505         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
20506
20507 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
20508
20509         * appdomain.c: do not use the byte marker in ldstr table lookup.
20510         * debug-helpers.c: allow two ':' to separate class and method name.
20511         * object.c: allocate arrays bounds with the GC, too.
20512         * verify: add a few more checks.
20513
20514 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
20515
20516         * reflection.c: output also literal strings. Allocate parameter data
20517         with GC_malloc() (thanks, Martin, for catching this!).
20518
20519 2002-03-26  Martin Baulig  <martin@gnome.org>
20520
20521         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
20522         include the `this' offset in the `param_offsets'.
20523
20524 2002-03-25  Martin Baulig  <martin@gnome.org>
20525
20526         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
20527         mono_debug_get_class() function to get the classes. Added new
20528         relocation types for arrays and strings.
20529         (mono_debug_get_class): New static function to search in all
20530         referenced assemblies for a metadata token.
20531
20532         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
20533
20534 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20535
20536         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
20537         hold gc-allocated objects. Make the string heap a stream like the
20538         others. Removed duplicated code when writing stream info.
20539         Added asserts to catch possible buffer overflows. Set the sorted map
20540         for tables that need sorting. Added some documentation.
20541
20542 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
20543
20544         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
20545         for interned strings and vtables.
20546
20547 2002-03-24  Martin Baulig  <martin@gnome.org>
20548
20549         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
20550         it in the array since it was created with g_slist_prepend().
20551
20552 2002-03-24  Martin Baulig  <martin@gnome.org>
20553
20554         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
20555         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
20556         (mono_debug_method_from_token): Renamed to
20557         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
20558         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
20559
20560         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
20561         relocation types.
20562
20563         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
20564
20565 2002-03-24  Martin Baulig  <martin@gnome.org>
20566
20567         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
20568         (mono_debug_method_from_token): New func.
20569
20570         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
20571         New interncall, calls mono_debug_local_type_from_signature().
20572         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
20573         calls mono_debug_method_from_token().
20574
20575 2002-03-23  Martin Baulig  <martin@gnome.org>
20576
20577         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
20578         specifies the number of bytes to be converted, not the array size.
20579         Return the number of chars, not the number of bytes.
20580         (ves_icall_iconv_get_chars): The `byteCount' argument
20581         specifies the number of bytes to be converted, not the array size.
20582
20583 2002-03-23  Martin Baulig  <martin@gnome.org>
20584
20585         * reflection.h (MonoReflectionSigHelper): New type.
20586
20587         * reflection.c (mono_reflection_sighelper_get_signature_local),
20588         (mono_reflection_sighelper_get_signature_local): New functions.
20589
20590         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
20591         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
20592         interncalls.
20593
20594 2002-03-23  Martin Baulig  <martin@gnome.org>
20595
20596         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
20597         is_writeable is set.
20598         (mono_raw_buffer_update): New function to write the modified map
20599         back to disk.
20600
20601         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
20602
20603         * debug-symfile.c (mono_debug_update_symbol_file): Call
20604         mono_raw_buffer_update() when done writing.
20605
20606 2002-03-23  Martin Baulig  <martin@gnome.org>
20607
20608         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
20609
20610         * debug-symfile.c: Added support for arguments and local variables.
20611
20612 2002-03-23  Dick Porter  <dick@ximian.com>
20613
20614         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
20615         protected by ifdefs, hence breaking the w32 build.
20616
20617 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20618
20619         * object.c: implement is_interned() the right way.
20620
20621 2002-03-21  Martin Baulig  <martin@gnome.org>
20622
20623         * debug-symfile.[ch]: New files to handle debugging information
20624         files. There's also support to dynamically update these symbol
20625         files to include machine dependent information.
20626
20627 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
20628
20629         * threads.c (mono_thread_create): new function to create thread
20630         from C
20631
20632 2002-03-20  Martin Baulig  <martin@gnome.org>
20633
20634         * icall.c (ves_icall_InternalInvoke): Create a new object if the
20635         method is a constructor.
20636         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
20637         points to ves_icall_InternalInvoke().
20638
20639 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
20640
20641         * file-io.c: Flush shouldn't throw exceptions.
20642
20643 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
20644
20645         * file-io.c: FileStream flush support; FileSetLength now
20646         restores file pointer.
20647
20648 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
20649
20650         * class.c: set image for pointer classes.
20651
20652 2002/03/19  Nick Drochak <ndrochak@gol.com>
20653
20654         * sysmath.c: Forgot one.
20655
20656 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
20657
20658         * sysmath.c: Avoid redefining existing names.
20659
20660 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
20661
20662         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
20663         handled by runtime as icall rather than dllimport from libm.so
20664         * file-io.c, file-io.h: fixed handle argument type.
20665
20666 2002-03-18  Dick Porter  <dick@ximian.com>
20667
20668         * reflection.c (mono_image_get_type_info): rename interface to
20669         iface, because of "#define interface struct" on windows.
20670
20671 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
20672
20673         * class.c, class.h: rename and export mono_ptr_class_get().
20674         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
20675         * reflection.c, reflection.h, icall.c: better/saner type name
20676         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
20677         method signatures.
20678
20679 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
20680
20681         * class.c (mono_class_init): removed hardcoded GHC_SLOT
20682
20683         * icall.c (ves_icall_InternalInvoke): impl.
20684
20685 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20686
20687         * reflection.c: output the interface map table, too.
20688
20689 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
20690
20691         * class.c (class_compute_field_layout): separate computation of 
20692         static field layout
20693
20694 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
20695
20696         * icall.c: added System.Buffer support.
20697         * file-io.c: moved file icalls from PAL to FileStream.
20698
20699 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
20700
20701         * icall.c (ves_icall_System_Object_GetHashCode): impl.
20702
20703 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
20704
20705         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
20706
20707 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20708
20709         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
20710
20711 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
20712
20713         * debug-helpers.{c,h}: moved here from monograph some useful functions
20714         to locate a method by name/signature in a class or image. Included
20715         also a small and flexible IL disassembler.
20716
20717 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20718
20719         * reflection.c: fixup tokens in methods with small header size, too.
20720
20721 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
20722
20723         * object.c (mono_string_to_utf8): remove assert(!error), instead
20724         print a warning. 
20725
20726 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
20727
20728         * icall.c: update to the new mono_Array_class_get interface.
20729
20730 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
20731
20732         * appdomain.c, object.c: Boehm-GC enable.
20733         * icall.c: make get_data_chunk() support split data requests.
20734         Ensure a class is initialized in more cases. Return only the first
20735         property found in GetProperties() or the compiler gets confused. 
20736         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
20737         * reflection.h, reflection.c: add fixup mechanism for field and method
20738         tokens. Initialize assembly->typeref in a single place. Output
20739         properties after events. Support custom attributes for events, too.
20740         Typo fix for paramter custom attrs.
20741
20742 2002-03-07  Martin Baulig  <martin@gnome.org>
20743
20744         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
20745
20746 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
20747
20748         * class.c (mono_array_class_get): fix. for multi. dim. arrays
20749
20750 2002-03-06  Martin Baulig  <martin@gnome.org>
20751
20752         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
20753         non-zero lower bounds. See testcases #F10-#F13.
20754
20755 2002-03-05  Martin Baulig  <martin@gnome.org>
20756
20757         * exception.c (mono_get_exception_argument_out_of_range): New exception.
20758
20759         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
20760         ves_icall_System_Array_GetValue(), only calculate the absolute array position
20761         here.
20762         (ves_icall_System_Array_SetValue): Likewise.
20763         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
20764         as argument and does the actual work. This function is used when copying a
20765         multi-dimensional array.
20766         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
20767         now do all the widening conversions of value types.
20768         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
20769
20770 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20771
20772         * class.c: remove some magic numbers and use the smbolic names,
20773         instead. Added init_events() to load event info at class init time.
20774         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
20775         and mono_metadata_methods_from_event().
20776         * reflection.h, reflection.c: added support for writing out the evnets
20777         related information.
20778
20779 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
20780
20781         * reflection.h, icall.c: use a different method (GetInterfaces)
20782         to gather interface info and add isbyref, isprimitive and
20783         ispointer to the ves_icall_get_type_info() return value.
20784
20785 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
20786
20787         * class.h: stared adding support for events.
20788         * icall.c: split find_members implementation. Added debug icall to get
20789         the address of an object.
20790         * reflection.c: handle TypeBuilders in mono_type_get_object().
20791
20792 2002-03-01  Martin Baulig  <martin@gnome.org>
20793
20794         * icall.c (ves_icall_System_Array_GetLength): This must throw an
20795         ArgumentOutOfRangeException(), not an ArgumentException().
20796         (ves_icall_System_Array_GetLowerBound): Likewise.
20797         (ves_icall_System_Array_GetValue): Improved argument checking.
20798         (ves_icall_System_Array_SetValue): Improved argument checking.
20799
20800 2002-03-01  Martin Baulig  <martin@gnome.org>
20801
20802         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
20803         called with invalid arguments rather than just dying with g_assert().
20804         (ves_icall_System_Array_SetValue): Likewise.
20805         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
20806         raise a NotImplementedException instead.
20807         (ves_icall_System_Array_GetLength): Added argument checking.
20808         (ves_icall_System_Array_GetLowerBound): Added argument checking.
20809
20810 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
20811
20812         * object.h (mono_assert): new macros mono_assert and
20813         mono_assert_not_reached
20814
20815 2002-02-28  Martin Baulig  <martin@gnome.org>
20816
20817         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
20818         and "System::String::IsInterned" to "System::String::_IsInterned".
20819
20820 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
20821
20822         * icall.c: remove hacks for typebuilder. Added icall to create a
20823         modified type from a tybebuilder.
20824         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
20825         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
20826         to create a backing MonoClass for a TypeBuilder.
20827
20828 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20829
20830         * class.c, class.h: more refactoring of class init.
20831         Export mono_class_setup_mono_type() and mono_class_setup_parent().
20832
20833 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
20834
20835         * marshal.c, marshal.h: start of marshaling interface.
20836
20837 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
20838
20839         * icall.c: fix order in assembly qualified name icall.
20840
20841 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
20842
20843         * class.c: do not free str, since we store it in the hash table.
20844         * reflection.h: add label field to MonoILExceptionInfo.
20845         * reflection.c: handle references to more than one assembly. Handle
20846         case when there isn't a module created in the assembly.
20847
20848 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
20849
20850         * class.c: Fix typo. Start refactoring of class init code.
20851
20852 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
20853
20854         * appdomain.c: exit with 1 on error.
20855         * class.c: we already have the name in MonoClassField.
20856         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
20857         MonoStreamHeader instead of an offset of image->raw_metadata.
20858
20859 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
20860
20861         * appdomain.c (mono_init): Be even more descriptive about the error.
20862
20863 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
20864
20865         * appdomain.c: give the user an informative message when corlib can't
20866         be loaded.
20867
20868 2002-02-26  Martin Baulig  <martin@gnome.org>
20869
20870         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
20871         New icall to get the time zone data.
20872
20873 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20874
20875         * reflection.c: set virtual and raw size of section correctly.
20876         * threads.c: transfer domain information to newly created threads.
20877
20878 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
20879
20880         * class.c: when instancing a class in a domain, load the default
20881         vaules for static fields from the constant table. Fix System.Enum to
20882         not be an enum.
20883         * icall.c: implement Object::GetType() internalcall. Implemented
20884         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
20885         Fixed checking of binding flags in find_members().
20886         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
20887         * reflection.c: handle enumerations when writing to the constant
20888         table. Use a different object cache for types.
20889
20890
20891 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
20892
20893         * object.c (mono_object_isinst): fix for arrays
20894
20895         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
20896
20897 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
20898
20899         * object.c: don't use mprotect ()  and fix intern pool hash table
20900         lookup for big endian systems.
20901
20902 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20903
20904         * icall.c: change type_is_subtype_of () signature.
20905
20906 2002-02-21  Mark Crichton  <crichton@gimp.org>
20907
20908         * rand.c, rand.h: Added random number generator for
20909         System.Security.Cryptography classes.
20910
20911         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
20912
20913         * icall.c: Added System.Security.Cryptography calls.
20914
20915 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
20916
20917         * class.c, icall.c, metadata.c: better support for pointer types.
20918         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
20919         * reflection.c: Add support for getting custom attrs for properties
20920         and simplify some code.
20921
20922 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20923
20924         * icall.c: change getToken () and add custom attribute GetBlob()helper
20925         method.
20926         * reflection.h: add custom attrs array to the reflection builder structures.
20927         * reflection.c: encode and emit custom attributes for all the relevant
20928         reflection objects. Cache fieldref and methodref tokens. Change
20929         mono_image_create_token() interface to take a MonoDynamicAssembly.
20930         More complete custom attributes decoder. Load custom attributes for
20931         Assembly, Field, Method and Constructor objects, too. Make the
20932         returned array an Attribute[] one, not object[]. Added
20933         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
20934         custom attribute constructor.
20935
20936 2002-02-20  Dick Porter  <dick@ximian.com>
20937
20938         * icall.c:
20939         * rawbuffer.c:
20940         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
20941         problem code out for now).
20942
20943 2002-02-19  Radek Doulik  <rodo@ximian.com>
20944
20945         * object.c (mono_ldstr): use hash table to avoid multiple swapping
20946
20947 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
20948
20949         * icall.c: register the GetCustomAttributes method.
20950         * object.c, object.h: add mono_string_new_len ().
20951         * reflection.h, reflection.c: added mono_runtime_invoke(),
20952         mono_install_runtime_invoke(). Added
20953         mono_reflection_get_custom_attrs () to load custom attributes and
20954         create the attribute objects.
20955
20956 2002-02-19  Dick Porter  <dick@ximian.com>
20957         * threads-dummy-types.c:
20958         * threads-dummy-types.h:
20959         * threads-dummy.c:
20960         * threads-dummy.h:
20961         * threads-pthread-types.c:
20962         * threads-pthread-types.h:
20963         * threads-pthread.c:
20964         * threads-pthread.h:  Deleted obsolete files
20965
20966 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
20967
20968         * class.c (mono_class_vtable): runtime init the class when we
20969         allocate static class data.
20970
20971         * icall.c (ves_icall_System_Array_SetValue): check for null values.
20972
20973         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
20974         and String - but we will need generic marshalling support in the
20975         future. 
20976         (mono_init): set the domain name in a ms compatible way
20977
20978         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
20979         String[].
20980
20981 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
20982
20983         * object.c (mono_array_clone): use alloca() instead of g_malloc  
20984         for sizes
20985
20986         * appdomain.c (mono_domain_unload): impl.
20987
20988 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20989
20990         * appdomain.c, object.c: fix intern pool implementation.
20991         * class.c: fix alignment code.
20992
20993 2002-02-16  Radek Doulik  <rodo@ximian.com>
20994
20995         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
20996         and s2 > s1, just copy lower bytes to be compatible with little
20997         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
20998         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
20999
21000         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21001         force big_endian to be 1 for big endian machines 
21002         (ves_icall_iconv_new_decoder): ditto
21003
21004 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21005
21006         * socket-io.c (convert_sockopt_level_and_name): If the system
21007         doesn't define SOL_IP or SOL_TCP, get them by hand using
21008         getprotobyname() and caching the values (because this could be a
21009         slow operation).
21010         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21011         Use the appropriate struct when the system does support it. Ie,
21012         not all systems have struct ip_mreqn so use struct ip_mreq when
21013         appropriate.
21014
21015 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21016
21017         * reflection.c: handle finally clauses.
21018
21019 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21020
21021         * socket-io.c: use g_snprintf() instead of snprintf.
21022
21023 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21024
21025         * reflection.c (mono_param_get_objects): Cast second argument to
21026         mono_method_get_param_names to a const char** to silence the
21027         compiler warning.
21028
21029         * appdomain.c (mono_domain_assembly_open): Put parens around the
21030         truth statement in the for-loop.
21031
21032         * unicode.c (iconv_convert): Got rid of a compiler warning about
21033         int i being unused when the system has a new iconv.
21034         (iconv_get_length): Same.
21035
21036         * image.c (load_class_names): Cast the second argument to
21037         g_hash_table_insert() to char* to hush compiler warnings about the
21038         arg being a const.
21039         (mono_image_open): Same here.
21040
21041         * socket-io.c: Don't conditionally include sys/filio.h or
21042         sys/sockio.h here anymore since we now get them from
21043         io-layer/io-layer.h
21044         (inet_pton): If the system doesn't support inet_aton, implement
21045         using inet_addr and also #define INADDR_NONE if it isn't defined
21046         by the system.
21047
21048 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21049
21050         * metadata.c, metadata.h: added function to get packing and size info
21051         of a typedef.
21052         * reflection.h, reflection.c: handle field RVA data. Save info about
21053         the table layout if needed. Assign typedef indexes to all the types
21054         before dumping the info about them to avoid forward reference problems.
21055
21056 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21057
21058         * socket-io.c (convert_sockopt_level_and_name): ifdef
21059         SO_ACCEPTCONN because it is not defined on my system (old debian)
21060
21061 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21062
21063         * opcode.c: use stddef.h to get NULL.
21064
21065 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21066
21067         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21068         for FIONBIO, FIONREAD and SIOCATMARK.
21069         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21070         define INADDR_NONE and besides, inet_addr() is deprecated and
21071         should not be used. Use inet_pton() instead - it also has the
21072         added bonus that it can easily handle IPv6 addresses as well.
21073         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21074
21075 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21076
21077         * decimal.c: remove _MSC_VER conditional.
21078
21079 2002-02-13  Dick Porter  <dick@ximian.com>
21080
21081         * socket-io.c: 
21082         * icall.c: Internal calls for Blocking, Select, Shutdown,
21083         GetSocketOption and SetSocketOption
21084
21085 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21086
21087         * assembly.cs: better resolver: use it instead of some kludgy
21088         code.
21089
21090 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21091
21092         * reflection.c: the best way to speed-up the compiler is to avoid
21093         infinite loops.
21094
21095 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21096
21097         * class.c (mono_class_vtable): changed the object layout
21098         (obj->vtable->class). 
21099         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21100
21101 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21102
21103         * assembly.c: look for assemblies in the assembly dir, too.
21104
21105 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21106
21107         * class.c: fix thinko in mono_class_from_type().
21108
21109 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21110
21111         * exception.h, exception.c: added TypeLoadException.
21112         * object.h, object.c: added mono_array_clone ().
21113         * icall.c: handle throwOnError in AssemblyGetType().
21114         Added Array.Clone().
21115         * opcode.h, opcode.c: use a single value for the opcode val.
21116         Compile fix for non-gcc compilers.
21117
21118 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21119
21120         * opcodes.c, opcodes.h: export interesting info about opcodes.
21121
21122 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21123
21124         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21125         icalls. 
21126
21127         * class.c (class_compute_field_layout): set element_class for enums
21128         (mono_class_create_from_typedef): set element_class for normal classes
21129
21130         * icall.c (ves_icall_System_Enum_get_value): impl.
21131
21132         * class.c (mono_class_create_from_typedef): do not set valuetype
21133         flag for System.ValueType and System.Enum
21134
21135 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
21136
21137         * unicode.c (iconv_convert): fix big endian problem.
21138
21139 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21140
21141         * class.c: add asserts if we are ever going to scribble over memory.
21142         * socket-io.c: not all systems have AF_IRDA defined.
21143
21144 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21145
21146         * class.c (class_compute_field_layout): do not consider static
21147         fields to compute alignment
21148
21149 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21150
21151         * appdomain.c (mono_appdomain_get): impl.
21152         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21153
21154 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21155
21156         * icall.c: ignore "file://" prefix when loading an assembly.
21157
21158 2002-01-23  Dick Porter  <dick@ximian.com>
21159
21160         * socket-io.c:
21161         * icall.c:
21162         * Makefile.am: Added socket support
21163
21164 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21165
21166         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21167         code back.  This should return the assemblies that are loaded by
21168         the runtime on behalf of an application domain. 
21169
21170         The current implementation is still broken, it just returns every
21171         assembly loaded, but until we get real applications domain this
21172         will do.
21173
21174 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21175
21176         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21177         AppDomain object.
21178
21179 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21180
21181         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21182         the mono_class_from_name lookup.
21183         (ves_icall_get_parameter_info): ditto.
21184         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21185         method.
21186         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21187
21188 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21189
21190         * class.c: load also nested classes on class init.
21191         System.ValueType instance methods gets passed boxed
21192         values, unless methods in derived classed that get a pointer to the
21193         data.
21194         * icall.c: use better name parsing code in GetType().
21195         * image.c, image.h: add mono_image_loaded ().
21196         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21197         * reflection.c, reflection.h: added mono_reflection_parse_type().
21198
21199 2002-01-22  Veronica De Santis <veron78@interfree.it>
21200
21201         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21202         * threads.c : Added the implementation of internal calls for events
21203         * threads.h : Added prototypes of internal calls for events
21204         
21205 2002-01-21  Radek Doulik  <rodo@ximian.com>
21206
21207         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21208
21209 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21210
21211         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21212         (mono_class_value_size): use min_align
21213
21214 2002-01-20  Dick Porter  <dick@ximian.com>
21215
21216         * threads.h:
21217         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21218         so it compiles on w32.
21219
21220 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21221
21222         * metadata.c (mono_type_stack_size): impl.
21223
21224         * class.c (mono_class_get_field): impl. memberref token
21225
21226 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21227
21228         * icall.h : Added the internal calls mapping for CreateMutex_internal
21229                     and ReleaseMutex_internal.
21230         * threads.h : Added the prototype of mutexes internal calls.
21231         * threads.c : Added the implementations of mutexes internal calls.
21232
21233 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21234
21235         * metaparse.h: removed unused file.
21236         * reflection.c, reflection.h: added stream_data_align () function 
21237         to align data in streams and keep stream aligned. Add support for
21238         exception support in method headers.
21239
21240 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
21241
21242         * unicode.c: make iconv_convert () return the number of bytess written
21243         in the output buffer.
21244
21245 2002-01-15  Dick Porter  <dick@ximian.com>
21246         * threads.c: Make the runtime's idea of infinite timeouts coincide
21247         with the class library's
21248
21249         Fix a particularly egregious bug in mono_thread_cleanup(). That
21250         code was so utterly bogus it must have been written on a Monday.
21251
21252 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21253
21254         * reflection.h: add subtypes field to TypeBuilder.
21255         * reflection.c: encode constants for literal fields.
21256         Handle subtypes. Fix user string token (and add a zero byte)
21257         at the end.
21258         
21259 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
21260
21261         * class.c (mono_class_init): bug fix: assign slot numbers for
21262         abstract methods.
21263
21264 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21265
21266         * reflection.c: don't try to output a code RVA for abstract methods.
21267         Small fixes for method header format. Output parameter info to the
21268         ParamDef table. Save method overriding info to MethodImpl table.
21269         Fix property support. Allow typedef.extends to be a type in the
21270         building assembly.
21271         * verify.c: fix off-by-one error.
21272
21273 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
21274
21275         * class.c: fix mono_class_from_mono_type () for szarray types.
21276         Remove unused cache check in mono_class_from_type_spec().
21277         * icall.c: *type_from_name () functions handle simple arrays and byref.
21278         * reflection.c: handle byref and szarray types. Handle methods without
21279         body (gets P/Invoke compilation working). Handle types and fields in
21280         get_token ().
21281         * reflection.h: add rank to MonoTypeInfo.
21282
21283 2002-01-10  Dick Porter  <dick@ximian.com>
21284
21285         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
21286         internal calls
21287
21288 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21289
21290         * icall.c: initialize class in type_from_handle ().
21291         Loop also in parent classes for get_method ().
21292         * reflection.c: properly encode class and valuetype types.
21293         Start on encoding TypeBuilder types. Handle fieldrefs.
21294         Use correct length when registering a user string.
21295         Handle ConstructorBuilder and MonoMethod in get_token ().
21296         Make mono_type_get_object () aware of cached types.
21297         * object.c: back out change to mono_string_new ().
21298
21299 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
21300         * object.c: mono_string_new should return a NULL when the string 
21301         passed in is NULL -- not try to deference it.
21302         
21303 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21304
21305         * icall.c: hack to make IsSubType work for TypeBuilders.
21306         * reflection.c: emit constructors before methods.
21307         Retrieve param names in mono_param_get_objects().
21308
21309 2002/01/05  Nick Drochak  <ndrochak@gol.com>
21310
21311         * Makefile.am: fix list of headers and sources so automake 1.5
21312         doesn't complain. Removed \# at end of list.
21313
21314 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21315
21316         * reflection.c: get token for a method ref. Set return type of
21317         constructor to void.
21318         * loader.c: debug message.
21319         * class.c: typo fix.
21320
21321 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
21322
21323         * icall.c: fix array init with rank > 1. FindMembers
21324         loops in parent class as well.
21325         * image.c: do not insert nested types in name cache.
21326         * reflection.c: warning fix.
21327         * reflection.h: add override method (for interface impl).
21328
21329 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
21330
21331         * metadata.c: fix customattr decoding.
21332
21333 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
21334
21335         * rawbuffer.cs: Added native Win32 implementation, avoids using
21336         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
21337
21338 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
21339
21340         * class.c: make the low-level routines handle the cache.
21341
21342 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
21343
21344         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
21345
21346 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
21347
21348         * class.c: fix mono_array_element_size() for objects.
21349         * class.h, class.c: add properties to MonoClass and load them
21350         at init time.
21351         * icall.c: check with isinst() when assigning a value to an array
21352         instead of requiring the classes to match exactly.
21353         Implemented icall for System.Type::GetType().
21354         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
21355         enums. Handle bindingflags when looking for methods and fields.
21356         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
21357         and mono_metadata_methods_from_property().
21358         * reflection.h, reflection.c: added structures for propreties,
21359         parameters and enums. Implemented mono_property_get_object() and
21360         mono_param_get_objects().
21361
21362 2001-12-18  Dick Porter  <dick@ximian.com>
21363
21364         * file-io.c: Use mono_string_to_utf16() instead of
21365         mono_string_chars()
21366
21367         * object.c: Added mono_string_to_utf16(), which copies the non
21368         NULL-terminated MonoString into a new double-null-terminated
21369         buffer.
21370
21371 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
21372
21373         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
21374
21375 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
21376
21377         * file-io.c: raise exceptions if handle is invalid.
21378
21379 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
21380
21381         * assembly.c: yet another check for mscorlib.
21382         * class.c, class.h: load nesting info for classes.
21383         * icall.c: many new functions to support the Reflection classes.
21384         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
21385         * reflection.h, reflection.c: mono_image_create_token(),
21386         mono_assembly_get_object(), mono_type_get_object(),
21387         mono_method_get_object(), mono_field_get_object(): methods to return
21388         objects that parallel the C representation of assemblies, types,
21389         methods, fields.
21390
21391 2001-12-11  Dick Porter  <dick@ximian.com>
21392
21393         * icall.c:
21394         * file-io.c: Internal calls for file IO.
21395
21396 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
21397
21398         * tabledefs.h: missing FileAttributes.
21399         * verify.h, verify.c: use is_valid_string () to simplify and check for
21400         valid strings more correctly. Fix warnings and speeling.
21401         Check more tables: Filed, File, ModuleRef, StandAloneSig.
21402         Check code: branches, maxstack, method calls.
21403
21404 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
21405
21406         * object.c (mono_object_allocate): removed static, so that the jit
21407         can allocate value types.
21408
21409         * icall.c (ves_icall_System_DateTime_GetNow): impl.
21410
21411 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21412
21413         * class.c: init enum types right away and register the
21414         token->MonoClass map in mono_class_create_from_typedef ().
21415         * verify.h, verify.c: first cut of the verifier.
21416         * pedump.c: add --verify switch to verify metadata tables.
21417         * tabledefs.h: add some missing enums.
21418
21419 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
21420
21421         * class.c (mono_install_runtime_class_init): impl.
21422         (mono_class_init): renamed mono_class_metadata_init to
21423         mono_class_init, also removed the metadata_inited flag
21424
21425         * object.c (mono_object_isinst): use faster algorithm
21426
21427 2001-11-30  Radek Doulik  <rodo@ximian.com>
21428
21429         * mono-endian.h: reverted last change
21430         added function prototypes
21431
21432         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
21433         add mono-endian.c back
21434
21435         * mono-endian.c: returned back, as Paolo pointed out, it's needed
21436         for unaligned access, I've mistaked it with endianess. I am
21437         sorry.
21438         (mono_read16): fix reverted endianess
21439         (mono_read64): ditto
21440         (mono_read32): ditto
21441
21442 2001-11-30  Dick Porter  <dick@ximian.com>
21443
21444         * exception.c: Implement mono_exception_from_name()
21445
21446 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21447
21448         * metadata.h, metadata.c: remove params_size and locals_size and their
21449         calculation from the metadata code: they are only usefult to the
21450         interp.
21451
21452 2001-11-29  Radek Doulik  <rodo@ximian.com>
21453
21454         * object.c (mono_ldstr): swap bytes here, it's probably not the
21455         best place, but works for me now, I'll redo it once I know mono
21456         better, also note that I add PROT_WRITE and don't reset back, also
21457         note that it's only affects big endians, so x86 should be OK
21458
21459         * mono-endian.h (read16): use just glib macros for both endians
21460
21461         * mono-endian.c: removed as glib macros are used in in
21462         mono-endian.h so we don't need to care about endianess for read
21463         macros as glib does that for us already
21464
21465 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
21466
21467         * class.h, class.h: take minimum alignment into consideration so
21468         that the fields of a class remain aligned also when in an array.
21469
21470 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21471
21472         * loader.h, loader.c: add mono_method_get_param_names().
21473         * class.c: 0-init class fields.
21474
21475 2001-11-26  Dick Porter  <dick@ximian.com>
21476
21477         * icall.c:
21478         * threads-types.h:
21479         * threads.c: New file that handles System.Threading on all platforms
21480
21481         * object.c: 
21482         * object.h: Remove the synchronisation struct from MonoObject,
21483         replace it with a pointer that gets initialised on demand
21484
21485         * Makefile.am: Replace all the system-specific threading code with
21486         a single file that uses the new wrapper library
21487
21488 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
21489
21490         * class.c, class.h: add mono_install_trampoline() so that the runtime
21491         can register a function to create a trampoline: removes the ugly
21492         requirement that a runtime needed to export arch_create_jit_trampoline.
21493         * object.h, object.c: added mono_install_handler() so that the runtime
21494         can install an handler for exceptions generated in C code (with
21495         mono_raise_exception()). Added C struct for System.Delegate.
21496         * pedump.c: removed arch_create_jit_trampoline.
21497         * reflection.c: some cleanups to allow registering user strings and
21498         later getting a token for methodrefs and fieldrefs before the assembly
21499         is built.
21500         * row-indexes.h: updates and fixes from the new ECMA specs.
21501
21502 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
21503
21504         * class.h, class.c: add enum_basetype field to MonoClass.
21505         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
21506         to get index in the constant table reated to a field, param or
21507         property.
21508         * reflection.h, reflection.c: handle constructors. Set public-key and
21509         version number of the built assembly to 0.
21510         * row-indexes.h: update from new ECMA spec.
21511
21512 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21513
21514         * class.h, class.c: add a max_interface_id to MonoClass.
21515         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
21516         since it's used to do that. Added mono_type_type_from_obj().
21517         Make GetType() return NULL instead of segfaulting if the type was not
21518         found. Handle simple arrays in assQualifiedName.
21519         * object.h: add a struct to represent an Exception.
21520         * reflection.c: output call convention in method signature.
21521         Add code to support P/Invoke methods and fixed offsets for fields.
21522
21523 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
21524
21525         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
21526         the value.
21527         * icall.c: use mono_array_addr instead of array->vector: fixes the
21528         reflection image writing.
21529         * reflection.c: init call convention byte to 0 in method signature.
21530         Encode the property signature. Don't output property-related methods
21531         twice. Really process the properties for a type (don't cast a field to
21532         a property, my mom always told me that).
21533         Fix 64 bit issues in pointer alignment in a different and more
21534         readable way.
21535
21536 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
21537
21538         * loader.h: Removed type class from MonoDefaults, added monotype
21539
21540         * loader.c: Loaded MonoType, removed loading of Type
21541
21542         * icall.c (my_mono_new_object): Now returns a System.MonoType,
21543         and fills in System.Type._impl with a RuntimeTypeHandle rather
21544         than the actual MonoClass *
21545
21546         (ves_icall_type_from_handle): change from type_class to
21547         monotype_class
21548
21549         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
21550         implemented
21551
21552         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
21553         implemented
21554
21555         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
21556
21557         (ves_icall_System_Reflection_Assembly_GetType): implemented
21558
21559         (ves_icall_System_MonoType_assQualifiedName): implemented
21560
21561         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
21562
21563 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
21564
21565         * assembly.c (mono_assembly_open): Implement a cache for the
21566         assemblies. 
21567
21568         (mono_assembly_close): only destroy the assembly when the last
21569         reference is gone.
21570         
21571 2001-11-09  Dick Porter  <dick@ximian.com>
21572
21573         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
21574
21575 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
21576
21577         * class.c (mono_class_metadata_init): bug fix: compute the right slot
21578
21579 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21580
21581         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
21582         from Martin Weindel.
21583         * object.h: add mono_string_chars ().
21584
21585 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
21586
21587         * reflection.c (build_compressed_metadata): Eliminates warnings
21588         and uses 64-bit clean code.
21589
21590         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
21591         (mono_type_equal): Change signature to eliminate warnings.
21592
21593 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21594
21595         * icall.c, loader.c: remove the internalcall array constructors.
21596         Changes to match the new MonoArray structure.
21597         * object.h, object.c: an array object doesn't allocate an extra
21598         vector. Add mono_array_new_full () to create jagged arrays easily.
21599
21600 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21601
21602         * metadata.h, metadata.c: add mono_metadata_field_info () to
21603         retreive all the info about a field from vairous tables.
21604         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
21605         * class.h, class.c: augment MonoClassField with more info.
21606         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
21607         policy and load a field's RVA if needed.
21608
21609 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
21610
21611         * class.c (mono_class_metadata_init): create a trampoline for all
21612         virtual functions instead of actually compiling them.
21613
21614 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
21615
21616         * class.h, class.c: include name in MonoClassField.
21617         * class.c: fix fundamental type of System.Object and System.String.
21618         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
21619         tokens in ldtoken.
21620         * icall.c: remove internalcalls for the Reflection stuff that is now
21621         done in C# code.
21622         * loader.c: mono_field_from_memberref () implementation.
21623         * mono-endian.c: thinko (s/struct/union/g).
21624         * object.c, object.h: make the mono_string_* prototypes actually use
21625         MonoString instead of MonoObject.
21626         * reflection.c, reflection.h: updates for changes in the reflection
21627         code in corlib: we use C structures that map to the actual C# classes.
21628         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
21629         fat method header if needed and use the info from the ILGenerator for
21630         methods. Handle fields in types. Misc fixes.
21631
21632 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
21633
21634         * class.c (mono_class_metadata_init): bug fix: always allocate
21635         space for static class data
21636
21637 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
21638
21639         * class.c (mono_compute_relative_numbering): use relative
21640         numbering to support fast runtime type checks.
21641
21642 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
21643
21644         * class.c (mono_class_create_from_typeref): added debugging output
21645         to print class name when MonoDummy is returned instead of real class
21646
21647 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
21648
21649         * class.c (mono_class_metadata_init): interface offset table now
21650         contains pointers into the vtable - this is more efficient for the jit
21651
21652 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
21653
21654         * class.c (mono_class_metadata_init): use a temporary vtable (the
21655         old algorithm only worked for the interpreter, but not for the jit)
21656
21657 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
21658
21659         * loader.c (method_from_memberref): use mono_class_get to get the
21660         class of an array instead of using System.Array directly.
21661         (mono_get_method): also add MEMBERREF methods to the method cache
21662         which usefull for arrays.
21663
21664 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
21665
21666         * pedump.c (arch_compile_method): added to compute vtable entry
21667
21668         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
21669         number of interfaces.
21670         
21671         * class.h: merged MonoArrayClass into MonoClass
21672
21673         * class.c (mono_class_create_from_typedef): compute the vtable size and
21674         allocate space to include the vtable inside MonoClass
21675         (mono_class_metadata_init): initialize the vtable
21676
21677 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
21678
21679         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
21680         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
21681         * image.c: endian fixes by Laurent Rioux.
21682         * object.h, object.c: rename MonoStringObject to MonoString and
21683         MonoArrayObject to MonoArray. Change some function names to conform to
21684         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
21685         guint16* as first argument, so don't use char*.
21686         Provide macros to do the interesting things on arrays in a portable way.
21687         * threads-pthread.c: updates for the API changes and #include <sched.h>
21688         (required for sched_yield()).
21689         * icall.c: updates for the API changes above.
21690         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
21691         platforms that need them.
21692
21693 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
21694
21695         * class.c: set the correct type for all the fundamental
21696         type when loading the class.
21697
21698 2001-10-05  Dick Porter  <dick@ximian.com>
21699
21700         * threads-pthread.c (pthread_mutex_timedlock): Simple
21701         compatibility version for C libraries that lack this call.
21702
21703 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21704
21705         * class.c: MonoTypes stored in MonoClass are stored as
21706         fundamental MonoTypes when the class represents a
21707         fundamental type (System.Int32, ...).
21708         The TypeHandle return by ldtoken is a MonoType*.
21709         * icall.c: ves_icall_get_data_chunk () write out all the
21710         PE/COFF stuff. Implement ves_icall_define_method (),
21711         ves_icall_set_method_body (), ves_icall_type_from_handle ().
21712         * image.c: properly skip unknown streams.
21713         * loader.h, loader.c: add type_class to mono_defaults.
21714         * metadata.c, metadata.h: export compute_size () as
21715         mono_metadata_compute_size () with a better interface.
21716         Typo and C&P fixes.
21717         * pedump.c: don't try to print the entry point RVA if there is no entry point.
21718         * reflection.c, reflection.h: many cleanups, fixes, output method
21719         signatures and headers, typedef and typeref info, compress the metadata
21720         tables, output all the heap streams, cli header etc.
21721         * row-indexes.h: typo fixes.
21722
21723 2001-10-04  Dick Porter  <dick@ximian.com>
21724
21725         * object.h: Add a synchronisation mutex struct to MonoObject
21726
21727         * object.c (mono_new_object): Initialise the object
21728         synchronisation mutexes
21729
21730         * icall.c: System.Threading.Monitor internal calls
21731         
21732         * threads-pthread.h:
21733         * threads-pthread.c: System.Threading.Monitor internal calls
21734
21735         * threads-types.h: New file, includes the system-specific thread
21736         structures
21737         
21738         * threads-pthread-types.h:
21739         * threads-pthread-types.c: New files, handle pthread-specific
21740         synchronisation types
21741
21742         * threads-dummy-types.h: 
21743         * threads-dummy-types.c: New files of dummy support for
21744         thread-specific types
21745
21746         * metadata.c:
21747         * image.c:
21748         * pedump.c: include mono-endian.h not endian.h
21749         
21750         * Makefile.am: More threads files.
21751         Name mono-endian.h not endian.h
21752
21753 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
21754
21755         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
21756         stuff and implement a few more bits.
21757         * icall.c: a field needs to be dereferenced twice. Do not use the same
21758         name for two variables in the same scope.
21759         * image.c, image.h: cleanups.
21760
21761 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
21762
21763         * class.c (mono_class_metadata_init): bug fix: compute the right size
21764
21765 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
21766
21767         * icall.c: implemented some of the Reflection internalcalls.
21768         * image.c, image.h: start writing out the PE/COFF image.
21769         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
21770         that does the reverse than decode_blob_size ().
21771         * object.c: use mono_metadata_encode_value (). Move here
21772         temporary implementation of mono_string_to_utf8 ().
21773         * rawbuffer.c: make malloc_map static.
21774
21775 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21776
21777         * metadata.c: fix type comparison for arrays.
21778         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
21779         Added a couple of new classes to monodefaults.
21780         * icall.c: added a couple of Reflection-related internalcalls.
21781         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
21782         Added a byval_arg MonoType to MonoClass.
21783
21784 2001-09-28  Dick Porter  <dick@ximian.com>
21785
21786         * icall.c:
21787         * threads-pthread.h: 
21788         * threads-pthread.c: Implemented internal calls for
21789         LocalDataStoreSlot operations.  Applied mutexes around all shared
21790         data.  Reworked the thread creation and Start() operations to
21791         avoid a race condition.
21792         
21793         * threads-dummy.h:
21794         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
21795
21796 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
21797
21798         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
21799
21800 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
21801
21802         * class.c, loader.c: warn and return NULL instead of erroring out.
21803         * icall.c: added System.AppDomain::getCurDomain().
21804         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
21805
21806 2001-09-25  Dick Porter  <dick@ximian.com>
21807
21808         * threads-pthread.h:
21809         * threads-pthread.c: Implemented timed thread joining and added
21810         System.Threading.Thread::Join_internal internal call
21811
21812         * icall.c: Added System.Threading.Thread::Join_internal internal call
21813
21814         * threads-dummy.h:
21815         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
21816
21817 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
21818
21819         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
21820         mono_string_intern () to implement the semantics of the ldstr opcode
21821         and the interning of System.Strings.
21822         * icall.c: provide hooks to make String::IsIntern and String::Intern
21823         internalcalls.
21824
21825 2001-09-23  Dick Porter  <dick@ximian.com>
21826
21827         * threads-dummy.c: 
21828         * threads-dummy.h: New files of dummy threading routines
21829
21830         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
21831         support code based on system specifics
21832
21833         Rename PTHREAD_LIBS to THREAD_LIBS
21834         
21835 2001-09-23  Dick Porter  <dick@ximian.com>
21836
21837         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
21838         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
21839         internal calls.
21840         (mono_thread_init): Set up a Thread object instance to return when
21841         the main thread calls Thread.CurrentThread
21842         (mono_thread_cleanup): Wait for all subthreads to exit
21843
21844         * icall.c: New internal calls for System.Threading.Thread::Sleep
21845         (including Schedule) and CurrentThread
21846
21847         * threads.h: New file, to insulate thread-specific stuff from the
21848         rest of the code
21849
21850 2001-09-21  Dick Porter  <dick@ximian.com>
21851
21852         * threads-pthread.h: 
21853         * threads-pthread.c: New file, for handling pthreads-style
21854         threading support.  Start() now starts a new thread and executes
21855         the ThreadStart delegate instance.
21856
21857         * icall.c: Added the internalcall for
21858         System.Threading.Thread::Start_internal
21859
21860         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
21861
21862 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
21863
21864         * loader.c: work around the different signatures for delegates
21865         constructors csc generates in compiled code vs the ones compiled in mscorlib.
21866
21867 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
21868
21869         * class.h, class.c: add mono_class_get_field_from_name ().
21870         * *: Fix C comments and other ANSI C issues.
21871
21872 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
21873
21874         * endian.h, assembly.c: fix some endianness issues.
21875
21876 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
21877
21878         * loader.h, load.c: add delegate_class to mono_defaults.
21879         Handle runtime provided methods in mono_get_method ().
21880
21881 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
21882
21883         * loader.c (mono_get_method): use pinvoke for internal call
21884
21885         * icall.c: use pinvoke for internal call
21886
21887         * loader.c (method_from_memberref): set the method name
21888
21889 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
21890
21891         * metadata.c: help the compiler generate better code for
21892         mono_class_from_mono_type ().
21893
21894 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
21895
21896         * class.c (mono_class_metadata_init): delayed computing of the
21897         class size to mono_class_metadata_init ()
21898
21899 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
21900
21901         * class.c, class.h: add an interfaces member to MonoClass.
21902         * image.c, image.h: add assembly_name field to MonoImage
21903         from the assembly table.
21904         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
21905
21906 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
21907
21908         * class.c: Handle Array in mono_class_from_mono_type ().
21909         * metadata.c, pedump.c: some endian fixes.
21910
21911 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
21912
21913         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
21914         * metadata.c: fix small problem introduced with the latest commit.
21915
21916 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
21917
21918         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
21919         We don't need a MonoMetadata pointer anymore to compare signatures in
21920         mono_metadata_signature_equal (), update callers.
21921         Reduced memory usage an number of allocations for MonoMethodHeader and
21922         MonoMethodSignature.
21923
21924 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
21925
21926         * metadata.c: added compare for szarray.
21927
21928 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
21929
21930         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
21931         and add a couple more types to it and mono_defaults. Give an hint on
21932         classes that need implementing in our corlib and are referenced
21933         in mscorlib.
21934
21935 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
21936
21937         * class.h, class.c: keep track if a class is also an Enum.
21938         * loader.c: Implement a couple more types for use in libffi
21939         marshalling. Gives better diagnostics when failing to dlopen
21940         a library. Set method->klass for P/Invoke methods, too.
21941
21942 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
21943
21944         * class.c, class.h: add a MonoType this_arg to MonoClass that
21945         represents a pointer to an object of the class' type that
21946         can be used by the interpreter and later the type cache.
21947         Add best guess alignment info for valuetype objects.
21948
21949 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
21950
21951         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
21952         into MonoType: one less level of indirection and allocation and
21953         simplifies quite a bit of code. Added cache for MonoTypes that are
21954         used frequently, so that we don't need to allocate them all the time.
21955
21956 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
21957
21958         * class.c (mono_class_create_from_typedef): System.Enum is also a
21959         value type, although it does not derive from System.ValueType
21960         (maybe a bug in the ms compiler?)
21961
21962         * metadata.c (mono_type_size): return the right size for value types
21963
21964         * loader.c (mono_get_method): only initialize method header if not abstract
21965
21966         * class.c (mono_class_from_mono_type): use mono_default values. 
21967
21968 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
21969
21970         * *: use MonoClass pointers instead of <type_tokens>
21971         
21972         * class.h: new flag: metadata_inited.
21973
21974         * class.c (mono_class_metadata_init): impl.
21975         (mono_class_instance_size): impl.
21976         (mono_class_data_size): impl.
21977
21978 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21979
21980         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
21981         MonoClass now has the name and name_space fields. 
21982         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
21983         mono_get_method () takes and optional MonoClass as argument.
21984         Removed mono_typedef_from_name() and added mono_class_token_from_name()
21985         instead that takes advantage of a map from class names to typedef
21986         tokens in MonoImage.
21987
21988 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
21989
21990         * metadata.c: zero is not a valid alignment boundary.
21991         Merge MONO_TYPE_VOID in default decoding code.
21992
21993 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
21994
21995         * image.h: merged MonoMetadata into MonoImage
21996
21997         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
21998         identify the type of elements.
21999
22000 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22001
22002         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22003         * cil-coff.h: split MonoMSDOSHeader and add size info.
22004         * image.c: add some consistency checks.
22005         * metadata.c: fix row size computation: one programmer
22006         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22007         add explanation for the locator routine.
22008         Fix decoding of size in method header.
22009         
22010 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22011
22012         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22013         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22014         function from gnome-libs.  This uses the right path separator
22015         based on the OS, and also works around a bug in some systems where
22016         a double slash is not allowed. 
22017         (default_assembly_name_resolver): Use g_concat_dir_and_file
22018         (mono_assembly_open): ditto.
22019
22020 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22021
22022         * metadata.c (mono_metadata_signature_equal): impl.
22023
22024         * *: void is now a realy MonoType (instead of using NULL)
22025         
22026         * metadata.c (do_mono_metadata_parse_type): use
22027         mono_metadata_parse_type to parse void value.
22028
22029 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22030
22031         * metadata.c, metadata.h: in the signature and method header store
22032         only the space required for holding the loca vars and incoming arguments.
22033
22034 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22035
22036         * metadata.c (do_mono_metadata_parse_type): treat void like any
22037         other type (instead of assigning NULL);
22038
22039 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22040
22041         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22042
22043 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22044
22045         * image.c (do_mono_image_open): added a cache for arrays.
22046
22047 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22048
22049         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22050         decode a single column from a row in a metadata table and changes
22051         to take advantage of it in the typedef locator (gives a nice speed up).
22052         Store offset info for function params.
22053
22054 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22055
22056         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22057
22058 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22059
22060         * assembly.c: how could mono_assembly_close () had ever worked?
22061         * metadata.c, metadata.h: provide offset info for local vars.
22062         Implement mono_type_size () to take care of alignment as well
22063         as size (it was mono_field_type_size in cli/class.c before).
22064
22065 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22066
22067         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22068
22069         * assembly.h (CORLIB_NAME): set to corlib.dll
22070
22071         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22072
22073 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22074
22075         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22076         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22077         tokentype.h: massive namespace cleanup.
22078
22079 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22080
22081         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22082
22083 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22084
22085         * metadata.c (mono_metadata_free_type): added check for type !=
22086         NULL (void) before calling mono_metadata_free_type()
22087
22088 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22089
22090         * metadata.h, row_indexes.h: added header with enumerations to use
22091         to index in the columns from tables in metadata and to decode coded
22092         tokens: we should start using this instead of embedding magic numbers
22093         all over the code.
22094
22095 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22096
22097         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22098         Move metadata_t info from cli_image_info_t to MonoImage, where
22099         it's easily accessible. Changed all the uses accordingly.
22100         Added the method and class caches to MonoImage.
22101         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22102         and mono_metadata_decode_value () signature to be more consistent
22103         with the other parse functions (and simplify code). Taken advantage
22104         of zero-length array allocation with GCC. Removed reduntant (and
22105         wrong) MonoFieldType struct and use MonoParam instead. Changed
22106         mono_metadata_parse_field_type () to use common code for parsing.
22107         Added mono_metadata_typedef_from_field () and
22108         mono_metadata_typedef_from_method () to lookup a typedef index from a
22109         field or method token.
22110         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22111
22112 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22113
22114         * metadata.c (mono_metadata_parse_field_type): Implement. 
22115         (do_mono_metadata_parse_type): Split engine from
22116         mono_metadata_parse_type, so that we can create smaller structures
22117         for things that just have one pointer to the MonoType (look at
22118         the MonoFieldType)
22119
22120 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22121
22122         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22123         as Jan Gray found out, it is incorrect. 
22124
22125 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22126
22127         * assembly.c: Implement asssembly loading.  This loads an image
22128         and loads all the referenced assemblies.  Come to think of it, we
22129         could always do lazy loading of the assemblies. 
22130
22131         * image.c (mono_image_open): Keep loaded images in a hashtable.
22132
22133         * image.h (MonoImage): Add reference count.
22134
22135 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
22136
22137         * assembly.c (mono_assembly_open): Keep track of the file name in
22138         case the assembly has no ASSEMBLY table.
22139
22140         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
22141         from get.c here.
22142
22143 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22144
22145         * metadata.c, metadata.h: decode local vars in method header
22146         parse function. Change callers accordingly.
22147
22148 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22149
22150         * metadata.h, cil-coff.h: protect against multiple inclusion.
22151         Added some new structures to hold information decoded from metadata:
22152         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22153         and relevant decoding/free functions.
22154         * metadata.c: implement decoding functions. Add warning for out of bounds
22155         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22156         all the info about a method signature and invocation. Remove check on
22157         uninitialized local var in parse_mh() and fix memory leak.
22158
22159 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22160
22161         * metadata.h: More macros.
22162
22163         * tokentype.h: New file.
22164
22165 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22166
22167         * assembly.c: added a consistency check and initialize
22168         some structures with g_new0().
22169         * metadata.c: fixed a couple more bugs in table size computation
22170         and add other checks for out-of bound access to metadata.
22171
22172 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22173
22174         * metatada.c: fix bugs computing table sizes. Spew a
22175         warning when index in string heap is out of bounds.
22176
22177 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22178
22179         * metadata.h: Add a couple of macros to manipulate tokens. 
22180
22181 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22182
22183         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22184         cli_section_tables).
22185
22186 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22187
22188         * metadata.c (mono_metadata_user_string): New function, provides
22189         access to the UserString heap. 
22190
22191 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22192
22193         * metadata.c: Add inline documentation.
22194
22195 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22196
22197         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22198         files. 
22199
22200 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22201
22202         * typeattr.h: New file, TypeAttribute flags. 
22203
22204 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22205
22206         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22207         mono_assembly_ensure_section): Section loading code.
22208         (load_section_tables): Load the sections.
22209
22210         * mono/metadata/metadata.c (mono_metadata_locate_token,
22211         mono_metadata_locate): Functions to locate the information
22212         definition given a token or a table and an index.
22213         (mono_metadata_compute_table_bases): New.
22214         (compute_size): New function to compute the sizes of the various
22215         tables.
22216
22217         * mono/metadata/metadata.h: Finish listing the different index
22218         types. 
22219
22220         * mono/metadata/pedump.c: Improve to dump new information.
22221
22222 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22223
22224         * mono/metadata/metadata.c: Entered all the tables matching
22225         Beta2. 
22226
22227         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22228
22229
22230